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 | Static Public Attributes
core.TriggerBitAnalyzer.TriggerBitAnalyzer Class Reference
Inheritance diagram for core.TriggerBitAnalyzer.TriggerBitAnalyzer:

Public Member Functions

def __init__
 
def beginLoop
 
def declareHandles
 
def process
 

Public Attributes

 allPaths
 
 fallbackName
 
 force1prescale
 
 outprefix
 
 prescaleFallbackName
 
 prescaleProcessName
 
 processName
 
 triggerBitCheckers
 
 triggerBitCheckersSingleBits
 

Static Public Attributes

 checkL1prescale = False,
 
string fallbackProcessName = 'RECO'
 
string outprefix = 'Flag'
 
string prescaleFallbackProcessName = 'RECO'
 
string prescaleProcessName = 'PAT'
 
string processName = 'HLT'
 
 saveIsUnprescaled = False,
 
dictionary triggerBits
 
 unrollbits = False,
 

Detailed Description

Definition at line 8 of file TriggerBitAnalyzer.py.

Constructor & Destructor Documentation

def core.TriggerBitAnalyzer.TriggerBitAnalyzer.__init__ (   self,
  cfg_ana,
  cfg_comp,
  looperName 
)

Definition at line 9 of file TriggerBitAnalyzer.py.

9 
10  def __init__(self, cfg_ana, cfg_comp, looperName ):
11  super(TriggerBitAnalyzer,self).__init__(cfg_ana,cfg_comp,looperName)
12  self.processName = getattr(self.cfg_ana,"processName","HLT")
13  self.prescaleProcessName = getattr(self.cfg_ana,"prescaleProcessName","PAT")
14  self.fallbackName = getattr(self.cfg_ana,"fallbackProcessName",None)
15  self.prescaleFallbackName = getattr(self.cfg_ana,"prescaleFallbackProcessName","RECO")
16  self.outprefix = getattr(self.cfg_ana,"outprefix", self.processName)
17  self.unrollbits = ( hasattr(self.cfg_ana,"unrollbits") and self.cfg_ana.unrollbits )
18  self.saveIsUnprescaled = getattr(self.cfg_ana,"saveIsUnprescaled",False)
19  self.checkL1prescale = getattr(self.cfg_ana,"checkL1prescale",False)
20  self.force1prescale = False
21  if self.cfg_comp.isMC and self.saveIsUnprescaled:
22  print 'Cannot save prescale information in MC: will put everything to unprescaled'
23  self.saveIsUnprescaled = False
24  self.checkL1prescale = False
25  self.force1prescale = True

Member Function Documentation

def core.TriggerBitAnalyzer.TriggerBitAnalyzer.beginLoop (   self,
  setup 
)

Definition at line 37 of file TriggerBitAnalyzer.py.

37 
38  def beginLoop(self, setup):
39  super(TriggerBitAnalyzer,self).beginLoop(setup)
40  self.triggerBitCheckers = []
41  if self.unrollbits :
42  self.allPaths = set()
44 
45  for T, TL in self.cfg_ana.triggerBits.iteritems():
46  trigVec = ROOT.vector(ROOT.string)()
47  for TP in TL:
48  trigVec.push_back(TP)
49  if self.unrollbits :
50  if TP not in self.allPaths :
51  self.allPaths.update([TP])
52  trigVecBit = ROOT.vector(ROOT.string)()
53  trigVecBit.push_back(TP)
54  outname="%s_BIT_%s"%(self.outprefix,TP)
55  if not hasattr(setup ,"globalVariables") :
56  setup.globalVariables = []
57  if outname[-1] == '*' :
58  outname=outname[0:-1]
59  setup.globalVariables.append( NTupleVariable(outname, eval("lambda ev: ev.%s" % outname), help="Trigger bit %s"%TP) )
60  if self.saveIsUnprescaled or self.force1prescale: setup.globalVariables.append( NTupleVariable(outname+'_isUnprescaled', eval("lambda ev: ev.%s_isUnprescaled" % outname), help="Trigger bit %s isUnprescaled flag"%TP) )
61  self.triggerBitCheckersSingleBits.append( (TP, ROOT.heppy.TriggerBitChecker(trigVecBit)) )
62 
63  outname="%s_%s"%(self.outprefix,T)
64  if not hasattr(setup ,"globalVariables") :
65  setup.globalVariables = []
66  setup.globalVariables.append( NTupleVariable(outname, eval("lambda ev: ev.%s" % outname), help="OR of %s"%TL) )
67  if self.saveIsUnprescaled or self.force1prescale: setup.globalVariables.append( NTupleVariable(outname+'_isUnprescaled', eval("lambda ev: ev.%s_isUnprescaled" % outname), help="OR of %s is Unprescaled flag"%TL) )
68  self.triggerBitCheckers.append( (T, ROOT.heppy.TriggerBitChecker(trigVec)) )
69 
def core.TriggerBitAnalyzer.TriggerBitAnalyzer.declareHandles (   self)

