ATLAS Offline Software
TrigEgammaFastCaloHypoTool.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaCommon.Logging import logging
4 from AthenaCommon.SystemOfUnits import GeV
5 from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory import CompFactory
8 
9 import collections.abc
10 
11 
12 def same( val , tool):
13  return [val]*( len( tool.EtaBins ) - 1 )
14 
15 
16 #
17 # For electrons
18 #
19 def electronRingerFastCaloHypoConfig(flags, name, sequenceOut):
20  # make the Hypo
21  theFastCaloHypo = CompFactory.TrigEgammaFastCaloHypoAlg(name)
22  theFastCaloHypo.CaloClusters = sequenceOut
23  theFastCaloHypo.PidNames = ["tight", "medium", "loose", "vloose"]
24  theFastCaloHypo.RingerNNSelectorTools = createTrigEgammaFastCaloElectronSelectors(flags)
25 
26  monTool = GenericMonitoringTool(flags, "MonTool_"+name, HistPath = 'FastCaloL2EgammaHypo/'+name)
27  monTool.defineHistogram('TIME_exec', type='TH1F', path='EXPERT', title="Fast Calo Hypo Algtime; time [ us ] ; Nruns", xbins=80, xmin=0.0, xmax=8000.0)
28  monTool.defineHistogram('TIME_NN_exec', type='TH1F', path='EXPERT', title="Fast Calo Hypo NN Algtime; time [ us ] ; Nruns", xbins=50, xmin=0.0, xmax=50)
29 
30  theFastCaloHypo.MonTool=monTool
31  return theFastCaloHypo
32 
33 #
34 # For photons
35 #
36 def photonRingerFastCaloHypoConfig(flags, name, sequenceOut):
37  # make the Hypo
38  theFastCaloHypo = CompFactory.TrigEgammaFastCaloHypoAlg(name)
39  theFastCaloHypo.CaloClusters = sequenceOut
40  theFastCaloHypo.PidNames = ["tight", "medium", "loose"]
41  theFastCaloHypo.RingerNNSelectorTools = createTrigEgammaFastCaloPhotonSelectors(flags)
42 
43  monTool = GenericMonitoringTool(flags, "MonTool_"+name, HistPath = 'FastCaloL2EgammaHypo/'+name)
44  monTool.defineHistogram('TIME_exec', type='TH1F', path='EXPERT', title="Fast Calo Hypo Algtime; time [ us ] ; Nruns", xbins=80, xmin=0.0, xmax=8000.0)
45  monTool.defineHistogram('TIME_NN_exec', type='TH1F', path='EXPERT', title="Fast Calo Hypo NN Algtime; time [ us ] ; Nruns", xbins=50, xmin=0.0, xmax=50)
46 
47  theFastCaloHypo.MonTool=monTool
48  return theFastCaloHypo
49 
50 
51 
52 def createTrigEgammaFastCaloHypoAlg(flags, name, sequenceOut):
53  if 'Electron' in name:
54  return electronRingerFastCaloHypoConfig(flags, name, sequenceOut)
55  elif 'Photon' in name:
56  return photonRingerFastCaloHypoConfig(flags, name, sequenceOut)
57 
58 
59 def TrigEgammaFastCaloHypoAlgCfg(flags, name, CaloClusters):
60  acc = ComponentAccumulator()
61  acc.addEventAlgo(createTrigEgammaFastCaloHypoAlg(flags, name=name, sequenceOut=CaloClusters))
62  return acc
63 
64 #
65 # For photons only
66 # NOTE: For future, ringer will be applied at the fast photon step
67 #
68 def createTrigEgammaFastCaloHypoAlg_noringer(flags, name, sequenceOut):
69 
70  # make the Hypo
71  theFastCaloHypo = CompFactory.TrigEgammaFastCaloHypoAlg(name)
72  theFastCaloHypo.CaloClusters = sequenceOut
73 
74  # Just for electrons
75  theFastCaloHypo.PidNames = []
76  theFastCaloHypo.RingerNNSelectorTools = []
77 
78 
79  monTool = GenericMonitoringTool(flags, "MonTool_"+name,
80  HistPath = 'FastCaloL2EgammaHypo/'+name)
81  monTool.defineHistogram('TIME_exec', type='TH1F', path='EXPERT', title="Fast Calo Hypo Algtime; time [ us ] ; Nruns", xbins=80, xmin=0.0, xmax=8000.0)
82  monTool.defineHistogram('TIME_NN_exec', type='TH1F', path='EXPERT', title="Fast Calo Hypo NN Algtime; time [ us ] ; Nruns", xbins=20, xmin=0.0, xmax=1000.0)
83 
84  theFastCaloHypo.MonTool=monTool
85  return theFastCaloHypo
86 
87 
88 
89 def treatPidName(pidname):
90  if 'tight' in pidname:
91  return 'tight'
92  elif 'medium' in pidname:
93  return 'medium'
94  # this should be before loose to works
95  elif 'vloose' in pidname:
96  return 'vloose'
97  else:
98  return 'loose'
99 
100 #
101 # For electron and photons
102 #
104 
105  __operation_points = [ 'tight' ,
106  'medium' ,
107  'loose' ,
108  'vloose' ,
109  'lhtight' ,
110  'lhmedium' ,
111  'lhloose' ,
112  'lhvloose' ,
113  'dnntight' ,
114  'dnnmedium',
115  'dnnloose' ,
116  'dnnvloose',
117  ]
118 
119 
120  def __init__(self, flags, name, monGroups, cpart, tool=None):
121 
122  self.__log = logging.getLogger('TrigEgammaFastCaloHypoTool')
123  self.__name = name
124  self.__cand = cpart['trigType']
125  self.__threshold = float(cpart['threshold'])
126  self.__sel = 'ion' if 'ion' in cpart['extra'] else (cpart['addInfo'][0] if cpart['addInfo'] else cpart['IDinfo'])
127  self.__gsfinfo = cpart['gsfInfo'] if cpart['trigType']=='e' and cpart['gsfInfo'] else ''
128  self.__idperfinfo = cpart['idperfInfo'] if cpart['trigType']=='e' and cpart['idperfInfo'] else ''
129  # self.__noringerinfo = cpart['L2IDAlg'] if cpart['trigType']=='e' else ''
130  self.__noringerinfo = cpart['L2IDAlg']
131  self.__monGroups = monGroups
132  self.__calibThreshold = flags.Trigger.egamma.CalibrationETThreshold
133 
134  if not tool:
135  tool = CompFactory.TrigEgammaFastCaloHypoTool( name )
136 
137  tool.AcceptAll = False
138  tool.UseRinger = False
139  tool.EtaBins = [0.0, 0.6, 0.8, 1.15, 1.37, 1.52, 1.81, 2.01, 2.37, 2.47]
140  tool.ETthr = same( self.__threshold*GeV, tool )
141  tool.dETACLUSTERthr = 0.1
142  tool.dPHICLUSTERthr = 0.1
143  tool.F1thr = same( 0.005 , tool)
144  tool.ET2thr = same( 90.0*GeV, tool )
145  tool.HADET2thr = same( 999.0 , tool)
146  tool.HADETthr = same( 0.058 , tool)
147  tool.WETA2thr = same( 99999. , tool)
148  tool.WSTOTthr = same( 99999. , tool)
149  tool.F3thr = same( 99999. , tool)
150  tool.CARCOREthr = same( -9999. , tool)
151  tool.CAERATIOthr = same( -9999. , tool)
152  tool.PidName = ""
153 
154  self.__tool = tool
155 
156  self.__log.debug( 'Chain :%s' , self.__name )
157  self.__log.debug( 'Signature :%s' , self.__cand )
158  self.__log.debug( 'Threshold :%s' , self.__threshold )
159  self.__log.debug( 'Pidname :%s' , self.__sel )
160  self.__log.debug( 'noringerinfo :%s', self.__noringerinfo )
161 
162 
163  def chain(self):
164  return self.__name
165 
166  def pidname( self ):
167  return self.__sel
168 
169  def etthr(self):
170  return self.__threshold
171 
172  def isElectron(self):
173  return 'e' in self.__cand
174 
175  def isPhoton(self):
176  return 'g' in self.__cand
177 
178  def noringerinfo(self):
179  return self.__noringerinfo
180 
181  def gsfinfo(self):
182  return self.__gsfinfo
183 
184  def idperfinfo(self):
185  return self.__idperfinfo
186 
187  def tool(self):
188  return self.__tool
189 
190 
191  def nocut(self):
192 
193  self.__log.debug( 'Configure nocut' )
194  self.tool().AcceptAll = True
195  self.tool().UseRinger = False
196  self.tool().ETthr = same( self.etthr()*GeV , self.tool())
197  self.tool().dETACLUSTERthr = 9999.
198  self.tool().dPHICLUSTERthr = 9999.
199  self.tool().F1thr = same( 0.0 , self.tool())
200  self.tool().HADETthr = same( 9999. , self.tool())
201  self.tool().CARCOREthr = same( -9999. , self.tool())
202  self.tool().CAERATIOthr = same( -9999. , self.tool())
203 
204 
205  def etcut(self):
206 
207  self.__log.debug( 'Configure etcut or nopid' )
208  self.tool().UseRinger = False
209  self.tool().ETthr = same( ( self.etthr() - self.__calibThreshold )*GeV, self.tool() )
210  self.tool().dETACLUSTERthr = 9999.
211  self.tool().dPHICLUSTERthr = 9999.
212  self.tool().F1thr = same( 0.0 ,self.tool())
213  self.tool().HADETthr = same( 9999. ,self.tool())
214  self.tool().CARCOREthr = same( -9999. ,self.tool())
215  self.tool().CAERATIOthr = same( -9999. ,self.tool())
216 
217 
218  def noringer(self):
219 
220  self.__log.debug( 'Configure noringer' )
221  from TrigEgammaHypo.TrigEgammaFastCutDefs import TrigFastCaloElectronCutMaps
222  self.tool().UseRinger = False
223  self.tool().ETthr = same( ( self.etthr() - self.__calibThreshold )*GeV , self.tool())
224  self.tool().HADETthr = TrigFastCaloElectronCutMaps( self.etthr() ).MapsHADETthr[self.pidname()]
225  self.tool().CARCOREthr = TrigFastCaloElectronCutMaps( self.etthr() ).MapsCARCOREthr[self.pidname()]
226  self.tool().CAERATIOthr = TrigFastCaloElectronCutMaps( self.etthr() ).MapsCAERATIOthr[self.pidname()]
227 
228 
229  def nominal(self):
230 
231  self.__log.debug( 'Configure ringer' )
232  self.tool().UseRinger = True
233  self.tool().EtCut = (self.etthr()-self.__calibThreshold)*GeV
234  if not self.pidname() in self.__operation_points:
235  self.__log.fatal("Bad selection name: %s" % self.pidname())
236  self.tool().PidName = treatPidName(self.pidname())
237 
238 
239  #
240  # compile the chain
241  #
242  def compile(self, flags):
243 
244  if self.pidname() in ('etcut', 'ion', 'nopid'):
245  self.etcut()
246 
247  elif self.pidname() in self.__operation_points and 'noringer' in self.noringerinfo() and self.isElectron():
248  self.noringer()
249 
250  elif self.pidname() in self.__operation_points and 'noringer' not in self.noringerinfo() and self.isElectron():
251  self.nominal()
252 
253  elif self.pidname() in self.__operation_points and self.isPhoton() and 'ringer'!=self.noringerinfo():
254  self.etcut()
255  elif self.pidname() in self.__operation_points and self.isPhoton() and 'ringer'==self.noringerinfo():
256  self.nominal()
257 
258  elif self.etthr()==0:
259  self.nocut()
260 
261  if hasattr(self.tool(), "MonTool"):
262 
263  doValidationMonitoring = flags.Trigger.doValidationMonitoring # True to monitor all chains for validation purposes
264  monGroups = self.__monGroups
265 
266  if (any('egammaMon:online' in group for group in monGroups) or doValidationMonitoring):
267  self.addMonitoring(flags)
268 
269 
270  #
271  # Add monitoring tool
272  #
273  def addMonitoring(self, flags):
274 
275  if self.tool().UseRinger:
276  monTool = GenericMonitoringTool(flags, 'MonTool'+self.__name)
277  monTool.defineHistogram('Eta', type='TH1F', path='EXPERT',title="#eta of Clusters; #eta; number of RoIs", xbins=50,xmin=-2.5,xmax=2.5)
278  monTool.defineHistogram('Phi',type='TH1F', path='EXPERT',title="#phi of Clusters; #phi; number of RoIs", xbins=64,xmin=-3.2,xmax=3.2)
279  monTool.defineHistogram('Et',type='TH1F', path='EXPERT',title="E_{T} of Clusters; E_{T} [MeV]; number of RoIs", xbins=60,xmin=0,xmax=5e4)
280  monTool.defineHistogram('NNOutput',type='TH1F', path='EXPERT',title="NN Output; NN; Count", xbins=17,xmin=-8,xmax=+8)
281 
282  monTool.HistPath= 'FastCaloL2EgammaHypo/'+self.__name
283  self.tool().MonTool=monTool
284 
285  else:
286 
287  monTool = GenericMonitoringTool(flags, "MonTool_"+self.__name,
288  HistPath = 'FastCaloL2EgammaHypo/'+self.__name)
289  monTool.defineHistogram('dEta', type='TH1F', path='EXPERT', title="L2Calo Hypo #Delta#eta_{L2 L1}; #Delta#eta_{L2 L1}",
290  xbins=80, xmin=-0.01, xmax=0.01)
291  monTool.defineHistogram('dPhi', type='TH1F', path='EXPERT', title="L2Calo Hypo #Delta#phi_{L2 L1}; #Delta#phi_{L2 L1}",
292  xbins=80, xmin=-0.01, xmax=0.01)
293  monTool.defineHistogram('Et_em', type='TH1F', path='EXPERT', title="L2Calo Hypo cluster E_{T}^{EM};E_{T}^{EM} [MeV]",
294  xbins=50, xmin=-2000, xmax=100000)
295  monTool.defineHistogram('Eta', type='TH1F', path='EXPERT', title="L2Calo Hypo entries per Eta;Eta", xbins=100, xmin=-2.5, xmax=2.5)
296  monTool.defineHistogram('Phi', type='TH1F', path='EXPERT', title="L2Calo Hypo entries per Phi;Phi", xbins=128, xmin=-3.2, xmax=3.2)
297 
298  cuts=['Input','has one TrigEMCluster', '#Delta #eta L2-L1', '#Delta #phi L2-L1','eta','rCore',
299  'eRatio','E_{T}^{EM}', 'E_{T}^{Had}','f_{1}','Weta2','Wstot','F3']
300 
301  monTool.defineHistogram('CutCounter', type='TH1I', path='EXPERT', title="L2Calo Hypo Passed Cuts;Cut",
302  xbins=13, xmin=-1.5, xmax=12.5, opt="kCumulative", xlabels=cuts)
303 
304  if flags.Trigger.doValidationMonitoring:
305  monTool.defineHistogram('Et_had', type='TH1F', path='EXPERT', title="L2Calo Hypo E_{T}^{had} in first layer;E_{T}^{had} [MeV]",
306  xbins=50, xmin=-2000, xmax=100000)
307  monTool.defineHistogram('RCore', type='TH1F', path='EXPERT', title="L2Calo Hypo R_{core};E^{3x7}/E^{7x7} in sampling 2",
308  xbins=48, xmin=-0.1, xmax=1.1)
309  monTool.defineHistogram('Eratio', type='TH1F', path='EXPERT',
310  title="L2Calo Hypo E_{ratio};E^{max1}-E^{max2}/E^{max1}+E^{max2} in sampling 1 (excl.crack)",
311  xbins=64, xmin=-0.1, xmax=1.5)
312  monTool.defineHistogram('EtaBin', type='TH1I', path='EXPERT', title="L2Calo Hypo entries per Eta bin;Eta bin no.",
313  xbins=11, xmin=-0.5, xmax=10.5)
314  monTool.defineHistogram('F1', type='TH1F', path='EXPERT', title="L2Calo Hypo f_{1};f_{1}", xbins=34, xmin=-0.5, xmax=1.2)
315  monTool.defineHistogram('Weta2', type='TH1F', path='EXPERT', title="L2Calo Hypo Weta2; E Width in sampling 2",
316  xbins=96, xmin=-0.1, xmax=0.61)
317  monTool.defineHistogram('Wstot', type='TH1F', path='EXPERT', title="L2Calo Hypo Wstot; E Width in sampling 1",
318  xbins=48, xmin=-0.1, xmax=11.)
319  monTool.defineHistogram('F3', type='TH1F', path='EXPERT', title="L2Calo Hypo F3; E3/(E0+E1+E2+E3)",
320  xbins=96, xmin=-0.1, xmax=1.1)
321 
322 
323  self.tool().MonTool = monTool
324 
325 
326 
327 def _IncTool(flags, name, monGroups, cpart, tool=None):
328  config = TrigEgammaFastCaloHypoToolConfig(flags, name, monGroups, cpart, tool=tool )
329  config.compile(flags)
330  return config.tool()
331 
332 
333 def TrigEgammaFastCaloHypoToolFromDict(flags, chainDict , tool=None):
334  """ Use menu decoded chain dictionary to configure the tool """
335  cparts = [i for i in chainDict['chainParts'] if ((i['signature']=='Electron') or (i['signature']=='Photon'))]
336  return _IncTool( flags, chainDict['chainName'], chainDict['monGroups'], cparts[0], tool=tool)
337 
338 
339 
340 def createTrigEgammaFastCaloElectronSelectors(flags, ConfigFilePath=None):
341 
342  if not ConfigFilePath:
343  ConfigFilePath = flags.Trigger.egamma.ringerVersion
344 
345 
346  SelectorNames = collections.OrderedDict({
347  'tight' : 'AsgElectronFastCaloRingerTightSelectorTool',
348  'medium' : 'AsgElectronFastCaloRingerMediumSelectorTool',
349  'loose' : 'AsgElectronFastCaloRingerLooseSelectorTool',
350  'vloose' : 'AsgElectronFastCaloRingerVeryLooseSelectorTool',
351  })
352 
353 
354  ToolConfigFile = collections.OrderedDict({
355  'tight' :['ElectronRingerTightTriggerConfig.conf' ],
356  'medium' :['ElectronRingerMediumTriggerConfig.conf' ],
357  'loose' :['ElectronRingerLooseTriggerConfig.conf' ],
358  'vloose' :['ElectronRingerVeryLooseTriggerConfig.conf'],
359  })
360 
361  selectors = []
362 
363  for pidname , name in SelectorNames.items():
364  SelectorTool=CompFactory.Ringer.AsgRingerSelectorTool(name)
365  SelectorTool.ConfigFiles = [ (ConfigFilePath+'/'+path) for path in ToolConfigFile[pidname] ]
366  selectors.append(SelectorTool)
367  return selectors
368 
369 
370 
371 def createTrigEgammaFastCaloPhotonSelectors(flags, ConfigFilePath=None):
372 
373  if not ConfigFilePath:
374  ConfigFilePath = flags.Trigger.egamma.photonRingerVersion
375 
376 
377  SelectorNames = collections.OrderedDict({
378  'tight' : 'AsgPhotonFastCaloRingerTightSelectorTool',
379  'medium' : 'AsgPhotonFastCaloRingerMediumSelectorTool',
380  'loose' : 'AsgPhotonFastCaloRingerLooseSelectorTool',
381  })
382 
383 
384  ToolConfigFile = collections.OrderedDict({
385  'tight' :['PhotonRingerTightTriggerConfig.conf' ],
386  'medium' :['PhotonRingerMediumTriggerConfig.conf' ],
387  'loose' :['PhotonRingerLooseTriggerConfig.conf' ],
388  })
389 
390  selectors = []
391 
392  for pidname , name in SelectorNames.items():
393  SelectorTool=CompFactory.Ringer.AsgRingerSelectorTool(name)
394  SelectorTool.UseTansigOutput = True # FIXME: Should be removed in the next round
395  SelectorTool.ConfigFiles = [ (ConfigFilePath+'/'+path) for path in ToolConfigFile[pidname] ]
396  selectors.append(SelectorTool)
397  return selectors
python.TrigEgammaFastCaloHypoTool.createTrigEgammaFastCaloHypoAlg_noringer
def createTrigEgammaFastCaloHypoAlg_noringer(flags, name, sequenceOut)
Definition: TrigEgammaFastCaloHypoTool.py:68
python.TrigEgammaFastCaloHypoTool._IncTool
def _IncTool(flags, name, monGroups, cpart, tool=None)
Definition: TrigEgammaFastCaloHypoTool.py:327
SystemOfUnits
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.TrigEgammaFastCaloHypoTool.electronRingerFastCaloHypoConfig
def electronRingerFastCaloHypoConfig(flags, name, sequenceOut)
Definition: TrigEgammaFastCaloHypoTool.py:19
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.noringerinfo
def noringerinfo(self)
Definition: TrigEgammaFastCaloHypoTool.py:178
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolFromDict
def TrigEgammaFastCaloHypoToolFromDict(flags, chainDict, tool=None)
Definition: TrigEgammaFastCaloHypoTool.py:333
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__gsfinfo
__gsfinfo
Definition: TrigEgammaFastCaloHypoTool.py:127
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.etthr
def etthr(self)
Definition: TrigEgammaFastCaloHypoTool.py:169
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.gsfinfo
def gsfinfo(self)
Definition: TrigEgammaFastCaloHypoTool.py:181
python.TrigEgammaFastCaloHypoTool.treatPidName
def treatPidName(pidname)
Definition: TrigEgammaFastCaloHypoTool.py:89
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__init__
def __init__(self, flags, name, monGroups, cpart, tool=None)
Definition: TrigEgammaFastCaloHypoTool.py:120
GenericMonitoringTool
Definition: GenericMonitoringTool.h:53
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.addMonitoring
def addMonitoring(self, flags)
Definition: TrigEgammaFastCaloHypoTool.py:273
python.TrigEgammaFastCaloHypoTool.same
def same(val, tool)
Definition: TrigEgammaFastCaloHypoTool.py:12
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__calibThreshold
__calibThreshold
Definition: TrigEgammaFastCaloHypoTool.py:132
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__threshold
__threshold
Definition: TrigEgammaFastCaloHypoTool.py:125
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.idperfinfo
def idperfinfo(self)
Definition: TrigEgammaFastCaloHypoTool.py:184
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__sel
__sel
Definition: TrigEgammaFastCaloHypoTool.py:126
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__monGroups
__monGroups
Definition: TrigEgammaFastCaloHypoTool.py:131
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__log
__log
Definition: TrigEgammaFastCaloHypoTool.py:122
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.isPhoton
def isPhoton(self)
Definition: TrigEgammaFastCaloHypoTool.py:175
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.nocut
def nocut(self)
Definition: TrigEgammaFastCaloHypoTool.py:191
python.TrigEgammaFastCaloHypoTool.createTrigEgammaFastCaloElectronSelectors
def createTrigEgammaFastCaloElectronSelectors(flags, ConfigFilePath=None)
Definition: TrigEgammaFastCaloHypoTool.py:340
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.tool
def tool(self)
Definition: TrigEgammaFastCaloHypoTool.py:187
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__name
__name
Definition: TrigEgammaFastCaloHypoTool.py:123
python.TrigEgammaFastCaloHypoTool.photonRingerFastCaloHypoConfig
def photonRingerFastCaloHypoConfig(flags, name, sequenceOut)
Definition: TrigEgammaFastCaloHypoTool.py:36
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__tool
__tool
Definition: TrigEgammaFastCaloHypoTool.py:154
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig
Definition: TrigEgammaFastCaloHypoTool.py:103
GenericMonitoringTool
Definition: GenericMonitoringTool.py:1
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.etcut
def etcut(self)
Definition: TrigEgammaFastCaloHypoTool.py:205
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoAlgCfg
def TrigEgammaFastCaloHypoAlgCfg(flags, name, CaloClusters)
Definition: TrigEgammaFastCaloHypoTool.py:59
python.TrigEgammaFastCaloHypoTool.createTrigEgammaFastCaloHypoAlg
def createTrigEgammaFastCaloHypoAlg(flags, name, sequenceOut)
Definition: TrigEgammaFastCaloHypoTool.py:52
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.pidname
def pidname(self)
Definition: TrigEgammaFastCaloHypoTool.py:166
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__operation_points
__operation_points
Definition: TrigEgammaFastCaloHypoTool.py:105
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__cand
__cand
Definition: TrigEgammaFastCaloHypoTool.py:124
python.TrigEgammaFastCaloHypoTool.createTrigEgammaFastCaloPhotonSelectors
def createTrigEgammaFastCaloPhotonSelectors(flags, ConfigFilePath=None)
Definition: TrigEgammaFastCaloHypoTool.py:371
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.nominal
def nominal(self)
Definition: TrigEgammaFastCaloHypoTool.py:229
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.compile
def compile(self, flags)
Definition: TrigEgammaFastCaloHypoTool.py:242
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.isElectron
def isElectron(self)
Definition: TrigEgammaFastCaloHypoTool.py:172
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.noringer
def noringer(self)
Definition: TrigEgammaFastCaloHypoTool.py:218
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__noringerinfo
__noringerinfo
Definition: TrigEgammaFastCaloHypoTool.py:130
readCCLHist.float
float
Definition: readCCLHist.py:83
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.chain
def chain(self)
Definition: TrigEgammaFastCaloHypoTool.py:163
python.TrigEgammaFastCaloHypoTool.TrigEgammaFastCaloHypoToolConfig.__idperfinfo
__idperfinfo
Definition: TrigEgammaFastCaloHypoTool.py:128