CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes
ModelTools.ModelBuilderBase Class Reference
Inheritance diagram for ModelTools.ModelBuilderBase:
ModelTools.ModelBuilder ModelTools.CountingModelBuilder

Public Member Functions

def __init__
 
def doComment
 
def doObj
 
def doSet
 
def doVar
 
def factory_
 

Public Attributes

 options
 
 out
 

Detailed Description

This class defines the basic stuff for a model builder, and it's an interface on top of RooWorkspace::factory or HLF files

Definition at line 8 of file ModelTools.py.

Constructor & Destructor Documentation

def ModelTools.ModelBuilderBase.__init__ (   self,
  options 
)

Definition at line 10 of file ModelTools.py.

10 
11  def __init__(self,options):
12  self.options = options
13  self.out = stdout
14  if options.bin:
15  if options.out == None: options.out = re.sub(".txt$","",options.fileName)+".root"
16  options.baseDir = os.path.dirname(options.fileName)
17  ROOT.gSystem.Load("libHiggsAnalysisCombinedLimit.so")
18  self.out = ROOT.RooWorkspace("w","w");
19  self.out._import = getattr(self.out,"import") # workaround: import is a python keyword
20  self.out.dont_delete = []
21  if options.verbose == 0:
22  ROOT.RooMsgService.instance().setGlobalKillBelow(ROOT.RooFit.ERROR)
23  elif options.verbose < 2:
24  ROOT.RooMsgService.instance().setGlobalKillBelow(ROOT.RooFit.WARNING)
25  if os.environ.has_key('ROOFITSYS'):
26  ROOT.gSystem.AddIncludePath(" -I%s/include " % os.environ['ROOFITSYS'])
27  elif options.out != None:
28  #stderr.write("Will save workspace to HLF file %s" % options.out)
29  self.out = open(options.out, "w");
30  if not options.bin:
31  stderr.write("\nWARNING: You're not using binary mode. This is is DEPRECATED and NOT SUPPORTED anymore, and can give WRONG results.\n\n")
32  if options.cexpr:
33  global ROOFIT_EXPR;
ROOFIT_EXPR = "cexpr"

Member Function Documentation

def ModelTools.ModelBuilderBase.doComment (   self,
  X 
)

Definition at line 45 of file ModelTools.py.

Referenced by ModelTools.ModelBuilder.doExpectedEvents(), ModelTools.CountingModelBuilder.doIndividualModels(), ModelTools.ModelBuilder.doNuisances(), and ModelTools.CountingModelBuilder.doObservables().

45 
46  def doComment(self,X):
if not self.options.bin: self.out.write("// "+X+"\n");
def ModelTools.ModelBuilderBase.doObj (   self,
  name,
  type,
  X 
)

Definition at line 53 of file ModelTools.py.

References FedTimingHistograms.factory_, DaqScopeModeHistograms.factory_, ModelTools.ModelBuilderBase.factory_(), FedCablingHistograms.factory_, CandKinematicVertexFitter.factory_, edm::eventsetup::FactoryInfo.factory_, CommissioningHistograms.factory_, and SiStripConfigDb.factory_.

Referenced by ModelTools.CountingModelBuilder.doCombination(), ModelTools.ModelBuilder.doExpectedEvents(), ShapeTools.ShapeBuilder.doIndividualModels(), ModelTools.CountingModelBuilder.doIndividualModels(), ModelTools.ModelBuilder.doNuisances(), ShapeTools.ShapeBuilder.getPdf(), and ShapeTools.ShapeBuilder.shape2Pdf().

53 
54  def doObj(self,name,type,X):
55  if self.options.bin: return self.factory_("%s::%s(%s)" % (type, name, X));
56  else: self.out.write("%s = %s(%s);\n" % (name, type, X))
def ModelTools.ModelBuilderBase.doSet (   self,
  name,
  vars 
)

Definition at line 50 of file ModelTools.py.

Referenced by ModelTools.ModelBuilder.doNuisances(), ShapeTools.ShapeBuilder.doObservables(), and ModelTools.CountingModelBuilder.doObservables().

50 
51  def doSet(self,name,vars):
52  if self.options.bin: self.out.defineSet(name,vars)
else: self.out.write("%s = set(%s);\n" % (name,vars));
def ModelTools.ModelBuilderBase.doVar (   self,
  vardef 
)

Definition at line 47 of file ModelTools.py.

References FedTimingHistograms.factory_, DaqScopeModeHistograms.factory_, ModelTools.ModelBuilderBase.factory_(), FedCablingHistograms.factory_, CandKinematicVertexFitter.factory_, edm::eventsetup::FactoryInfo.factory_, CommissioningHistograms.factory_, and SiStripConfigDb.factory_.

Referenced by ModelTools.ModelBuilder.doExpectedEvents(), ModelTools.ModelBuilder.doNuisances(), ShapeTools.ShapeBuilder.doObservables(), ModelTools.CountingModelBuilder.doObservables(), and ShapeTools.ShapeBuilder.getShape().

47 
48  def doVar(self,vardef):
49  if self.options.bin: self.factory_(vardef);
else: self.out.write(vardef+";\n");
def ModelTools.ModelBuilderBase.factory_ (   self,
  X 
)

Definition at line 34 of file ModelTools.py.

Referenced by ModelTools.ModelBuilderBase.doObj(), and ModelTools.ModelBuilderBase.doVar().

34 
35  def factory_(self,X):
36  if (len(X) > 1000):
37  print "Executing factory with a string of length ",len(X)," > 1000, could trigger a bug: ",X
38  ret = self.out.factory(X);
39  if ret:
40  self.out.dont_delete.append(ret)
41  return ret
42  else:
43  print "ERROR parsing '%s'" % X
44  self.out.Print("V");
raise RuntimeError, "Error in factory statement"

Member Data Documentation

ModelTools.ModelBuilderBase.options

Definition at line 11 of file ModelTools.py.

Referenced by betterConfigParser.BetterConfigParser.__updateDict(), betterConfigParser.BetterConfigParser.checkInput(), DOTExport.DotExport.export(), and DOTExport.DotExport.write_output().

ModelTools.ModelBuilderBase.out

Definition at line 12 of file ModelTools.py.

Referenced by ModelTools.ModelBuilder.doModelConfigs().