Definition at line 26 of file TriggerBitAnalyzer.py.

References core.TriggerBitAnalyzer.TriggerBitAnalyzer.checkL1prescale, core.TriggerBitAnalyzer.TriggerBitAnalyzer.fallbackName, core.AutoHandle.AutoHandle.handles, core.Analyzer.Analyzer.handles, HTTP.RequestManager.handles, core.TriggerBitAnalyzer.TriggerBitAnalyzer.prescaleFallbackName, core.TriggerBitAnalyzer.TriggerBitAnalyzer.prescaleProcessName, HcalIsoTrkAnalyzer.processName, IsoTrackCalibration.processName, core.TriggerBitAnalyzer.TriggerBitAnalyzer.processName, IsoTrig.processName, EgammaHLTValidationUtils.EgammaDQMModuleMaker.processName, Types.InputTag.processName, and core.TriggerBitAnalyzer.TriggerBitAnalyzer.saveIsUnprescaled.

26 
27  def declareHandles(self):
28  super(TriggerBitAnalyzer, self).declareHandles()
29  fallback = ('TriggerResults','',self.fallbackName) if self.fallbackName else None
30  prescaleFallback = ('patTrigger','',self.prescaleFallbackName) if self.prescaleFallbackName else None
31  self.handles['TriggerResults'] = AutoHandle( ('TriggerResults','',self.processName), 'edm::TriggerResults', fallbackLabel=fallback )
32  if self.saveIsUnprescaled:
33  self.handles["TriggerPrescales"] = AutoHandle( ('patTrigger','',self.prescaleProcessName), 'pat::PackedTriggerPrescales', fallbackLabel=prescaleFallback )
34  if self.checkL1prescale:
35  self.handles["TriggerPrescales_l1min"] = AutoHandle( ('patTrigger','l1min',self.prescaleProcessName), 'pat::PackedTriggerPrescales', fallbackLabel=(('patTrigger','l1min',self.prescaleFallbackName) if self.prescaleFallbackName else None) )
36  self.handles["TriggerPrescales_l1max"] = AutoHandle( ('patTrigger','l1max',self.prescaleProcessName), 'pat::PackedTriggerPrescales', fallbackLabel=(('patTrigger','l1max',self.prescaleFallbackName) if self.prescaleFallbackName else None) )
def core.TriggerBitAnalyzer.TriggerBitAnalyzer.process (   self,
  event 
)

Definition at line 70 of file TriggerBitAnalyzer.py.

References core.TriggerBitAnalyzer.TriggerBitAnalyzer.checkL1prescale, core.TriggerBitAnalyzer.TriggerBitAnalyzer.force1prescale, core.AutoHandle.AutoHandle.handles, core.Analyzer.Analyzer.handles, HTTP.RequestManager.handles, core.TriggerBitAnalyzer.TriggerBitAnalyzer.outprefix, core.Analyzer.Analyzer.readCollections(), core.TriggerBitAnalyzer.TriggerBitAnalyzer.saveIsUnprescaled, core.TriggerBitAnalyzer.TriggerBitAnalyzer.triggerBitCheckers, core.TriggerBitAnalyzer.TriggerBitAnalyzer.triggerBitCheckersSingleBits, and core.TriggerBitAnalyzer.TriggerBitAnalyzer.unrollbits.

