ATLAS Offline Software
CaloRingerAlgsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 from AthenaCommon.SystemOfUnits import GeV
6 from ROOT import CaloCell_ID
7 
8 def 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 
37 def 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 
72 def 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 
106 def 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 
138 def 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 
173 def 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 
207 def 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 
242 def 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 
277 def 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 
308 def 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 
324 def 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 
339 def 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', flags.Egamma.Keys.Output.Photons) # 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 
354 def 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 
365 def 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 
376 def 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 
387 def 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 
398 def 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 
409 def 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 
420 def 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 
432 def 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 
444 def 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 
455 def 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 
528 def 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 
556 if __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))
CaloRingerAlgsConfig.CaloRingerStripsElectronAlgsCfg
def CaloRingerStripsElectronAlgsCfg(flags, name="CaloRingerStripsElectronAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:376
CaloRingerAlgsConfig.CaloRingerJetsInputReaderCfg
def CaloRingerJetsInputReaderCfg(flags, name="CaloRingerJetsReader", **kwargs)
Definition: CaloRingerAlgsConfig.py:339
SystemOfUnits
CaloRingerAlgsConfig.CaloRingerElectronsInputReaderCfg
def CaloRingerElectronsInputReaderCfg(flags, name="CaloRingerElectronsReader", **kwargs)
Definition: CaloRingerAlgsConfig.py:308
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
CaloRingerAlgsConfig.CaloRingsPhotonBuilderCfg
def CaloRingsPhotonBuilderCfg(flags, name="CaloRingsPhotonBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:106
CaloRingerAlgsConfig.CaloRingsElectronBuilderCfg
def CaloRingsElectronBuilderCfg(flags, name="CaloRingsElectronBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:8
CaloRingerAlgsConfig.CaloRingsStripsPhotonBuilderCfg
def CaloRingsStripsPhotonBuilderCfg(flags, name="CaloRingsStripsPhotonBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:173
CaloRingerAlgsConfig.CaloRingerJetAlgsCfg
def CaloRingerJetAlgsCfg(flags, name="CaloRingerJetAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:444
CaloRingerAlgsConfig.CaloRingerSteeringCfg
def CaloRingerSteeringCfg(flags, name="CaloRingerSteering")
Definition: CaloRingerAlgsConfig.py:528
CaloRingerAlgsConfig.CaloRingerStripsPhotonAlgsCfg
def CaloRingerStripsPhotonAlgsCfg(flags, name="CaloRingerStripsAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:409
CaloRingerAlgsConfig.CaloRingerStripsJetAlgsCfg
def CaloRingerStripsJetAlgsCfg(flags, name="CaloRingerStripsAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:432
CaloRingerAlgsConfig.CaloRingsStripsJetBuilderCfg
def CaloRingsStripsJetBuilderCfg(flags, name="CaloRingsStripsJetBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:207
CaloRingerAlgsConfig.CaloRingerAsymJetAlgsCfg
def CaloRingerAsymJetAlgsCfg(flags, name="CaloAsymRingerAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:420
CaloRingerAlgsConfig.CaloRingerAsymPhotonAlgsCfg
def CaloRingerAsymPhotonAlgsCfg(flags, name="CaloAsymRingerAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:398
CaloRingerAlgsConfig.CaloRingsAsymPhotonBuilderCfg
def CaloRingsAsymPhotonBuilderCfg(flags, name="CaloRingsAsymPhotonBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:138
CaloRingerAlgsConfig.CaloRingsAsymJetBuilderCfg
def CaloRingsAsymJetBuilderCfg(flags, name="CaloRingsAsymJetBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:242
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
CaloRingerAlgsConfig.CaloRingerOutputCfg
def CaloRingerOutputCfg(flags, name="CaloRingerOutputList")
Definition: CaloRingerAlgsConfig.py:455
CaloRingerAlgsConfig.CaloRingsJetBuilderCfg
def CaloRingsJetBuilderCfg(flags, name="CaloRingsJetBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:277
CaloRingerAlgsConfig.CaloRingsStripsElectronBuilderCfg
def CaloRingsStripsElectronBuilderCfg(flags, name="CaloRingsStripsElectronBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:72
python.OutputStreamConfig.addToESD
def addToESD(flags, itemOrList, **kwargs)
Definition: OutputStreamConfig.py:135
CaloRingerAlgsConfig.CaloRingerAsymElectronAlgsCfg
def CaloRingerAsymElectronAlgsCfg(flags, name="CaloRingerAsymElectronAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:365
CaloRingerAlgsConfig.CaloRingerElectronAlgsCfg
def CaloRingerElectronAlgsCfg(flags, name="CaloRingerElectronAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:354
CaloRingerAlgsConfig.CaloRingsAsymElectronBuilderCfg
def CaloRingsAsymElectronBuilderCfg(flags, name="CaloRingsAsymElectronBuilder", **kwargs)
Definition: CaloRingerAlgsConfig.py:37
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
CaloRingerAlgsConfig.CaloRingerPhotonsInputReaderCfg
def CaloRingerPhotonsInputReaderCfg(flags, name="CaloRingerPhotonsReader", **kwargs)
Definition: CaloRingerAlgsConfig.py:324
python.OutputStreamConfig.addToAOD
def addToAOD(flags, itemOrList, **kwargs)
Definition: OutputStreamConfig.py:150
CaloRingerAlgsConfig.CaloRingerPhotonAlgsCfg
def CaloRingerPhotonAlgsCfg(flags, name="CaloRingerPhotonAlgorithm", **kwargs)
Definition: CaloRingerAlgsConfig.py:387