ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
python.SingleJetMetFilter.SingleJetMetFilter Class Reference
Inheritance diagram for python.SingleJetMetFilter.SingleJetMetFilter:
Collaboration diagram for python.SingleJetMetFilter.SingleJetMetFilter:

Public Member Functions

def __init__ (self, name="SingleJetMetFilter", **kw)
 
def initialize (self)
 
def execute (self)
 
def finalize (self)
 

Public Attributes

 jetCollectionType
 Define the cuts. More...
 
 jetCollectionName
 
 cutEt1Min
 
 cutEta1Max
 
 cutEt2Min
 
 cutEta2Max
 
 doSecondJetVeto
 
 requireMet
 
 metCollectionType
 
 metCollectionNames
 
 cutMetMin
 
 passAll
 
 nProcessed
 
 nEventPassed
 
 nEventPassJet
 
 nEventPassMet
 
 storeGateSvc
 Get the StoreGate service. More...
 

Detailed Description

Definition at line 25 of file SingleJetMetFilter.py.

Constructor & Destructor Documentation

◆ __init__()

def python.SingleJetMetFilter.SingleJetMetFilter.__init__ (   self,
  name = "SingleJetMetFilter",
**  kw 
)

Definition at line 27 of file SingleJetMetFilter.py.

27  def __init__ ( self, name = "SingleJetMetFilter", **kw ):
28  kw['name'] = name
29  super(SingleJetMetFilter, self).__init__(**kw)
30 
31 
32  self.jetCollectionType = kw.get('jetCollectionType', "JetCollection")
33  self.jetCollectionName = kw.get('jetCollectionName', "AntiKt4TopoJets")
34  self.cutEt1Min = kw.get('cutEt1Min', 0.0*Units.GeV)
35  self.cutEta1Max = kw.get('cutEta1Max', 4.5)
36  self.cutEt2Min = kw.get('cutEt2Min', 0.0*Units.GeV)
37  self.cutEta2Max = kw.get('cutEta2Max', 4.5)
38  self.doSecondJetVeto = kw.get('doSecondJetVeto', False)
39  self.requireMet = kw.get('requireMet ', True)
40  self.metCollectionType = kw.get('metCollectionType', "MissingET")
41  self.metCollectionNames = kw.get('metCollectionNames', [])
42  self.cutMetMin = kw.get('cutMetMin', 0.0*Units.GeV)
43  self.passAll = kw.get('passAll', False)
44 
45  return
46 

Member Function Documentation

◆ execute()

def python.SingleJetMetFilter.SingleJetMetFilter.execute (   self)

Definition at line 78 of file SingleJetMetFilter.py.

78  def execute(self):
79  self.nProcessed+=1
80 
81 
82  if self.passAll :
83  self.msg.debug( '%s event passed because passAll is true', self.name() )
84  self.setFilterPassed(True)
85  return StatusCode.Success
86 
87  # Get the jet collection from StoreGate
88  jetCollection = None
89 
90  try:
91  jetCollection = self.storeGateSvc.retrieve( self.jetCollectionType, self.jetCollectionName )
92  except LookupError:
93  self.msg.warning( 'Collection %s not found', self.jetCollectionName )
94  self.setFilterPassed(False)
95  return StatusCode.Success
96 
97 
98  selectedJetIdx = []
99  for i in range( jetCollection.size() ) :
100  jet = jetCollection[i]
101  if jet.et() > self.cutEt1Min and abs(jet.eta()) < self.cutEta1Max :
102  selectedJetIdx.append(i)
103 
104  passedJet = True
105  if len(selectedJetIdx) >= 1 :
106  if self.doSecondJetVeto :
107  for i in range( jetCollection.size() ) :
108  if i == selectedJetIdx[0] :
109  pass
110  else :
111  jet = jetCollection[i]
112  if jet.et() > self.cutEt2Min and abs(jet.eta()) < self.cutEta2Max :
113  passedJet = False
114  break
115  else :
116  passedJet = True
117  else :
118  passedJet = False
119 
120  if passedJet :
121  self.nEventPassJet+=1
122 
123 
124  if self.requireMet :
125  passedMet = False
126  for i in range( len(self.metCollectionNames) ) :
127  try:
128  met = self.storeGateSvc.retrieve( self.metCollectionType, self.metCollectionNames[i] )
129  except LookupError:
130  self.msg.warning( 'Collection %s not found', self.metCollectionNames[i] )
131  self.setFilterPassed(False)
132  return StatusCode.Success
133 
134  if met.et() > self.cutMetMin :
135  passedMet = True
136  self.nEventPassMet+=1
137  break
138  else :
139  pass
140 
141  if passedJet and passedMet :
142  self.nEventPassed+=1
143  self.setFilterPassed(True)
144  else :
145  self.setFilterPassed(False)
146 
147  else :
148  self.nEventPassMet+=1
149  if passedJet :
150  self.nEventPassed+=1
151  self.setFilterPassed(True)
152  else :
153  self.setFilterPassed(False)
154 
155  return StatusCode.Success
156 

