ATLAS Offline Software
Loading...
Searching...
No Matches
HitAnalysisConfig.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
5
6
7def HitAnalysisOutputCfg(flags, output_name='SiHitAnalysis'):
8 from MuonConfig.MuonConfigUtils import setupHistSvcCfg
9 return setupHistSvcCfg(flags, outFile=flags.Output.HISTFileName, outStream=output_name)
10
11
12def BLMHitAnalysisCfg(flags, name='BLMHitAnalysis', **kwargs):
13 from PixelGeoModel.PixelGeoModelConfig import PixelSimulationGeometryCfg
14 acc = PixelSimulationGeometryCfg(flags)
15
16 kwargs.setdefault('CollectionName', 'BLM_Hits')
17 kwargs.setdefault('HistPath', '/SiHitAnalysis/')
18 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
19 acc.merge(HitAnalysisOutputCfg(flags))
20
21 return acc
22
23
24def BCMHitAnalysisCfg(flags, name='BCMHitAnalysis', **kwargs):
25 from PixelGeoModel.PixelGeoModelConfig import PixelSimulationGeometryCfg
26 acc = PixelSimulationGeometryCfg(flags)
27
28 kwargs.setdefault('CollectionName', 'BCM_Hits')
29 kwargs.setdefault('HistPath', '/SiHitAnalysis/')
30 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
31
32 acc.merge(HitAnalysisOutputCfg(flags))
33
34 return acc
35
36
37def PixelHitAnalysisCfg(flags, name='PixelHitAnalysis', **kwargs):
38 from PixelGeoModel.PixelGeoModelConfig import PixelSimulationGeometryCfg
39 acc = PixelSimulationGeometryCfg(flags)
40
41 kwargs.setdefault('CollectionName', 'PixelHits')
42 kwargs.setdefault('HistPath', '/SiHitAnalysis/')
43 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
44
45 acc.merge(HitAnalysisOutputCfg(flags))
46
47 return acc
48
49
50def SCTHitAnalysisCfg(flags, name='SCTHitAnalysis', **kwargs):
51 from SCT_GeoModel.SCT_GeoModelConfig import SCT_SimulationGeometryCfg
52 acc = SCT_SimulationGeometryCfg(flags)
53
54 kwargs.setdefault('CollectionName', 'SCT_Hits')
55 kwargs.setdefault('HistPath', '/SiHitAnalysis/')
56 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
57
58 acc.merge(HitAnalysisOutputCfg(flags))
59
60 return acc
61
62
63def TRTHitAnalysisCfg(flags, name='TRTHitAnalysis', **kwargs):
64 from TRT_GeoModel.TRT_GeoModelConfig import TRT_SimulationGeometryCfg
65 acc = TRT_SimulationGeometryCfg(flags)
66
67 kwargs.setdefault('HistPath', '/TRTHitAnalysis/')
68 acc.addEventAlgo(CompFactory.TRTHitAnalysis(name, **kwargs))
69
70 acc.merge(HitAnalysisOutputCfg(flags, output_name="TRTHitAnalysis"))
71
72 return acc
73
74
75def ITkPixelHitAnalysisCfg(flags, name='ITkPixelHitAnalysis', **kwargs):
76 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelSimulationGeometryCfg
77 acc = ITkPixelSimulationGeometryCfg(flags)
78
79 kwargs.setdefault('CollectionName', 'ITkPixelHits')
80 kwargs.setdefault('HistPath', '/SiHitAnalysis/histos/')
81 kwargs.setdefault('NtuplePath', '/SiHitAnalysis/ntuples/')
82 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
83
84 acc.merge(HitAnalysisOutputCfg(flags))
85
86 return acc
87
88
89def ITkStripHitAnalysisCfg(flags, name='ITkStripHitAnalysis', **kwargs):
90 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripSimulationGeometryCfg
91 acc = ITkStripSimulationGeometryCfg(flags)
92
93 kwargs.setdefault('CollectionName', 'ITkStripHits')
94 kwargs.setdefault('HistPath', '/SiHitAnalysis/histos/')
95 kwargs.setdefault('NtuplePath', '/SiHitAnalysis/ntuples/')
96 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
97
98 acc.merge(HitAnalysisOutputCfg(flags))
99
100 return acc
101
102
103def HGTD_HitAnalysisCfg(flags, name='HGTD_HitAnalysis', **kwargs):
104 if flags.HGTD.Geometry.useGeoModelXml:
105 from HGTD_GeoModelXml.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg
106 else:
107 from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg
108 acc = HGTD_SimulationGeometryCfg(flags)
109
110 kwargs.setdefault('CollectionName', 'HGTD_Hits')
111 kwargs.setdefault('HistPath', '/SiHitAnalysis/histos/')
112 kwargs.setdefault('NtuplePath', '/SiHitAnalysis/ntuples/')
113 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
114
115 acc.merge(HitAnalysisOutputCfg(flags))
116
117 return acc
118
119
120def PLR_HitAnalysisCfg(flags, name='PLR_HitAnalysis', **kwargs):
121 from PLRGeoModelXml.PLR_GeoModelConfig import PLR_GeometryCfg
122 acc = PLR_GeometryCfg(flags)
123
124 kwargs.setdefault('CollectionName', 'PLR_Hits')
125 kwargs.setdefault('HistPath', '/SiHitAnalysis/histos/')
126 kwargs.setdefault('NtuplePath', '/SiHitAnalysis/ntuples/')
127 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
128
129 acc.merge(HitAnalysisOutputCfg(flags))
130
131 return acc
132
133
134def BCMPrimeHitAnalysisCfg(flags, name='BCMPrimeHitAnalysis', **kwargs):
135 from BCMPrimeGeoModelXml.BCMPrimeGeoModelConfig import BCMPrimeGeometryCfg
136 acc = BCMPrimeGeometryCfg(flags)
137
138 kwargs.setdefault('CollectionName', 'BCMPrimeHits')
139 kwargs.setdefault('HistPath', '/SiHitAnalysis/histos/')
140 kwargs.setdefault('NtuplePath', '/SiHitAnalysis/ntuples/')
141 acc.addEventAlgo(CompFactory.SiHitAnalysis(name, **kwargs))
142
143 acc.merge(HitAnalysisOutputCfg(flags))
144
145 return acc
146
147
149 acc = ComponentAccumulator()
150
151 acc.merge(TruthHitAnalysisCfg(flags))
152
153 if flags.Detector.EnableITkPixel:
154 acc.merge(ITkPixelHitAnalysisCfg(flags))
155
156 if flags.Detector.EnableITkStrip:
157 acc.merge(ITkStripHitAnalysisCfg(flags))
158
159 if flags.Detector.EnableHGTD:
160 acc.merge(HGTD_HitAnalysisCfg(flags))
161
162 if flags.Detector.EnablePLR:
163 acc.merge(PLR_HitAnalysisCfg(flags))
164
165 if flags.Detector.EnableBCMPrime:
166 acc.merge(BCMPrimeHitAnalysisCfg(flags))
167
168 return acc
169
170
171# Calorimeter
172def CaloHitAnalysisCfg(flags, name='CaloHitAnalysis', **kwargs):
173 acc = ComponentAccumulator()
174
175 if flags.Detector.GeometryLAr:
176 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
177 acc.merge(LArGMCfg(flags))
178 acc.addCondAlgo(CompFactory.CaloAlignCondAlg(LArAlignmentStore="",CaloCellPositionShiftFolder=""))
179 kwargs.setdefault("UseLAr", flags.Detector.GeometryLAr)
180
181 if flags.Detector.GeometryTile:
182 from TileGeoModel.TileGMConfig import TileGMCfg
183 acc.merge(TileGMCfg(flags))
184 kwargs.setdefault("UseTile", flags.Detector.GeometryTile)
185
186 kwargs.setdefault('HistPath', f'/{name}/histos/Calo/')
187 kwargs.setdefault('NtupleFileName', f'/{name}/ntuples/')
188
189 acc.addEventAlgo(CompFactory.CaloHitAnalysis(name, **kwargs))
190 acc.merge(HitAnalysisOutputCfg(flags, output_name=name))
191 return acc
192
193
194# Muon System
195def RPCHitAnalysisCfg(flags, name='RPCHitAnalysis', **kwargs):
196 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
197 acc = MuonGeoModelCfg(flags)
198
199 kwargs.setdefault('HistPath', f'/{name}/')
200 acc.addEventAlgo(CompFactory.RPCHitAnalysis(name, **kwargs))
201 acc.merge(HitAnalysisOutputCfg(flags, output_name="RPCHitAnalysis"))
202
203 return acc
204
205
206def MDTHitAnalysisCfg(flags, name='MDTHitAnalysis', **kwargs):
207 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
208 acc = MuonGeoModelCfg(flags)
209
210 kwargs.setdefault('HistPath', f'/{name}/')
211 acc.addEventAlgo(CompFactory.MDTHitAnalysis(name, **kwargs))
212 acc.merge(HitAnalysisOutputCfg(flags, output_name="MDTHitAnalysis"))
213
214 return acc
215
216
217def CSCHitAnalysisCfg(flags, name='CSCHitAnalysis', **kwargs):
218 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
219 acc = MuonGeoModelCfg(flags)
220
221 kwargs.setdefault('HistPath', f'/{name}/')
222 acc.addEventAlgo(CompFactory.CSCHitAnalysis(name, **kwargs))
223 acc.merge(HitAnalysisOutputCfg(flags, output_name="CSCHitAnalysis"))
224
225 return acc
226
227
228def TGCHitAnalysisCfg(flags, name='TGCHitAnalysis', **kwargs):
229 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
230 acc = MuonGeoModelCfg(flags)
231
232 kwargs.setdefault('HistPath', f'/{name}/')
233 acc.addEventAlgo(CompFactory.TGCHitAnalysis(name, **kwargs))
234 acc.merge(HitAnalysisOutputCfg(flags, output_name="TGCHitAnalysis"))
235
236 return acc
237
238
239def MMHitAnalysisCfg(flags, name='MMHitAnalysis', **kwargs):
240 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
241 acc = MuonGeoModelCfg(flags)
242
243 kwargs.setdefault('HistPath', f'/{name}/')
244 acc.addEventAlgo(CompFactory.MMHitAnalysis(name, **kwargs))
245 acc.merge(HitAnalysisOutputCfg(flags, output_name="MMHitAnalysis"))
246
247 return acc
248
249def xMuonHitAnalysisCfg(flags, **kwargs):
250 result = ComponentAccumulator()
251 if not flags.Muon.usePhaseIIGeoSetup:
252 return result
253 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
254 result.merge(MuonGeoModelCfg(flags))
255 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
256 result.merge(ActsGeometryContextAlgCfg(flags))
257 result.addEventAlgo(CompFactory.MuonValR4.xMuonHitAnalysis(**kwargs))
258 histPath = kwargs["HistPath"]
259 result.merge(HitAnalysisOutputCfg(flags, output_name=histPath[ : histPath.find("/")]))
260 return result
261
262
263def sTGCHitAnalysisCfg(flags, name='sTGCHitAnalysis', **kwargs):
264 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
265 acc = MuonGeoModelCfg(flags)
266
267 kwargs.setdefault('HistPath', f'/{name}/')
268 acc.addEventAlgo(CompFactory.sTGCHitAnalysis(name, **kwargs))
269 acc.merge(HitAnalysisOutputCfg(flags, output_name="sTGCHitAnalysis"))
270
271 return acc
272
273
274# Forward
275def ALFAHitAnalysisCfg(flags, name='ALFAHitAnalysis', **kwargs):
276 acc = ComponentAccumulator()
277
278 kwargs.setdefault('HistPath', f'/{name}/')
279 acc.addEventAlgo(CompFactory.ALFAHitAnalysis(name, **kwargs))
280 acc.merge(HitAnalysisOutputCfg(flags, output_name="ALFAHitAnalysis"))
281
282 return acc
283
284
285def AFPHitAnalysisCfg(flags, name='AFPHitAnalysis', **kwargs):
286 acc = ComponentAccumulator()
287
288 kwargs.setdefault('HistPath', f'/{name}/')
289 acc.addEventAlgo(CompFactory.AFPHitAnalysis(name, **kwargs))
290 acc.merge(HitAnalysisOutputCfg(flags, output_name="AFPHitAnalysis"))
291
292 return acc
293
294
295def LucidHitAnalysisCfg(flags, name='LucidHitAnalysis', **kwargs):
296 acc = ComponentAccumulator()
297
298 kwargs.setdefault('HistPath', f'/{name}/')
299 acc.addEventAlgo(CompFactory.LucidHitAnalysis(name, **kwargs))
300 acc.merge(HitAnalysisOutputCfg(flags, output_name="LucidHitAnalysis"))
301
302 return acc
303
304
305def ZDCHitAnalysisCfg(flags, name='ZDCHitAnalysis', **kwargs):
306 acc = ComponentAccumulator()
307
308 kwargs.setdefault('HistPath', f'/{name}/')
309 acc.addEventAlgo(CompFactory.ZDCHitAnalysis(name, **kwargs))
310 acc.merge(HitAnalysisOutputCfg(flags, output_name="ZDCHitAnalysis"))
311
312 return acc
313
314
315#Truth
316def TrackRecordAnalysisCfg(flags, name='TrackRecordAnalysis', **kwargs):
317 acc = ComponentAccumulator()
318 kwargs.setdefault('HistPath', f'/{name}/histos/TrackRecord/')
319 kwargs.setdefault('NtupleFileName', f'/{name}/ntuples/')
320 acc.addEventAlgo(CompFactory.TrackRecordAnalysis(name, **kwargs))
321 acc.merge(HitAnalysisOutputCfg(flags, output_name="TrackRecordAnalysis"))
322
323 return acc
324
325
326def TruthHitAnalysisCfg(flags, name='TruthHitAnalysis', **kwargs):
327 acc = ComponentAccumulator()
328
329 kwargs.setdefault('HistPath', f'/{name}/histos/TruthHits/')
330 kwargs.setdefault('NtupleFileName', f'/{name}/ntuples/')
331 acc.addEventAlgo(CompFactory.TruthHitAnalysis(name, **kwargs))
332 acc.merge(HitAnalysisOutputCfg(flags, output_name="TruthHitAnalysis"))
333
334 return acc
ALFAHitAnalysisCfg(flags, name='ALFAHitAnalysis', **kwargs)
PLR_HitAnalysisCfg(flags, name='PLR_HitAnalysis', **kwargs)
TrackRecordAnalysisCfg(flags, name='TrackRecordAnalysis', **kwargs)
TruthHitAnalysisCfg(flags, name='TruthHitAnalysis', **kwargs)
RPCHitAnalysisCfg(flags, name='RPCHitAnalysis', **kwargs)
BCMHitAnalysisCfg(flags, name='BCMHitAnalysis', **kwargs)
xMuonHitAnalysisCfg(flags, **kwargs)
HitAnalysisOutputCfg(flags, output_name='SiHitAnalysis')
sTGCHitAnalysisCfg(flags, name='sTGCHitAnalysis', **kwargs)
BCMPrimeHitAnalysisCfg(flags, name='BCMPrimeHitAnalysis', **kwargs)
SCTHitAnalysisCfg(flags, name='SCTHitAnalysis', **kwargs)
CaloHitAnalysisCfg(flags, name='CaloHitAnalysis', **kwargs)
ZDCHitAnalysisCfg(flags, name='ZDCHitAnalysis', **kwargs)
TRTHitAnalysisCfg(flags, name='TRTHitAnalysis', **kwargs)
MMHitAnalysisCfg(flags, name='MMHitAnalysis', **kwargs)
TGCHitAnalysisCfg(flags, name='TGCHitAnalysis', **kwargs)
PixelHitAnalysisCfg(flags, name='PixelHitAnalysis', **kwargs)
MDTHitAnalysisCfg(flags, name='MDTHitAnalysis', **kwargs)
HGTD_HitAnalysisCfg(flags, name='HGTD_HitAnalysis', **kwargs)
CSCHitAnalysisCfg(flags, name='CSCHitAnalysis', **kwargs)
LucidHitAnalysisCfg(flags, name='LucidHitAnalysis', **kwargs)
ITkPixelHitAnalysisCfg(flags, name='ITkPixelHitAnalysis', **kwargs)
ITkStripHitAnalysisCfg(flags, name='ITkStripHitAnalysis', **kwargs)
AFPHitAnalysisCfg(flags, name='AFPHitAnalysis', **kwargs)
BLMHitAnalysisCfg(flags, name='BLMHitAnalysis', **kwargs)