ATLAS Offline Software
Loading...
Searching...
No Matches
TestChainConfiguration.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaCommon.Logging import logging
4logging.getLogger().info("Importing %s",__name__)
5log = logging.getLogger(__name__)
6
7
8from ..Config.ChainConfigurationBase import ChainConfigurationBase
9
10from TriggerMenuMT.CFtest.HLTSignatureConfig import muMenuSequence, elMenuSequence, gamMenuSequence
11from TriggerMenuMT.CFtest.HLTSignatureHypoTools import dimuDrComboHypoTool
12from TriggerMenuMT.HLT.Config.MenuComponents import createEmptyMenuSequenceCfg
13
14#--------------------------------------------------------
15# fragments generating config will be functions in new JO
16#--------------------------------------------------------
17
18
19# Muons
20def muCfg(flags,step,reconame, hyponame):
21 return muMenuSequence(flags,step,reconame, hyponame)
22
23def muCfg111(flags):
24 return muCfg(flags,step="1",reconame="v1", hyponame="v1")
25
26def muCfg211(flags):
27 return muCfg(flags,step="2",reconame="v1", hyponame="v1")
28
29def muCfg311(flags):
30 return muCfg(flags,step="3",reconame="v1", hyponame="v1")
31
32def muCfg322(flags):
33 return muCfg(flags,step="3",reconame="v2", hyponame="v2")
34
35def muCfg411(flags):
36 return muCfg(flags,step="4",reconame="v1", hyponame="v1")
37
38def muCfg222(flags):
39 return muCfg(flags,step="2",reconame="v2", hyponame="v2")
40
41
42# Egamma
43def elCfg(flags,step,reconame, hyponame):
44 return elMenuSequence(flags,step,reconame, hyponame)
45
46def gamCfg(flags,step,reconame, hyponame):
47 return gamMenuSequence(flags,step,reconame, hyponame)
48
49def elCfg111(flags):
50 return elCfg(flags,step="1",reconame="v1", hyponame="v1")
51
52def elCfg211(flags):
53 return elCfg(flags,step="2",reconame="v1", hyponame="v1")
54
55def elCfg222(flags):
56 return elCfg(flags,step="2",reconame="v2", hyponame="v2")
57
58def elCfg223(flags):
59 return elCfg(flags,step="2",reconame="v2", hyponame="v3")
60
61def elCfg311(flags):
62 return elCfg(flags,step="3",reconame="v1", hyponame="v1")
63
64def gamCfg111(flags):
65 return gamCfg(flags,step="1",reconame="v1", hyponame="v1")
66
67
68
69#----------------------------------------------------------------
70# Class to configure chain
71#----------------------------------------------------------------
72class TestChainConfiguration(ChainConfigurationBase):
73
74 def __init__(self, chainDict):
75 ChainConfigurationBase.__init__(self,chainDict)
76
77 # ----------------------
78 # Assemble the chain depending on information from chainName
79 # ----------------------
80 def assembleChainImpl(self, flags):
81 chainSteps = []
82 stepDictionary = self.getStepDictionary()
83 key = self.chainPart['extra']
84
85 log.debug('testChain key = %s', key)
86 if key in stepDictionary:
87 steps=stepDictionary[key]
88 else:
89 raise RuntimeError("Chain configuration unknown for electron chain with key: " + key )
90
91 for step in steps:
92 chainstep = getattr(self, step)(flags)
93 chainSteps+=[chainstep]
94
95
96 myChain = self.buildChain(chainSteps)
97 return myChain
98
99
100
102 # --------------------
103 # define names of the steps and obtain the chainStep configuration
104 # --------------------
105
106 stepDictionary = {
107 #muons
108 'mv1step': ['Step_mu11'],
109 'mv1': ['Step_mu11', 'Step_mu21', 'Step_mu31', 'Step_mu41'],
110 'mv2': ['Step_mu11', 'Step_mu22', 'Step_mu31'],
111 'mEmpty1': ['Step_empty1', 'Step_mu21'], # empty step
112 #'mEmpty1': ['Step_empty1', 'Step_mu11'], # try to break 'Step_mu21'],
113 'mEmpty2': ['Step_mu11' ,'Step_empty2' ,'Step_mu31', 'Step_mu41'], # same as mv1 with empty step
114 'mEmpty3': ['Step_mu11' ,'Step_empty2' ,'Step_empty3', 'Step_mu41'], # empty step + emtpy sequence
115 'mv1dr' : ['Step_mu11Dr', 'Step_mu21', 'Step_mu31', 'Step_mu41'],
116 #egamma
117 'ev1': ['Step_em11', 'Step_em21', 'Step_em31'],
118 'ev2': ['Step_em11', 'Step_em22'],
119 'ev3': ['Step_em11', 'Step_em23'],
120 'gv1': ['Step_gam11'],
121 'ev1dr' : ['Step_em11Dr', 'Step_em21Dr', 'Step_em31']
122 }
123 return stepDictionary
124
125
126
127 def Step_mu11(self, flags):
128 return self.getStep(flags, "mu11",[ muCfg111 ])
129
130 def Step_mu21(self, flags):
131 return self.getStep(flags, "mu21",[ muCfg211 ])
132
133 def Step_mu11Dr(self, flags):
134 return self.getStep(flags, "mu11",[ muCfg111 ], comboTools=[dimuDrComboHypoTool])
135
136 def Step_mu21Dr(self, flags):
137 return self.getStep(flags, "mu21",[ muCfg211 ], comboTools=[dimuDrComboHypoTool])
138
139 def Step_mu22(self, flags):
140 return self.getStep(flags, "mu22",[ muCfg222 ])
141
142 def Step_mu31(self, flags):
143 return self.getStep(flags, "mu31",[ muCfg311 ])
144
145 def Step_mu32(self, flags):
146 return self.getStep(flags, "mu32",[ muCfg322 ])
147
148 def Step_mu41(self, flags):
149 return self.getStep(flags, "mu41",[ muCfg411 ])
150
151 def Step_empty1(self, flags):
152 return self.getEmptyStep('empty1')
153
154 def Step_empty2(self, flags):
155 return self.getEmptyStep('empty2')
156
157 def Step_empty3(self, flags):
158 seqName="EmptySequence"
159 emptySeqGen = createEmptyMenuSequenceCfg(flags, name=seqName)
160 return self.getStep(flags,'emptySeq', [emptySeqGen],name=seqName)
161
162 # Electrons
163
164 def Step_em11(self, flags):
165 return self.getStep(flags, "em11",[ elCfg111 ])
166
167 def Step_em11Dr(self, flags):
168 return self.getStep(flags, "em11",[ elCfg111 ], comboTools=[dimuDrComboHypoTool])
169
170 def Step_em21(self, flags):
171 return self.getStep(flags, "em21",[ elCfg211 ])
172
173 def Step_em21Dr(self, flags):
174 return self.getStep(flags, "em21",[ elCfg211 ], comboTools=[dimuDrComboHypoTool])
175
176 def Step_em22(self, flags):
177 return self.getStep(flags, "em22",[ elCfg222 ])
178
179 def Step_em23(self, flags):
180 return self.getStep(flags, "em23",[ elCfg223 ])
181
182 def Step_em31(self, flags):
183 return self.getStep(flags, "em31",[ elCfg311 ])
184
185 def Step_gam11(self, flags):
186 return self.getStep(flags, "gam11",[ gamCfg111 ])
187
muCfg(flags, step, reconame, hyponame)
gamCfg(flags, step, reconame, hyponame)
elCfg(flags, step, reconame, hyponame)