◆ finalize()

def python.SingleJetMetFilter.SingleJetMetFilter.finalize (   self)

Definition at line 157 of file SingleJetMetFilter.py.

157  def finalize(self):
158 
159  import math
160 
161 
162  effPassJet = 0.0
163  effPassMet = 0.0
164  effPassAll = 0.0
165  effErrPassJet = 0.0
166  effErrPassMet = 0.0
167  effErrPassAll = 0.0
168 
169  try :
170  # Efficiencies
171  effPassJet = self.nEventPassJet / float(self.nProcessed)
172  effPassMet = self.nEventPassMet / float(self.nProcessed)
173  effPassAll = self.nEventPassed / float(self.nProcessed)
174 
175  # Error on efficiencies
176  effErrPassJet = 100.0*math.sqrt(effPassJet*(1.-effPassMet)/float(self.nProcessed))
177  effErrPassMet = 100.0*math.sqrt(effPassMet*(1.-effPassMet)/float(self.nProcessed))
178  effErrPassAll = 100.0*math.sqrt(effPassAll*(1.-effPassAll)/float(self.nProcessed))
179 
180  effPassJet *= 100.
181  effPassMet *= 100.
182  effPassAll *= 100.
183 
184  except ZeroDivisionError :
185  self.msg.warning( 'Division by zero error when calculating the uncertainties on the pass efficiencies...' )
186 
187  self.msg.info( '==> finalize %s...', self.name() )
188  self.msg.info( '***************************************************************' )
189  self.msg.info( 'Cut-flow table of %s skimming algorithm:', self.name() )
190  self.msg.info( '-------------' )
191  self.msg.info( ' Number of processed events: %r', self.nProcessed )
192  self.msg.info( ' Number of events with jet requirement: %r, eff. = (%3.3f +/- %3.3f)%%', self.nEventPassJet, effPassJet, effErrPassJet )
193  self.msg.info( ' Number of events with met requirement: %r, eff. = (%3.3f +/- %3.3f)%%', self.nEventPassMet, effPassMet, effErrPassMet )
194  self.msg.info( ' Number of events with all requirements: %r, eff. = (%3.3f +/- %3.3f)%%', self.nEventPassed, effPassAll, effErrPassAll )
195  self.msg.info( '***************************************************************' )
196 
197 
198  return StatusCode.Success
199 

◆ initialize()

def python.SingleJetMetFilter.SingleJetMetFilter.initialize (   self)

Definition at line 47 of file SingleJetMetFilter.py.

