Definition at line 24 of file MultiJetMetFilter.py.
◆ __init__()
def python.MultiJetMetFilter.MultiJetMetFilter.__init__ |
( |
|
self, |
|
|
|
name = "MultiJetMetFilter" , |
|
|
** |
kw |
|
) |
| |
Definition at line 26 of file MultiJetMetFilter.py.
26 def __init__ ( self, name = "MultiJetMetFilter", **kw ):
28 super(MultiJetMetFilter, self).
__init__(**kw)
31 self.jetCollectionType = kw.get(
'jetCollectionType',
"JetCollection")
32 self.jetCollectionName = kw.get(
'jetCollectionName',
"AntiKt4TopoJets")
33 self.cutsEtMin = kw.get(
'cutsEtMin', [])
34 self.cutEtaMax = kw.get(
'cutEtaMax', [])
35 self.requireMet = kw.get(
'requireMet ',
True)
36 self.metCollectionType = kw.get(
'metCollectionType',
"MissingET")
37 self.metCollectionNames = kw.get(
'metCollectionNames', [])
38 self.cutMetMin = kw.get(
'cutMetMin', 0.0*Units.GeV)
39 self.passAll = kw.get(
'passAll',
False)
◆ execute()
def python.MultiJetMetFilter.MultiJetMetFilter.execute |
( |
|
self | ) |
|
Definition at line 71 of file MultiJetMetFilter.py.
76 self.msg.
debug(
'%s event passed because passAll is true', self.name() )
77 self.setFilterPassed(
True)
78 return StatusCode.Success
80 if len(self.cutsEtMin) < 2 :
81 self.msg.warning(
'Invalid configuration' )
82 self.setFilterPassed(
False)
83 return StatusCode.Success
89 jetCollection = self.storeGateSvc.
retrieve( self.jetCollectionType, self.jetCollectionName )
91 self.msg.warning(
'Collection %s not found', self.jetCollectionName )
92 self.setFilterPassed(
False)
93 return StatusCode.Success
97 for i
in range( jetCollection.size() ) :
98 jet = jetCollection[i]
99 if abs(jet.eta()) < self.cutEtaMax :
100 selectedJetIdx.append(i)
103 if len(selectedJetIdx) >= len(self.cutsEtMin) :
104 for i
in range( len(self.cutsEtMin) ) :
105 jet = jetCollection[selectedJetIdx[i]]
106 if jet.et() <= self.cutsEtMin[i] :
111 self.nEventPassJet+=1
116 for i
in range( len(self.metCollectionNames) ) :
118 met = self.storeGateSvc.
retrieve( self.metCollectionType, self.metCollectionNames[i] )
120 self.msg.warning(
'Collection %s not found', self.metCollectionNames[i] )
121 self.setFilterPassed(
False)
122 return StatusCode.Success
124 if met.et() > self.cutMetMin :
126 self.nEventPassMet+=1
131 if passedJet
and passedMet :
133 self.setFilterPassed(
True)
135 self.setFilterPassed(
False)
138 self.nEventPassMet+=1
141 self.setFilterPassed(
True)
143 self.setFilterPassed(
False)
145 return StatusCode.Success
◆ finalize()
def python.MultiJetMetFilter.MultiJetMetFilter.finalize |
( |
|
self | ) |
|
Definition at line 147 of file MultiJetMetFilter.py.
161 effPassJet = self.nEventPassJet /
float(self.nProcessed)
162 effPassMet = self.nEventPassMet /
float(self.nProcessed)
163 effPassAll = self.nEventPassed /
float(self.nProcessed)
166 effErrPassJet = 100.0*math.sqrt(effPassJet*(1.-effPassMet)/
float(self.nProcessed))
167 effErrPassMet = 100.0*math.sqrt(effPassMet*(1.-effPassMet)/
float(self.nProcessed))
168 effErrPassAll = 100.0*math.sqrt(effPassAll*(1.-effPassAll)/
float(self.nProcessed))
174 except ZeroDivisionError :
175 self.msg.warning(
'Division by zero error when calculating the uncertainties on the pass efficiencies...' )
177 self.msg.
info(
'==> finalize %s...', self.name() )
178 self.msg.
info(
'***************************************************************' )
179 self.msg.
info(
'Cut-flow table of %s skimming algorithm:', self.name() )
180 self.msg.
info(
'-------------' )
181 self.msg.
info(
' Number of processed events: %r', self.nProcessed )
182 self.msg.
info(
' Number of events with jet requirement: %r, eff. = (%3.3f +/- %3.3f)%%', self.nEventPassJet, effPassJet, effErrPassJet )
183 self.msg.
info(
' Number of events with met requirement: %r, eff. = (%3.3f +/- %3.3f)%%', self.nEventPassMet, effPassMet, effErrPassMet )
184 self.msg.
info(
' Number of events with all requirements: %r, eff. = (%3.3f +/- %3.3f)%%', self.nEventPassed, effPassAll, effErrPassAll )
185 self.msg.
info(
'***************************************************************' )
188 return StatusCode.Success
◆ initialize()
def python.MultiJetMetFilter.MultiJetMetFilter.initialize |
( |
|
self | ) |
|
Definition at line 43 of file MultiJetMetFilter.py.
44 self.msg.
info(
'************************************' )
45 self.msg.
info(
'==> initialize %s...', self.name() )
46 self.msg.
info(
' jetCollectionType = %s', self.jetCollectionType )
47 self.msg.
info(
' jetCollectionName = %s', self.jetCollectionName )
48 self.msg.
info(
' metCollectionType = %s', self.metCollectionType )
49 self.msg.
info(
' metCollectionNames = %s', self.metCollectionNames )
50 self.msg.
info(
'Will apply the following cuts:' )
51 self.msg.
info(
' cutsEtMin = %r', self.cutsEtMin )
52 self.msg.
info(
' cutEtaMax = %r', self.cutEtaMax )
53 self.msg.
info(
' requireMet = %r', self.requireMet )
54 self.msg.
info(
' MetMin = %r', self.cutMetMin )
55 self.msg.
info(
'************************************' )
59 self.nEventPassJet = 0
60 self.nEventPassMet = 0
63 self.storeGateSvc = PyAthena.py_svc(
'StoreGateSvc')
64 if not self.storeGateSvc :
65 self.msg.
error(
"Problem retrieving StoreGateSvc pointer !!")
66 return StatusCode.Failure
68 return StatusCode.Success
◆ cutEtaMax
python.MultiJetMetFilter.MultiJetMetFilter.cutEtaMax |
◆ cutMetMin
python.MultiJetMetFilter.MultiJetMetFilter.cutMetMin |
◆ cutsEtMin
python.MultiJetMetFilter.MultiJetMetFilter.cutsEtMin |
◆ jetCollectionName
python.MultiJetMetFilter.MultiJetMetFilter.jetCollectionName |
◆ jetCollectionType
python.MultiJetMetFilter.MultiJetMetFilter.jetCollectionType |
◆ metCollectionNames
python.MultiJetMetFilter.MultiJetMetFilter.metCollectionNames |
◆ metCollectionType
python.MultiJetMetFilter.MultiJetMetFilter.metCollectionType |
◆ nEventPassed
python.MultiJetMetFilter.MultiJetMetFilter.nEventPassed |
◆ nEventPassJet
python.MultiJetMetFilter.MultiJetMetFilter.nEventPassJet |
◆ nEventPassMet
python.MultiJetMetFilter.MultiJetMetFilter.nEventPassMet |
◆ nProcessed
python.MultiJetMetFilter.MultiJetMetFilter.nProcessed |
◆ passAll
python.MultiJetMetFilter.MultiJetMetFilter.passAll |
◆ requireMet
python.MultiJetMetFilter.MultiJetMetFilter.requireMet |
◆ storeGateSvc
python.MultiJetMetFilter.MultiJetMetFilter.storeGateSvc |
The documentation for this class was generated from the following file: