ATLAS Offline Software
Loading...
Searching...
No Matches
FastReductionAlgToolFactory.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3"""Instantiator for AlgTools needed by the FastReduction."""
4
5from AthenaConfiguration.ComponentFactory import CompFactory
6
7jetMoments = {
8 'emfrac' : 'EMFrac',
9 'hecfrac' : 'HECFrac',
10}
11
13
14 def __init__(self):
15
17 'hypo_tool': [CompFactory.TrigJetHypoTool, 0],
18 'helper_tool': [CompFactory.TrigJetHypoToolHelperNoGrouper, 0],
19
20 'HelperToolConfigTool':
21 [CompFactory.TrigJetHypoToolConfig_fastreduction, 0],
22
23 'ConditionFilterConfigTool':
24 [CompFactory.TrigJetHypoToolConfig_conditionfilter, 0],
25
26 'PassThroughFilterConfigTool':
27 [CompFactory.TrigJetHypoToolConfig_passthroughfilter, 0],
28
29 'RangeFilterConfigTool':
30 [CompFactory.TrigJetHypoToolConfig_rangefilter, 0],
31
32 'MaxMultFilterConfigTool':
33 [CompFactory.TrigJetHypoToolConfig_maxmultfilter, 0],
34
35 'RepeatedConditionConfigTool':
36 [CompFactory.TrigJetConditionConfig_repeated, 0],
37
38 'eta': [CompFactory.TrigJetConditionConfig_abs_eta, 0],
39 'neta': [CompFactory.TrigJetConditionConfig_signed_eta, 0],
40 'ceta': [CompFactory.TrigJetConditionConfig_signed_eta, 0],
41 'peta': [CompFactory.TrigJetConditionConfig_signed_eta, 0],
42 'pphi': [CompFactory.TrigJetConditionConfig_phi, 0],
43 'cphi': [CompFactory.TrigJetConditionConfig_phi, 0],
44 'nphi': [CompFactory.TrigJetConditionConfig_phi, 0],
45 'et': [CompFactory.TrigJetConditionConfig_et, 0],
46 'pt': [CompFactory.TrigJetConditionConfig_pt, 0],
47 'djmass': [CompFactory.TrigJetConditionConfig_dijet_mass, 0],
48 'djdphi': [CompFactory.TrigJetConditionConfig_dijet_dphi, 0],
49 'djdeta': [CompFactory.TrigJetConditionConfig_dijet_deta, 0],
50 'qjmass': [CompFactory.TrigJetConditionConfig_qjet_mass, 0],
51 'smc': [CompFactory.TrigJetConditionConfig_smc, 0],
52 'jvt': [CompFactory.TrigJetConditionConfig_jvt, 0],
53 'nnJvt': [CompFactory.TrigJetConditionConfig_nnjvt, 0],
54 'ht': [CompFactory.TrigJetConditionConfig_htfr, 0],
55 'htdipz': [CompFactory.TrigJetConditionConfig_htdipz, 0],
56 'dipz_mlpl': [CompFactory.TrigJetConditionConfig_dipzmlpl, 0],
57 'mult': [CompFactory.TrigJetConditionConfig_mult, 0],
58 'bsel': [CompFactory.TrigJetConditionConfig_bdips, 0],
59 'gntau': [CompFactory.TrigJetConditionConfig_gntau, 0],
60 'uht1tau': [CompFactory.TrigJetConditionConfig_uht1tau, 0],
61 'clrsel': [CompFactory.TrigJetConditionConfig_emf, 0],
62 'pileuprm': [CompFactory.TrigJetConditionConfig_pileuprm, 0],
63 'clean': [CompFactory.TrigJetConditionConfig_clean, 0],
64 'all': [CompFactory.TrigJetConditionConfig_acceptAll, 0],
65 'timing': [CompFactory.TrigJetConditionConfig_timing, 0],
66 'timeSig': [CompFactory.TrigJetConditionConfig_timesig, 0],
67 }
68
69 for var in jetMoments:
70 self.tool_factories['mom'+var] = [
71 CompFactory.TrigJetConditionConfig_moment, 0]
72
73
74 def __call__(self, key, name=''):
75 """using a keyword, select and return Algtool Class, and
76 a name for the instance to be created. The name can be overridden
77 by the user. For example, the hypo tool takes the chain name as
78 its name."""
79
80 klass = self.tool_factories[key][0]
81 if name:
82 return klass, name
83
84 sn = self.tool_factories[key][1]
85
86 name = '%s_%d' % (key, sn)
87 self.tool_factories[key][1] += 1
88 return klass, name
89
90 def reset(self):
91 """Reset all creation counts to 0"""
92
93 for v in self.tool_factories.values():
94 v[1] = 0
95
96
97 def __str__(self):
98 wid = max(len(k) for k in self.tool_factories.keys())
99 rep = '\n%s: ' % self.__class__.__name__
100
101 rep += '\n'.join(
102 ['%s: %d' % (k.ljust(wid), v[1])
103 for k, v in self.tool_factories.items()])
104
105 return rep
106
107
108# make a common importable tool factory instance
#define max(a, b)
Definition cfImp.cxx:41