47  def initialize(self):
48  self.msg.info( '************************************' )
49  self.msg.info( '==> initialize %s...', self.name() )
50  self.msg.info( ' jetCollectionType = %s', self.jetCollectionType )
51  self.msg.info( ' jetCollectionName = %s', self.jetCollectionName )
52  self.msg.info( ' metCollectionType = %s', self.metCollectionType )
53  self.msg.info( ' metCollectionNames = %s', self.metCollectionNames )
54  self.msg.info( 'Will apply the following cuts:' )
55  self.msg.info( ' Et1Min = %r', self.cutEt1Min )
56  self.msg.info( ' Eta1Max = %r', self.cutEta1Max )
57  self.msg.info( ' Et2Min = %r', self.cutEt2Min )
58  self.msg.info( ' Eta2Max = %r', self.cutEta2Max )
59  self.msg.info( ' doSecondJetVeto = %r', self.doSecondJetVeto )
60  self.msg.info( ' requireMet = %r', self.requireMet )
61  self.msg.info( ' MetMin = %r', self.cutMetMin )
62  self.msg.info( '************************************' )
63 
64  self.nProcessed = 0
65  self.nEventPassed = 0
66  self.nEventPassJet = 0
67  self.nEventPassMet = 0
68 
69 
70  self.storeGateSvc = PyAthena.py_svc('StoreGateSvc')
71  if not self.storeGateSvc :
72  self.msg.error("Problem retrieving StoreGateSvc pointer !!")
73  return StatusCode.Failure
74 
75  return StatusCode.Success
76 
77 

Member Data Documentation

◆ cutEt1Min

python.SingleJetMetFilter.SingleJetMetFilter.cutEt1Min

Definition at line 34 of file SingleJetMetFilter.py.

◆ cutEt2Min

python.SingleJetMetFilter.SingleJetMetFilter.cutEt2Min

Definition at line 36 of file SingleJetMetFilter.py.

◆ cutEta1Max

python.SingleJetMetFilter.SingleJetMetFilter.cutEta1Max

Definition at line 35 of file SingleJetMetFilter.py.

◆ cutEta2Max

python.SingleJetMetFilter.SingleJetMetFilter.cutEta2Max

Definition at line 37 of file SingleJetMetFilter.py.

◆ cutMetMin

python.SingleJetMetFilter.SingleJetMetFilter.cutMetMin

Definition at line 42 of file SingleJetMetFilter.py.

◆ doSecondJetVeto

python.SingleJetMetFilter.SingleJetMetFilter.doSecondJetVeto

Definition at line 38 of file SingleJetMetFilter.py.

◆ jetCollectionName

python.SingleJetMetFilter.SingleJetMetFilter.jetCollectionName

Definition at line 33 of file SingleJetMetFilter.py.

◆ jetCollectionType

python.SingleJetMetFilter.SingleJetMetFilter.jetCollectionType

Define the cuts.

Definition at line 32 of file SingleJetMetFilter.py.

◆ metCollectionNames

python.SingleJetMetFilter.SingleJetMetFilter.metCollectionNames

Definition at line 41 of file SingleJetMetFilter.py.

◆ metCollectionType

python.SingleJetMetFilter.SingleJetMetFilter.metCollectionType

Definition at line 40 of file SingleJetMetFilter.py.

◆ nEventPassed

python.SingleJetMetFilter.SingleJetMetFilter.nEventPassed

Definition at line 65 of file SingleJetMetFilter.py.

◆ nEventPassJet

python.SingleJetMetFilter.SingleJetMetFilter.nEventPassJet

Definition at line 66 of file SingleJetMetFilter.py.

◆ nEventPassMet

python.SingleJetMetFilter.SingleJetMetFilter.nEventPassMet

Definition at line 67 of file SingleJetMetFilter.py.

◆ nProcessed

python.SingleJetMetFilter.SingleJetMetFilter.nProcessed

Definition at line 64 of file SingleJetMetFilter.py.

◆ passAll

python.SingleJetMetFilter.SingleJetMetFilter.passAll

Definition at line 43 of file SingleJetMetFilter.py.

◆ requireMet

python.SingleJetMetFilter.SingleJetMetFilter.requireMet

Definition at line 39 of file SingleJetMetFilter.py.

◆ storeGateSvc

python.SingleJetMetFilter.SingleJetMetFilter.storeGateSvc

Get the StoreGate service.

Definition at line 70 of file SingleJetMetFilter.py.


The documentation for this class was generated from the following file:
grepfile.info
info
Definition: grepfile.py:38
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
initialize
void initialize()
Definition: run_EoverP.cxx:894
LArG4FSStartPointFilterLegacy.execute
execute
Definition: LArG4FSStartPointFilterLegacy.py:20
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
error
Definition: IImpactPoint3dEstimator.h:70
readCCLHist.float
float
Definition: readCCLHist.py:83