Referenced by ConfigBuilder.ConfigBuilder.addExtraStream(), ConfigBuilder.ConfigBuilder.completeInputCommand(), ConfigBuilder.ConfigBuilder.doNotInlineEventContent(), ConfigBuilder.ConfigBuilder.PrintAllModules.leave(), ConfigBuilder.ConfigBuilder.prepare_HLT(), ConfigBuilder.ConfigBuilder.prepare_LHE(), ConfigBuilder.ConfigBuilder.prepare_PATFILTER(), ConfigBuilder.ConfigBuilder.prepare_VALIDATION(), ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence(), ConfigBuilder.ConfigBuilder.renameInputTagsInSequence(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

70 
71  def process(self, event):
72  self.readCollections( event.input )
73  triggerResults = self.handles['TriggerResults'].product()
74  if self.saveIsUnprescaled:
75  triggerPrescales = self.handles["TriggerPrescales"].product()
76  if self.checkL1prescale:
77  triggerPrescales_min = self.handles["TriggerPrescales_l1min"].product()
78  triggerPrescales_max = self.handles["TriggerPrescales_l1max"].product()
79  for T,TC in self.triggerBitCheckers:
80  outname="%s_%s"%(self.outprefix,T)
81  setattr(event,outname, TC.check(event.input.object(), triggerResults))
82  if self.saveIsUnprescaled:
83  unpr = TC.check_unprescaled(event.input.object(), triggerResults, triggerPrescales)
84  if self.checkL1prescale:
85  unpr = unpr and TC.check_unprescaled(event.input.object(), triggerResults, triggerPrescales_min)
86  unpr = unpr and TC.check_unprescaled(event.input.object(), triggerResults, triggerPrescales_max)
87  setattr(event,outname+'_isUnprescaled', unpr)
88  if self.force1prescale: setattr(event,outname+'_isUnprescaled', True)
89  if self.unrollbits :
90  for TP,TC in self.triggerBitCheckersSingleBits:
91  outname="%s_BIT_%s"%(self.outprefix,TP)
92  if outname[-1] == '*' :
93  outname=outname[0:-1]
94  setattr(event,outname, TC.check(event.input.object(), triggerResults))
95  if self.saveIsUnprescaled:
96  unpr = TC.check_unprescaled(event.input.object(), triggerResults, triggerPrescales)
97  if self.checkL1prescale:
98  unpr = unpr and TC.check_unprescaled(event.input.object(), triggerResults, triggerPrescales_min)
99  unpr = unpr and TC.check_unprescaled(event.input.object(), triggerResults, triggerPrescales_max)
100  setattr(event,outname+'_isUnprescaled', unpr)
101  if self.force1prescale: setattr(event,outname+'_isUnprescaled', True)
102 
103  return True
104 
105 
setattr(TriggerBitAnalyzer,"defaultConfig",cfg.Analyzer(

Member Data Documentation

core.TriggerBitAnalyzer.TriggerBitAnalyzer.allPaths

Definition at line 41 of file TriggerBitAnalyzer.py.

core.TriggerBitAnalyzer.TriggerBitAnalyzer.checkL1prescale = False,
static

Definition at line 112 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.declareHandles(), and core.TriggerBitAnalyzer.TriggerBitAnalyzer.process().

core.TriggerBitAnalyzer.TriggerBitAnalyzer.fallbackName

Definition at line 13 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.declareHandles().

string core.TriggerBitAnalyzer.TriggerBitAnalyzer.fallbackProcessName = 'RECO'
static

Definition at line 121 of file TriggerBitAnalyzer.py.

core.TriggerBitAnalyzer.TriggerBitAnalyzer.force1prescale

Definition at line 19 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.process().

core.TriggerBitAnalyzer.TriggerBitAnalyzer.outprefix

Definition at line 15 of file TriggerBitAnalyzer.py.

string core.TriggerBitAnalyzer.TriggerBitAnalyzer.outprefix = 'Flag'
static

Definition at line 124 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.process().

core.TriggerBitAnalyzer.TriggerBitAnalyzer.prescaleFallbackName

Definition at line 14 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.declareHandles().

string core.TriggerBitAnalyzer.TriggerBitAnalyzer.prescaleFallbackProcessName = 'RECO'
static

Definition at line 109 of file TriggerBitAnalyzer.py.

core.TriggerBitAnalyzer.TriggerBitAnalyzer.prescaleProcessName

Definition at line 12 of file TriggerBitAnalyzer.py.

string core.TriggerBitAnalyzer.TriggerBitAnalyzer.prescaleProcessName = 'PAT'
static

Definition at line 108 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.declareHandles().

core.TriggerBitAnalyzer.TriggerBitAnalyzer.processName

Definition at line 11 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitFilter.TriggerBitFilter.declareHandles(), and core.TriggerMatchAnalyzer.TriggerMatchAnalyzer.declareHandles().

string core.TriggerBitAnalyzer.TriggerBitAnalyzer.processName = 'HLT'
static

Definition at line 107 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitFilter.TriggerBitFilter.declareHandles(), core.TriggerMatchAnalyzer.TriggerMatchAnalyzer.declareHandles(), and core.TriggerBitAnalyzer.TriggerBitAnalyzer.declareHandles().

core.TriggerBitAnalyzer.TriggerBitAnalyzer.saveIsUnprescaled = False,
static

Definition at line 111 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.declareHandles(), and core.TriggerBitAnalyzer.TriggerBitAnalyzer.process().

core.TriggerBitAnalyzer.TriggerBitAnalyzer.triggerBitCheckers

Definition at line 39 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.process().

core.TriggerBitAnalyzer.TriggerBitAnalyzer.triggerBitCheckersSingleBits

Definition at line 42 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.process().

dictionary core.TriggerBitAnalyzer.TriggerBitAnalyzer.triggerBits
static
Initial value:
1 = {
2  # "<name>" : [ 'HLT_<Something>_v*', 'HLT_<SomethingElse>_v*' ]
3 }

Definition at line 113 of file TriggerBitAnalyzer.py.

core.TriggerBitAnalyzer.TriggerBitAnalyzer.unrollbits = False,
static

Definition at line 110 of file TriggerBitAnalyzer.py.

Referenced by core.TriggerBitAnalyzer.TriggerBitAnalyzer.process().