ATLAS Offline Software
Loading...
Searching...
No Matches
CaloRingerAlgsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaCommon.SystemOfUnits import GeV
6from ROOT import CaloCell_ID
7
8def CaloRingsElectronBuilderCfg(flags, name="CaloRingsElectronBuilder", **kwargs):
9 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
10 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681, 0.024543692606170,
11 0.024543692606170, 0.098174770424681, 0.098174770424681, 0.098174770424681])
12 kwargs.setdefault('NRings', [8, 64, 8, 8, 4, 4, 4])
13 kwargs.setdefault('CellMaxDEtaDist', .2)
14 kwargs.setdefault('CellMaxDPhiDist', .2)
15 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
16 CaloCell_ID.EMB1, CaloCell_ID.EME1,
17 CaloCell_ID.EMB2, CaloCell_ID.EME2,
18 CaloCell_ID.EMB3, CaloCell_ID.EME3,
19 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
20 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
21 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
22 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
23 CaloCell_ID.TileExt1,
24 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
25 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
26 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
27 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
28 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
29 kwargs.setdefault('CaloRingsContainerName', 'ElectronCaloRings')
30 kwargs.setdefault('RingSetContainerName', 'ElectronRingSets')
31 kwargs.setdefault('MinPartEnergy', flags.CaloRinger.minElectronEnergy*GeV)
32 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
33
34 tool = CompFactory.Ringer.CaloRingsBuilder(name, **kwargs)
35 return tool
36
37def CaloRingsAsymElectronBuilderCfg(flags, name="CaloRingsAsymElectronBuilder", **kwargs):
38 NRings = [8, 64, 8, 8, 4, 4, 4]
39 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
40 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681,
41 0.024543692606170, 0.024543692606170,
42 0.098174770424681, 0.098174770424681,
43 0.098174770424681])
44 kwargs.setdefault('NRings', [(rings-1)*4+1 for rings in NRings])
45 kwargs.setdefault('CellMaxDEtaDist', .2)
46 kwargs.setdefault('CellMaxDPhiDist', .2)
47 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
48 CaloCell_ID.EMB1, CaloCell_ID.EME1,
49 CaloCell_ID.EMB2, CaloCell_ID.EME2,
50 CaloCell_ID.EMB3, CaloCell_ID.EME3,
51 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
52 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
53 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
54 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
55 CaloCell_ID.TileExt1,
56 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
57 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
58 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
59 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
60 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
61 kwargs.setdefault('CaloRingsContainerName', 'ElectronCaloAsymRings')
62 kwargs.setdefault('RingSetContainerName', 'ElectronAsymRingSets')
63 kwargs.setdefault('MinPartEnergy',flags.CaloRinger.minElectronEnergy*GeV)
64 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
65 kwargs.setdefault('doEtaAxesDivision',True)
66 kwargs.setdefault('doPhiAxesDivision',True)
67
68 tool = CompFactory.Ringer.CaloAsymRingsBuilder(name, **kwargs)
69 return tool
70
71
72def CaloRingsStripsElectronBuilderCfg(flags, name="CaloRingsStripsElectronBuilder", **kwargs):
73 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
74 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681,
75 0.024543692606170, 0.024543692606170,
76 0.098174770424681, 0.098174770424681,
77 0.098174770424681])
78 kwargs.setdefault('NRings', [28, 252, 28, 14, 8, 8, 4])
79 kwargs.setdefault('Axis', 0)
80 kwargs.setdefault('CellMaxDEtaDist', .2)
81 kwargs.setdefault('CellMaxDPhiDist', .2)
82 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
83 CaloCell_ID.EMB1, CaloCell_ID.EME1,
84 CaloCell_ID.EMB2, CaloCell_ID.EME2,
85 CaloCell_ID.EMB3, CaloCell_ID.EME3,
86 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
87 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
88 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
89 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
90 CaloCell_ID.TileExt1,
91 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
92 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
93 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
94 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
95 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
96 kwargs.setdefault('CaloRingsContainerName', 'ElectronCaloStripsRings')
97 kwargs.setdefault('RingSetContainerName', 'ElectronStripsRingSets')
98 kwargs.setdefault('MinPartEnergy',flags.CaloRinger.minElectronEnergy*GeV)
99 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
100 kwargs.setdefault('doEtaAxesDivision',True)
101 kwargs.setdefault('doPhiAxesDivision',True)
102
103 tool = CompFactory.Ringer.CaloStripsRingsBuilder(name, **kwargs)
104 return tool
105
106def CaloRingsPhotonBuilderCfg(flags, name="CaloRingsPhotonBuilder", **kwargs):
107 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
108 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681,
109 0.024543692606170, 0.024543692606170,
110 0.098174770424681, 0.098174770424681,
111 0.098174770424681])
112 kwargs.setdefault('NRings', [8, 64, 8, 8, 4, 4, 4])
113 kwargs.setdefault('CellMaxDEtaDist', .2)
114 kwargs.setdefault('CellMaxDPhiDist', .2)
115 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
116 CaloCell_ID.EMB1, CaloCell_ID.EME1,
117 CaloCell_ID.EMB2, CaloCell_ID.EME2,
118 CaloCell_ID.EMB3, CaloCell_ID.EME3,
119 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
120 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
121 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
122 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
123 CaloCell_ID.TileExt1,
124 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
125 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
126 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
127 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
128 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
129 kwargs.setdefault('CaloRingsContainerName', 'PhotonCaloRings')
130 kwargs.setdefault('RingSetContainerName', 'PhotonRingSets')
131 kwargs.setdefault('MinPartEnergy', flags.CaloRinger.minPhotonEnergy*GeV)
132 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
133
134 tool = CompFactory.Ringer.CaloRingsBuilder(name, **kwargs)
135 return tool
136
137
138def CaloRingsAsymPhotonBuilderCfg(flags, name="CaloRingsAsymPhotonBuilder", **kwargs):
139 NRings = [8, 64, 8, 8, 4, 4, 4]
140 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
141 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681,
142 0.024543692606170, 0.024543692606170,
143 0.098174770424681, 0.098174770424681,
144 0.098174770424681])
145 kwargs.setdefault('NRings', [(rings-1)*4+1 for rings in NRings])
146 kwargs.setdefault('CellMaxDEtaDist', .2)
147 kwargs.setdefault('CellMaxDPhiDist', .2)
148 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
149 CaloCell_ID.EMB1, CaloCell_ID.EME1,
150 CaloCell_ID.EMB2, CaloCell_ID.EME2,
151 CaloCell_ID.EMB3, CaloCell_ID.EME3,
152 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
153 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
154 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
155 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
156 CaloCell_ID.TileExt1,
157 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
158 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
159 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
160 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
161 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
162 kwargs.setdefault('CaloRingsContainerName', 'PhotonCaloAsymRings')
163 kwargs.setdefault('RingSetContainerName', 'PhotonAsymRingSets')
164 kwargs.setdefault('MinPartEnergy', flags.CaloRinger.minPhotonEnergy*GeV)
165 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
166 kwargs.setdefault('doEtaAxesDivision',True)
167 kwargs.setdefault('doPhiAxesDivision',True)
168
169 tool = CompFactory.Ringer.CaloAsymRingsBuilder(name, **kwargs)
170 return tool
171
172
173def CaloRingsStripsPhotonBuilderCfg(flags, name="CaloRingsStripsPhotonBuilder", **kwargs):
174 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
175 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681,
176 0.024543692606170, 0.024543692606170,
177 0.098174770424681, 0.098174770424681,
178 0.098174770424681])
179 kwargs.setdefault('NRings', [28, 252, 28, 14, 8, 8, 4])
180 kwargs.setdefault('Axis', 0)
181 kwargs.setdefault('CellMaxDEtaDist', .2)
182 kwargs.setdefault('CellMaxDPhiDist', .2)
183 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
184 CaloCell_ID.EMB1, CaloCell_ID.EME1,
185 CaloCell_ID.EMB2, CaloCell_ID.EME2,
186 CaloCell_ID.EMB3, CaloCell_ID.EME3,
187 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
188 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
189 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
190 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
191 CaloCell_ID.TileExt1,
192 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
193 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
194 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
195 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
196 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
197 kwargs.setdefault('CaloRingsContainerName', 'PhotonCaloStripsRings')
198 kwargs.setdefault('RingSetContainerName', 'PhotonStripsRingSets')
199 kwargs.setdefault('MinPartEnergy', flags.CaloRinger.minPhotonEnergy*GeV)
200 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
201 kwargs.setdefault('doEtaAxesDivision',True)
202 kwargs.setdefault('doPhiAxesDivision',True)
203
204 tool = CompFactory.Ringer.CaloStripsRingsBuilder(name, **kwargs)
205 return tool
206
207def CaloRingsStripsJetBuilderCfg(flags, name="CaloRingsStripsJetBuilder", **kwargs):
208 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
209 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681,
210 0.024543692606170, 0.024543692606170,
211 0.098174770424681, 0.098174770424681,
212 0.098174770424681])
213 kwargs.setdefault('NRings', [28, 252, 28, 14, 8, 8, 4])
214 kwargs.setdefault('Axis', 0)
215 kwargs.setdefault('CellMaxDEtaDist', .2)
216 kwargs.setdefault('CellMaxDPhiDist', .2)
217 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
218 CaloCell_ID.EMB1, CaloCell_ID.EME1,
219 CaloCell_ID.EMB2, CaloCell_ID.EME2,
220 CaloCell_ID.EMB3, CaloCell_ID.EME3,
221 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
222 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
223 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
224 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
225 CaloCell_ID.TileExt1,
226 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
227 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
228 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
229 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
230 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
231 kwargs.setdefault('CaloRingsContainerName', 'JetCaloStripsRings')
232 kwargs.setdefault('RingSetContainerName', 'JetStripsRingSets')
233 kwargs.setdefault('MinPartEnergy',flags.CaloRinger.minJetEnergy*GeV)
234 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
235 kwargs.setdefault('doEtaAxesDivision',True)
236 kwargs.setdefault('doPhiAxesDivision',True)
237
238 tool = CompFactory.Ringer.CaloStripsRingsBuilder(name, **kwargs)
239 return tool
240
241
242def CaloRingsAsymJetBuilderCfg(flags, name="CaloRingsAsymJetBuilder", **kwargs):
243 NRings = [8, 64, 8, 8, 4, 4, 4]
244 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
245 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681,
246 0.024543692606170, 0.024543692606170,
247 0.098174770424681, 0.098174770424681,
248 0.098174770424681])
249 kwargs.setdefault('NRings', [(rings-1)*4+1 for rings in NRings])
250 kwargs.setdefault('CellMaxDEtaDist', .2)
251 kwargs.setdefault('CellMaxDPhiDist', .2)
252 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
253 CaloCell_ID.EMB1, CaloCell_ID.EME1,
254 CaloCell_ID.EMB2, CaloCell_ID.EME2,
255 CaloCell_ID.EMB3, CaloCell_ID.EME3,
256 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
257 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
258 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
259 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
260 CaloCell_ID.TileExt1,
261 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
262 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
263 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
264 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
265 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
266 kwargs.setdefault('CaloRingsContainerName', 'JetCaloAsymRings')
267 kwargs.setdefault('RingSetContainerName', 'JetAsymRingSets')
268 kwargs.setdefault('MinPartEnergy',flags.CaloRinger.minJetEnergy*GeV)
269 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
270 kwargs.setdefault('doEtaAxesDivision',True)
271 kwargs.setdefault('doPhiAxesDivision',True)
272
273 tool = CompFactory.Ringer.CaloAsymRingsBuilder(name, **kwargs)
274 return tool
275
276
277def CaloRingsJetBuilderCfg(flags, name="CaloRingsJetBuilder", **kwargs):
278 kwargs.setdefault('EtaWidth', [0.025, 0.003125, 0.025, 0.05, 0.1, 0.1, 0.2])
279 kwargs.setdefault('PhiWidth', [0.098174770424681, 0.098174770424681,
280 0.024543692606170, 0.024543692606170,
281 0.098174770424681, 0.098174770424681,
282 0.098174770424681])
283 kwargs.setdefault('NRings', [8, 64, 8, 8, 4, 4, 4])
284 kwargs.setdefault('CellMaxDEtaDist', .2)
285 kwargs.setdefault('CellMaxDPhiDist', .2)
286 kwargs.setdefault('Layers', [CaloCell_ID.PreSamplerB, CaloCell_ID.PreSamplerE,
287 CaloCell_ID.EMB1, CaloCell_ID.EME1,
288 CaloCell_ID.EMB2, CaloCell_ID.EME2,
289 CaloCell_ID.EMB3, CaloCell_ID.EME3,
290 CaloCell_ID.HEC0, CaloCell_ID.TileBar0,
291 CaloCell_ID.TileGap3, CaloCell_ID.TileExt0,
292 CaloCell_ID.HEC1, CaloCell_ID.HEC2,
293 CaloCell_ID.TileBar1, CaloCell_ID.TileGap1,
294 CaloCell_ID.TileExt1,
295 CaloCell_ID.HEC3, CaloCell_ID.TileBar2,
296 CaloCell_ID.TileGap2, CaloCell_ID.TileExt2])
297 kwargs.setdefault('RingSetNLayers', [2, 2, 2, 2, 4, 5, 4])
298 kwargs.setdefault('useShowerShapeBarycenter', flags.CaloRinger.useShowerShapeBarycenter)
299 kwargs.setdefault('CellsContainerName', flags.Egamma.Keys.Input.CaloCells)
300 kwargs.setdefault('CaloRingsContainerName', 'JetCaloRings')
301 kwargs.setdefault('RingSetContainerName', 'JetRingSets')
302 kwargs.setdefault('MinPartEnergy', flags.CaloRinger.minJetEnergy*GeV)
303 kwargs.setdefault('doTransverseEnergy',flags.CaloRinger.doTransverseEnergy)
304
305 tool = CompFactory.Ringer.CaloRingsBuilder(name, **kwargs)
306 return tool
307
308def CaloRingerElectronsInputReaderCfg(flags, name="CaloRingerElectronsReader", **kwargs):
309 if 'Asym' in name:
310 builderTool = CaloRingsAsymElectronBuilderCfg(flags)
311 elif 'Strips' in name:
312 builderTool = CaloRingsStripsElectronBuilderCfg(flags)
313 else:
314 builderTool = CaloRingsElectronBuilderCfg(flags)
315
316 kwargs.setdefault('crBuilder', builderTool)
317 kwargs.setdefault('inputKey', flags.Egamma.Keys.Output.Electrons)
318 kwargs.setdefault('builderAvailable', True)
319 inputReaderTool = CompFactory.Ringer.CaloRingerElectronsReader(name, **kwargs)
320
321 return inputReaderTool, builderTool
322
323
324def CaloRingerPhotonsInputReaderCfg(flags,name="CaloRingerPhotonsReader",**kwargs):
325 if 'Asym' in name:
326 builderTool = CaloRingsAsymPhotonBuilderCfg(flags)
327 elif 'Strips' in name:
328 builderTool = CaloRingsStripsPhotonBuilderCfg(flags)
329 else:
330 builderTool = CaloRingsPhotonBuilderCfg(flags)
331
332 kwargs.setdefault('crBuilder', builderTool)
333 kwargs.setdefault('inputKey', flags.Egamma.Keys.Output.Photons)
334 kwargs.setdefault('builderAvailable', True)
335 inputReaderTool = CompFactory.Ringer.CaloRingerPhotonsReader(name, **kwargs)
336
337 return inputReaderTool, builderTool
338
339def CaloRingerJetsInputReaderCfg(flags,name="CaloRingerJetsReader",**kwargs):
340 if 'Asym' in name:
341 builderTool = CaloRingsAsymJetBuilderCfg(flags)
342 elif 'Strips' in name:
343 builderTool = CaloRingsStripsJetBuilderCfg(flags)
344 else:
345 builderTool = CaloRingsJetBuilderCfg(flags)
346
347 kwargs.setdefault('crBuilder', builderTool)
348 kwargs.setdefault('inputKey', "AntiKt4EMTopoJets") # need to get the jet container name
349 kwargs.setdefault('builderAvailable', True)
350 inputReaderTool = CompFactory.Ringer.CaloRingerJetsReader(name, **kwargs)
351
352 return inputReaderTool, builderTool
353
354def CaloRingerElectronAlgsCfg(flags, name="CaloRingerElectronAlgorithm", **kwargs):
355 electronInputReaderTool, electronBuilderTool = CaloRingerElectronsInputReaderCfg(flags)
356 acc = ComponentAccumulator()
357 acc.addPublicTool(electronBuilderTool)
358 acc.addPublicTool(electronInputReaderTool)
359 kwargs.setdefault('inputReaderTools', [electronInputReaderTool])
360
361 CaloRingerAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloRingerElectronAlgorithm', **kwargs)
362 acc.addEventAlgo(CaloRingerAlgorithm)
363 return acc
364
365def CaloRingerAsymElectronAlgsCfg(flags, name="CaloRingerAsymElectronAlgorithm", **kwargs):
366 electronAsymInputReaderTool, electronAsymBuilderTool = CaloRingerElectronsInputReaderCfg(flags, name='CaloRingerAsymElectronAlgorithm')
367 acc = ComponentAccumulator()
368 acc.addPublicTool(electronAsymBuilderTool)
369 acc.addPublicTool(electronAsymInputReaderTool)
370 kwargs.setdefault('inputReaderTools', [electronAsymInputReaderTool])
371
372 CaloRingerAsymAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloRingerAsymAlgorithm', **kwargs)
373 acc.addEventAlgo(CaloRingerAsymAlgorithm)
374 return acc
375
376def CaloRingerStripsElectronAlgsCfg(flags, name="CaloRingerStripsElectronAlgorithm", **kwargs):
377 electronStripsInputReaderTool, electronStripsBuilderTool = CaloRingerElectronsInputReaderCfg(flags, name='CaloRingerStripsElectronReader')
378 acc = ComponentAccumulator()
379 acc.addPublicTool(electronStripsBuilderTool)
380 acc.addPublicTool(electronStripsInputReaderTool)
381 kwargs.setdefault('inputReaderTools', [electronStripsInputReaderTool])
382
383 CaloRingerStripsAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloRingerStripsElectronAlgorithm', **kwargs)
384 acc.addEventAlgo(CaloRingerStripsAlgorithm)
385 return acc
386
387def CaloRingerPhotonAlgsCfg(flags, name="CaloRingerPhotonAlgorithm", **kwargs):
388 photonInputReaderTool, photonBuilderTool = CaloRingerPhotonsInputReaderCfg(flags)
389 acc = ComponentAccumulator()
390 acc.addPublicTool(photonBuilderTool)
391 acc.addPublicTool(photonInputReaderTool)
392 kwargs.setdefault('inputReaderTools', [photonInputReaderTool])
393
394 CaloRingerAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloRingerPhotonAlgorithm', **kwargs)
395 acc.addEventAlgo(CaloRingerAlgorithm)
396 return acc
397
398def CaloRingerAsymPhotonAlgsCfg(flags, name="CaloAsymRingerAlgorithm", **kwargs):
399 photonAsymInputReaderTool, photonAsymBuilderTool = CaloRingerPhotonsInputReaderCfg(flags, name='CaloAsymRingerPhotonReader')
400 acc = ComponentAccumulator()
401 acc.addPublicTool(photonAsymBuilderTool)
402 acc.addPublicTool(photonAsymInputReaderTool)
403 kwargs.setdefault('inputReaderTools', [photonAsymInputReaderTool])
404
405 CaloAsymRingerAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloAsymRingerAlgorithm', **kwargs)
406 acc.addEventAlgo(CaloAsymRingerAlgorithm)
407 return acc
408
409def CaloRingerStripsPhotonAlgsCfg(flags, name="CaloRingerStripsAlgorithm", **kwargs):
410 photonStripsInputReaderTool, photonStripsBuilderTool = CaloRingerPhotonsInputReaderCfg(flags, name='CaloRingerStripsPhotonReader')
411 acc = ComponentAccumulator()
412 acc.addPublicTool(photonStripsBuilderTool)
413 acc.addPublicTool(photonStripsInputReaderTool)
414 kwargs.setdefault('inputReaderTools', [photonStripsInputReaderTool])
415
416 CaloRingerStripsAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloRingerStripsAlgorithm', **kwargs)
417 acc.addEventAlgo(CaloRingerStripsAlgorithm)
418 return acc
419
420def CaloRingerAsymJetAlgsCfg(flags, name="CaloAsymRingerAlgorithm", **kwargs):
421 jetAsymInputReaderTool, jetAsymBuilderTool = CaloRingerJetsInputReaderCfg(flags, name='CaloAsymRingerPhotonReader')
422 acc = ComponentAccumulator()
423 acc.addPublicTool(jetAsymBuilderTool)
424 acc.addPublicTool(jetAsymInputReaderTool)
425 kwargs.setdefault('inputReaderTools', [jetAsymInputReaderTool])
426
427 CaloAsymRingerAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloAsymRingerAlgorithm', **kwargs)
428 acc.addEventAlgo(CaloAsymRingerAlgorithm)
429 return acc
430
431
432def CaloRingerStripsJetAlgsCfg(flags, name="CaloRingerStripsAlgorithm", **kwargs):
433 jetStripsInputReaderTool, jetStripsBuilderTool = CaloRingerJetsInputReaderCfg(flags, name='CaloRingerStripsPhotonReader')
434 acc = ComponentAccumulator()
435 acc.addPublicTool(jetStripsBuilderTool)
436 acc.addPublicTool(jetStripsInputReaderTool)
437 kwargs.setdefault('inputReaderTools', [jetStripsInputReaderTool])
438
439 CaloRingerStripsAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloRingerStripsAlgorithm', **kwargs)
440 acc.addEventAlgo(CaloRingerStripsAlgorithm)
441 return acc
442
443
444def CaloRingerJetAlgsCfg(flags, name="CaloRingerJetAlgorithm", **kwargs):
445 jetInputReaderTool, jetBuilderTool = CaloRingerJetsInputReaderCfg(flags)
446 acc = ComponentAccumulator()
447 acc.addPublicTool(jetBuilderTool)
448 acc.addPublicTool(jetInputReaderTool)
449 kwargs.setdefault('inputReaderTools', [jetInputReaderTool])
450
451 CaloRingerAlgorithm = CompFactory.Ringer.CaloRingerAlgorithm(name='CaloRingerJetAlgorithm', **kwargs)
452 acc.addEventAlgo(CaloRingerAlgorithm)
453 return acc
454
455def CaloRingerOutputCfg(flags,name="CaloRingerOutputList"):
456 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD, addToESD
457 acc = ComponentAccumulator()
458
459 toOutput = []
460 if flags.CaloRinger.buildElectronRings:
461 toOutput +=[ 'xAOD::RingSetContainer#ElectronRingSets',
462 'xAOD::RingSetAuxContainer#ElectronRingSetsAux.',
463 'xAOD::CaloRingsContainer#ElectronCaloRings',
464 'xAOD::CaloRingsAuxContainer#ElectronCaloRingsAux.',
465 ]
466 if flags.CaloRinger.buildElectronAsymRings:
467 toOutput +=[ 'xAOD::RingSetContainer#ElectronAsymRingSets',
468 'xAOD::RingSetAuxContainer#ElectronAsymRingSetsAux.',
469 'xAOD::CaloRingsContainer#ElectronCaloAsymRings',
470 'xAOD::CaloRingsAuxContainer#ElectronCaloAsymRingsAux.',
471 ]
472 if flags.CaloRinger.buildElectronStripsRings:
473 toOutput +=[ 'xAOD::RingSetContainer#ElectronStripsRingSets',
474 'xAOD::RingSetAuxContainer#ElectronStripsRingSetsAux.',
475 'xAOD::CaloRingsContainer#ElectronCaloStripsRings',
476 'xAOD::CaloRingsAuxContainer#ElectronCaloStripsRingsAux.',
477 ]
478 if flags.CaloRinger.buildPhotonRings:
479 toOutput += [
480 'xAOD::RingSetContainer#PhotonRingSets',
481 'xAOD::RingSetAuxContainer#PhotonRingSetsAux.',
482 'xAOD::CaloRingsContainer#PhotonCaloRings',
483 'xAOD::CaloRingsAuxContainer#PhotonCaloRingsAux.'
484 ]
485 if flags.CaloRinger.buildPhotonAsymRings:
486 toOutput +=[
487 'xAOD::RingSetContainer#PhotonAsymRingSets',
488 'xAOD::RingSetAuxContainer#PhotonAsymRingSetsAux.',
489 'xAOD::CaloRingsContainer#PhotonCaloAsymRings',
490 'xAOD::CaloRingsAuxContainer#PhotonCaloAsymRingsAux.',
491 ]
492 if flags.CaloRinger.buildPhotonStripsRings:
493 toOutput +=[
494 'xAOD::RingSetContainer#PhotonStripsRingSets',
495 'xAOD::RingSetAuxContainer#PhotonStripsRingSetsAux.',
496 'xAOD::CaloRingsContainer#PhotonCaloStripsRings',
497 'xAOD::CaloRingsAuxContainer#PhotonCaloStripsRingsAux.',
498 ]
499 if flags.CaloRinger.buildJetRings:
500 toOutput += [
501 'xAOD::RingSetContainer#JetRingSets',
502 'xAOD::RingSetAuxContainer#JetRingSetsAux.',
503 'xAOD::CaloRingsContainer#JetCaloRings',
504 'xAOD::CaloRingsAuxContainer#JetCaloRingsAux.'
505 ]
506 if flags.CaloRinger.buildJetAsymRings:
507 toOutput +=[
508 'xAOD::RingSetContainer#JetAsymRingSets',
509 'xAOD::RingSetAuxContainer#JetAsymRingSetsAux.',
510 'xAOD::CaloRingsContainer#JetCaloAsymRings',
511 'xAOD::CaloRingsAuxContainer#JetCaloAsymRingsAux.',
512 ]
513 if flags.CaloRinger.buildJetStripsRings:
514 toOutput +=[
515 'xAOD::RingSetContainer#JetStripsRingSets',
516 'xAOD::RingSetAuxContainer#JetStripsRingSetsAux.',
517 'xAOD::CaloRingsContainer#JetCaloStripsRings',
518 'xAOD::CaloRingsAuxContainer#JetCaloStripsRingsAux.',
519 ]
520
521 if flags.Output.doWriteAOD:
522 acc.merge(addToAOD(flags, toOutput))
523 if flags.Output.doWriteESD:
524 acc.merge(addToESD(flags, toOutput))
525
526 return acc
527
528def CaloRingerSteeringCfg(flags,name="CaloRingerSteering"):
529 acc = ComponentAccumulator()
530
531 if flags.CaloRinger.buildElectronRings:
532 acc.merge(CaloRingerElectronAlgsCfg(flags))
533 if flags.CaloRinger.buildElectronAsymRings:
534 acc.merge(CaloRingerAsymElectronAlgsCfg(flags))
535 if flags.CaloRinger.buildElectronStripsRings:
536 acc.merge(CaloRingerStripsElectronAlgsCfg(flags))
537
538 if flags.CaloRinger.buildPhotonRings:
539 acc.merge(CaloRingerPhotonAlgsCfg(flags))
540 if flags.CaloRinger.buildPhotonAsymRings:
541 acc.merge(CaloRingerAsymPhotonAlgsCfg(flags))
542 if flags.CaloRinger.buildPhotonStripsRings:
543 acc.merge(CaloRingerStripsPhotonAlgsCfg(flags))
544
545 if flags.CaloRinger.buildJetRings:
546 acc.merge(CaloRingerJetAlgsCfg(flags))
547 if flags.CaloRinger.buildJetAsymRings:
548 acc.merge(CaloRingerAsymJetAlgsCfg(flags))
549 if flags.CaloRinger.buildJetStripsRings:
550 acc.merge(CaloRingerStripsJetAlgsCfg(flags))
551
552 acc.merge(CaloRingerOutputCfg(flags))
553 return acc
554
555
556if __name__ == '__main__':
557 from AthenaConfiguration.AllConfigFlags import initConfigFlags
558 from AthenaConfiguration.TestDefaults import defaultTestFiles
559 flags = initConfigFlags()
560 flags.Input.Files = defaultTestFiles.RDO_RUN2
561 flags.Output.doWriteAOD = True
562 flags.Output.ESDFileName = 'testing.ESD.root'
563 flags.lock()
564 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
565 cfg = MainServicesCfg(flags)
566 cfg.merge(CaloRingerSteeringCfg(flags))
CaloRingsPhotonBuilderCfg(flags, name="CaloRingsPhotonBuilder", **kwargs)
CaloRingerSteeringCfg(flags, name="CaloRingerSteering")
CaloRingerJetsInputReaderCfg(flags, name="CaloRingerJetsReader", **kwargs)
CaloRingerStripsElectronAlgsCfg(flags, name="CaloRingerStripsElectronAlgorithm", **kwargs)
CaloRingerStripsPhotonAlgsCfg(flags, name="CaloRingerStripsAlgorithm", **kwargs)
CaloRingerOutputCfg(flags, name="CaloRingerOutputList")
CaloRingerPhotonAlgsCfg(flags, name="CaloRingerPhotonAlgorithm", **kwargs)
CaloRingerAsymPhotonAlgsCfg(flags, name="CaloAsymRingerAlgorithm", **kwargs)
CaloRingsAsymElectronBuilderCfg(flags, name="CaloRingsAsymElectronBuilder", **kwargs)
CaloRingsElectronBuilderCfg(flags, name="CaloRingsElectronBuilder", **kwargs)
CaloRingerElectronsInputReaderCfg(flags, name="CaloRingerElectronsReader", **kwargs)
CaloRingsStripsPhotonBuilderCfg(flags, name="CaloRingsStripsPhotonBuilder", **kwargs)
CaloRingerStripsJetAlgsCfg(flags, name="CaloRingerStripsAlgorithm", **kwargs)
CaloRingsAsymPhotonBuilderCfg(flags, name="CaloRingsAsymPhotonBuilder", **kwargs)
CaloRingsJetBuilderCfg(flags, name="CaloRingsJetBuilder", **kwargs)
CaloRingerPhotonsInputReaderCfg(flags, name="CaloRingerPhotonsReader", **kwargs)
CaloRingerAsymElectronAlgsCfg(flags, name="CaloRingerAsymElectronAlgorithm", **kwargs)
CaloRingsStripsElectronBuilderCfg(flags, name="CaloRingsStripsElectronBuilder", **kwargs)
CaloRingerAsymJetAlgsCfg(flags, name="CaloAsymRingerAlgorithm", **kwargs)
CaloRingsAsymJetBuilderCfg(flags, name="CaloRingsAsymJetBuilder", **kwargs)
CaloRingerJetAlgsCfg(flags, name="CaloRingerJetAlgorithm", **kwargs)
CaloRingerElectronAlgsCfg(flags, name="CaloRingerElectronAlgorithm", **kwargs)
CaloRingsStripsJetBuilderCfg(flags, name="CaloRingsStripsJetBuilder", **kwargs)