ATLAS Offline Software
RDOAnalysisConfig.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 AthenaConfiguration.Enums import ProductionStep
6 
7 
8 def RDOAnalysisOutputCfg(flags, output_name="RDOAnalysis"):
9  from MuonConfig.MuonConfigUtils import setupHistSvcCfg
10  return setupHistSvcCfg(flags, outFile =flags.Output.HISTFileName, outStream = output_name)
11 
12 
13 def EventInfoRDOAnalysisCfg(flags, name="EventInfoRDOAnalysis", **kwargs):
14  result = ComponentAccumulator()
15 
16  kwargs.setdefault("NtuplePath", "/RDOAnalysis/ntuples/")
17  kwargs.setdefault("HistPath", "/RDOAnalysis/histos/")
18  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
19  kwargs.setdefault("EventInfo", f"{flags.Overlay.BkgPrefix}EventInfo")
20 
21  result.addEventAlgo(CompFactory.EventInfoRDOAnalysis(name, **kwargs))
22 
23  result.merge(RDOAnalysisOutputCfg(flags))
24 
25  return result
26 
27 
28 def BCM_RDOAnalysisCfg(flags, name="BCM_RDOAnalysis", **kwargs):
29  from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
30  result = PixelReadoutGeometryCfg(flags)
31 
32  kwargs.setdefault("NtupleFileName", "/RDOAnalysis")
33  kwargs.setdefault("NtupleDirectoryName", "/ntuples/")
34  kwargs.setdefault("NtupleTreeName", "BCM")
35  kwargs.setdefault("HistPath", "/RDOAnalysis/BCM/")
36  prefix=''
37  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
38  prefix=flags.Overlay.BkgPrefix
39  kwargs.setdefault("InputKey", f"{prefix}BCM_RDOs")
40  kwargs.setdefault("InputTruthKey", f"{prefix}BCM_SDO_Map")
41 
42  result.addEventAlgo(CompFactory.BCM_RDOAnalysis(name, **kwargs))
43 
44  result.merge(RDOAnalysisOutputCfg(flags))
45 
46  return result
47 
48 
49 def PixelRDOAnalysisCfg(flags, name="PixelRDOAnalysis", **kwargs):
50  from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
51  result = PixelReadoutGeometryCfg(flags)
52 
53  kwargs.setdefault("NtupleFileName", "/RDOAnalysis")
54  kwargs.setdefault("NtupleDirectoryName", "/ntuples/")
55  kwargs.setdefault("NtupleTreeName", "Pixel")
56  kwargs.setdefault("HistPath", "/RDOAnalysis/Pixel/")
57  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
58  kwargs.setdefault("InputKey", f"{flags.Overlay.BkgPrefix}PixelRDOs")
59  kwargs.setdefault("InputTruthKey", f"{flags.Overlay.BkgPrefix}PixelSDO_Map")
60  kwargs.setdefault("InputMcEventCollectionKey", f"{flags.Overlay.BkgPrefix}TruthEvent")
61  else:
62  kwargs.setdefault("InputKey", "PixelRDOs")
63  kwargs.setdefault("InputTruthKey", "PixelSDO_Map")
64  kwargs.setdefault("InputMcEventCollectionKey", "TruthEvent")
65 
66  result.addEventAlgo(CompFactory.PixelRDOAnalysis(name, **kwargs))
67 
68  result.merge(RDOAnalysisOutputCfg(flags))
69 
70  return result
71 
72 
73 def SCT_RDOAnalysisCfg(flags, name="SCT_RDOAnalysis", **kwargs):
74  from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
75  result = SCT_ReadoutGeometryCfg(flags)
76 
77  kwargs.setdefault("NtupleFileName", "/RDOAnalysis")
78  kwargs.setdefault("NtupleDirectoryName", "/ntuples/")
79  kwargs.setdefault("NtupleTreeName", "SCT")
80  kwargs.setdefault("HistPath", "/RDOAnalysis/SCT/")
81  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
82  kwargs.setdefault("InputKey", f"{flags.Overlay.BkgPrefix}SCT_RDOs")
83  kwargs.setdefault("InputTruthKey", f"{flags.Overlay.BkgPrefix}SCT_SDO_Map")
84  kwargs.setdefault("InputMcEventCollectionKey", f"{flags.Overlay.BkgPrefix}TruthEvent")
85  else:
86  kwargs.setdefault("InputKey", "SCT_RDOs")
87  kwargs.setdefault("InputTruthKey", "SCT_SDO_Map")
88  kwargs.setdefault("InputMcEventCollectionKey", "TruthEvent")
89 
90  result.addEventAlgo(CompFactory.SCT_RDOAnalysis(name, **kwargs))
91 
92  result.merge(RDOAnalysisOutputCfg(flags))
93 
94  return result
95 
96 
97 def TRT_RDOAnalysisCfg(flags, name="TRT_RDOAnalysis", **kwargs):
98  from TRT_GeoModel.TRT_GeoModelConfig import TRT_ReadoutGeometryCfg
99  result = TRT_ReadoutGeometryCfg(flags)
100 
101  kwargs.setdefault("NtupleFileName", "/RDOAnalysis")
102  kwargs.setdefault("NtupleDirectoryName", "/ntuples/")
103  kwargs.setdefault("NtupleTreeName", "TRT")
104  kwargs.setdefault("HistPath", "/RDOAnalysis/TRT/")
105  prefix=''
106  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
107  prefix=flags.Overlay.BkgPrefix
108  kwargs.setdefault("InputKey", f"{prefix}TRT_RDOs")
109  kwargs.setdefault("InputTruthKey", f"{prefix}TRT_SDO_Map")
110 
111  result.addEventAlgo(CompFactory.TRT_RDOAnalysis(name, **kwargs))
112 
113  result.merge(RDOAnalysisOutputCfg(flags))
114 
115  return result
116 
117 
118 def ITkPixelRDOAnalysisCfg(flags, name="ITkPixelRDOAnalysis", **kwargs):
119  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
120  result = ITkPixelReadoutGeometryCfg(flags)
121 
122  kwargs.setdefault("NtuplePath", "/RDOAnalysis/ntuples/")
123  kwargs.setdefault("HistPath", "/RDOAnalysis/ITkPixel/")
124  kwargs.setdefault("SharedHistPath", "/RDOAnalysis/histos/")
125  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
126  kwargs.setdefault("CollectionName", f"{flags.Overlay.BkgPrefix}ITkPixelRDOs")
127  kwargs.setdefault("SDOCollectionName", f"{flags.Overlay.BkgPrefix}ITkPixelSDO_Map")
128  kwargs.setdefault("McEventCollectionName", f"{flags.Overlay.BkgPrefix}TruthEvent")
129  else:
130  kwargs.setdefault("CollectionName", "ITkPixelRDOs")
131  kwargs.setdefault("SDOCollectionName", "ITkPixelSDO_Map")
132  kwargs.setdefault("McEventCollectionName", "TruthEvent")
133 
134  result.addEventAlgo(CompFactory.ITk.PixelRDOAnalysis(name, **kwargs))
135 
136  result.merge(RDOAnalysisOutputCfg(flags))
137 
138  return result
139 
140 
141 def ITkStripRDOAnalysisCfg(flags, name="ITkStripRDOAnalysis", **kwargs):
142  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
143  result = ITkStripReadoutGeometryCfg(flags)
144 
145  kwargs.setdefault("NtuplePath", "/RDOAnalysis/ntuples/")
146  kwargs.setdefault("HistPath", "/RDOAnalysis/ITkStrip/")
147  kwargs.setdefault("SharedHistPath", "/RDOAnalysis/histos/")
148  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
149  kwargs.setdefault("CollectionName", f"{flags.Overlay.BkgPrefix}ITkStripRDOs")
150  kwargs.setdefault("SDOCollectionName", f"{flags.Overlay.BkgPrefix}ITkStripSDO_Map")
151  kwargs.setdefault("McEventCollectionName", f"{flags.Overlay.BkgPrefix}TruthEvent")
152  else:
153  kwargs.setdefault("CollectionName", "ITkStripRDOs")
154  kwargs.setdefault("SDOCollectionName", "ITkStripSDO_Map")
155  kwargs.setdefault("McEventCollectionName", "TruthEvent")
156 
157  result.addEventAlgo(CompFactory.ITk.StripRDOAnalysis(name, **kwargs))
158 
159  result.merge(RDOAnalysisOutputCfg(flags))
160 
161  return result
162 
163 
164 def HGTD_RDOAnalysisCfg(flags, name="HGTD_RDOAnalysis", **kwargs):
165  from HGTD_GeoModelXml.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg
166  result = HGTD_ReadoutGeometryCfg(flags)
167 
168  kwargs.setdefault("NtuplePath", "/RDOAnalysis/ntuples/")
169  kwargs.setdefault("HistPath", "/RDOAnalysis/HGTD/")
170  kwargs.setdefault("SharedHistPath", "/RDOAnalysis/histos/")
171  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
172  kwargs.setdefault("CollectionName", f"{flags.Overlay.BkgPrefix}HGTD_RDOs")
173  kwargs.setdefault("SDOCollectionName", f"{flags.Overlay.BkgPrefix}HGTD_SDO_Map")
174  kwargs.setdefault("McEventCollectionName", f"{flags.Overlay.BkgPrefix}TruthEvent")
175  else:
176  kwargs.setdefault("CollectionName", "HGTD_RDOs")
177  kwargs.setdefault("SDOCollectionName", "HGTD_SDO_Map")
178  kwargs.setdefault("McEventCollectionName", "TruthEvent")
179 
180  result.addEventAlgo(CompFactory.HGTD_RDOAnalysis(name, **kwargs))
181 
182  result.merge(RDOAnalysisOutputCfg(flags))
183 
184  return result
185 
186 
187 def PLR_RDOAnalysisCfg(flags, name="PLR_RDOAnalysis", **kwargs):
188  from PLRGeoModelXml.PLR_GeoModelConfig import PLR_ReadoutGeometryCfg
189  result = PLR_ReadoutGeometryCfg(flags)
190 
191  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
192  kwargs.setdefault("CollectionName", f"{flags.Overlay.BkgPrefix}PLR_RDOs")
193  kwargs.setdefault("SDOCollectionName", f"{flags.Overlay.BkgPrefix}PLR_SDO_Map")
194  kwargs.setdefault("McEventCollectionName", f"{flags.Overlay.BkgPrefix}TruthEvent")
195  else:
196  kwargs.setdefault("CollectionName", "PLR_RDOs")
197  kwargs.setdefault("SDOCollectionName", "PLR_SDO_Map")
198  kwargs.setdefault("McEventCollectionName", "TruthEvent")
199  kwargs.setdefault("HistPath", "/RDOAnalysis/PLR/")
200  kwargs.setdefault("SharedHistPath", "/RDOAnalysis/histos/")
201  kwargs.setdefault("NtuplePath", "/RDOAnalysis/ntuples/")
202  kwargs.setdefault("NtupleName", "PLR")
203  kwargs.setdefault("DetectorName", "PLR")
204  kwargs.setdefault("PixelIDName", "PLR_ID")
205 
206  result.addEventAlgo(CompFactory.ITk.PixelRDOAnalysis(name, **kwargs))
207 
208  result.merge(RDOAnalysisOutputCfg(flags))
209 
210  return result
211 
212 
213 def RDOAnalysisCfg(flags):
214  acc = ComponentAccumulator()
215 
216  acc.merge(EventInfoRDOAnalysisCfg(flags))
217 
218  if flags.Detector.EnablePixel:
219  acc.merge(PixelRDOAnalysisCfg(flags))
220 
221  if flags.Detector.EnableSCT:
222  acc.merge(SCT_RDOAnalysisCfg(flags))
223 
224  if flags.Detector.EnableTRT:
225  acc.merge(TRT_RDOAnalysisCfg(flags))
226 
227  if flags.Detector.EnableLAr:
228  acc.merge(LArRDOAnalysisCfg(flags))
229 
230  if flags.Detector.EnableTile:
231  acc.merge(TileRDOAnalysisCfg(flags))
232 
233  if flags.Detector.EnableMDT:
234  from MuonConfig.MuonByteStreamCnvTestConfig import MdtRdoToMdtDigitCfg
235 
236  if "MDTCSM" in flags.Input.Collections:
237  acc.merge(MdtRdoToMdtDigitCfg(flags))
238  elif f"{flags.Overlay.BkgPrefix}MDTCSM" in flags.Input.Collections:
239  acc.merge(MdtRdoToMdtDigitCfg(flags, MdtRdoContainer =f"{flags.Overlay.BkgPrefix}MDTCSM",
240  MdtDigitContainer=f"{flags.Overlay.BkgPrefix}MDT_DIGITS" ))
241 
242  acc.merge(MdtRDOAnalysisCfg(flags))
243 
244  if flags.Detector.EnableRPC:
245  if "RPCPAD" in flags.Input.Collections or f"{flags.Overlay.BkgPrefix}RPCPAD" in flags.Input.Collections:
246  from MuonConfig.MuonByteStreamCnvTestConfig import RpcRdoToRpcDigitCfg
247  acc.merge(RpcRdoToRpcDigitCfg(flags))
248  acc.merge(RpcRDOAnalysisCfg(flags))
249 
250  if flags.Detector.EnableTGC:
251  from MuonConfig.MuonByteStreamCnvTestConfig import TgcRdoToTgcDigitCfg
252  if "TGCRDO" in flags.Input.Collections:
253  acc.merge(TgcRdoToTgcDigitCfg(flags))
254  elif f"{flags.Overlay.BkgPrefix}TGCRDO" in flags.Input.Collections:
255  acc.merge(TgcRdoToTgcDigitCfg(flags,TgcRdoContainer = f"{flags.Overlay.BkgPrefix}TGCRDO",
256  TgcDigitContainer=f"{flags.Overlay.BkgPrefix}TGC_DIGITS"))
257  acc.merge(TgcRDOAnalysisCfg(flags))
258 
259  if flags.Detector.EnablesTGC:
260  from MuonConfig.MuonByteStreamCnvTestConfig import STGC_RdoToDigitCfg
261  if "sTGCRDO" in flags.Input.Collections:
262  acc.merge(STGC_RdoToDigitCfg(flags))
263  elif f"{flags.Overlay.BkgPrefix}sTGCRDO" in flags.Input.Collections:
264  acc.merge(STGC_RdoToDigitCfg(flags,
265  sTgcRdoContainer=f"{flags.Overlay.BkgPrefix}sTGCRDO",
266  sTgcDigitContainer=f"{flags.Overlay.BkgPrefix}sTGC_DIGITS"))
267 
268 
269  if flags.Detector.EnableMM:
270  from MuonConfig.MuonByteStreamCnvTestConfig import MM_RdoToDigitCfg
271  if "MMRDO" in flags.Input.Collections:
272  acc.merge(MM_RdoToDigitCfg(flags))
273  elif f"{flags.Overlay.BkgPrefix}MMRDO" in flags.Input.Collections:
274  acc.merge(MM_RdoToDigitCfg(flags,MmRdoContainer=f"{flags.Overlay.BkgPrefix}MMRDO",
275  MmDigitContainer=f"{flags.Overlay.BkgPrefix}MM_DIGITS"))
276 
277 
278  if flags.Detector.EnableMuon:
279  if not flags.Muon.usePhaseIIGeoSetup:
280  from MuonPRDTest.HitValAlgDigi import HitValAlgDigiCfg
281  acc.merge(HitValAlgDigiCfg(flags, outFile=flags.Output.HISTFileName))
282  else:
283  from MuonPRDTestR4.MuonHitTestConfig import MuonDigiTestCfg, MuonPileUpTestCfg
284  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
285  acc.merge(MuonPileUpTestCfg(flags, outFile=flags.Output.HISTFileName))
286  else:
287  acc.merge(MuonDigiTestCfg(flags, outFile=flags.Output.HISTFileName))
288 
289  if flags.Detector.EnableITkPixel:
290  acc.merge(ITkPixelRDOAnalysisCfg(flags))
291 
292  if flags.Detector.EnableITkStrip:
293  acc.merge(ITkStripRDOAnalysisCfg(flags))
294 
295  if flags.Detector.EnableHGTD:
296  acc.merge(HGTD_RDOAnalysisCfg(flags))
297 
298  if flags.Detector.EnablePLR:
299  acc.merge(PLR_RDOAnalysisCfg(flags))
300 
301  return acc
302 
303 
304 def LArRDOAnalysisCfg(flags, name="LArRDOAnalysis", **kwargs):
305  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
306  result = LArGMCfg(flags)
307 
308  kwargs.setdefault("NtupleFileName", "/RDOAnalysis")
309  kwargs.setdefault("NtupleDirectoryName", "/ntuples/")
310  kwargs.setdefault("NtupleTreeName", "LAr")
311  kwargs.setdefault("HistPath", "/RDOAnalysis/LAr/")
312  prefix=''
313  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
314  kwargs.setdefault("PreSampling", True)
315  prefix=flags.Overlay.BkgPrefix
316  kwargs.setdefault("InputRawChannelKey", '') # Not in presampled RDO files
317  kwargs.setdefault("InputTTL1HADKey", '') # Not in presampled RDO files
318  kwargs.setdefault("InputTTL1EMKey", '') # Not in presampled RDO files
319  kwargs.setdefault("InputRawChannelKey", "LArRawChannels")
320  kwargs.setdefault("InputTTL1HADKey", "LArTTL1HAD")
321  kwargs.setdefault("InputTTL1EMKey", "LArTTL1EM")
322  if flags.Digitization.AddCaloDigiThinned or \
323  f"{prefix}LArDigitContainer_MC_Thinned" in flags.Input.Collections or \
324  flags.Common.ProductionStep is ProductionStep.PileUpPresampling or \
325  flags.Common.ProductionStep is ProductionStep.Digitization: \
326 
327  kwargs.setdefault("InputDigitKey", f"{prefix}LArDigitContainer_MC_Thinned")
328  else:
329  kwargs.setdefault("InputDigitKey", "")
330 
331  result.addEventAlgo(CompFactory.LArRDOAnalysis(name, **kwargs))
332 
333  result.merge(RDOAnalysisOutputCfg(flags))
334 
335  return result
336 
337 
338 def TileRDOAnalysisCfg(flags, name="TileRDOAnalysis", **kwargs):
339  from TileGeoModel.TileGMConfig import TileGMCfg
340  result = TileGMCfg(flags)
341  from TileConditions.TileCablingSvcConfig import TileCablingSvcCfg
342  result.merge(TileCablingSvcCfg(flags))
343 
344  kwargs.setdefault("NtupleFileName", "/RDOAnalysis")
345  kwargs.setdefault("NtupleDirectoryName", "/ntuples/")
346  kwargs.setdefault("NtupleTreeName", "Tile")
347  kwargs.setdefault("HistPath", "/RDOAnalysis/Tile/")
348  prefix=''
349  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
350  kwargs.setdefault("PreSampling", True)
351  prefix=flags.Overlay.BkgPrefix
352  kwargs.setdefault("InputRawChKey", '') # Not in presampled RDO files
353  kwargs.setdefault("InputMuRcvRawChKey", '') # Not in presampled RDO files
354  kwargs.setdefault("InputMuRcvKey", '') # Not in presampled RDO files
355  kwargs.setdefault("InputMBTS_TTL1Key", '') # Not in presampled RDO files
356  kwargs.setdefault("InputTileTTL1Key", '') # Not in presampled RDO files
357  kwargs.setdefault("InputL2Key", '') # Not in presampled RDO files
358  kwargs.setdefault("InputRawChKey", 'TileRawChannelCnt')
359  kwargs.setdefault("InputMuRcvRawChKey", 'MuRcvRawChCnt')
360  kwargs.setdefault("InputMuRcvKey", 'TileMuRcvCnt')
361  if flags.Detector.EnableMBTS:
362  kwargs.setdefault("InputMBTS_TTL1Key", 'TileTTL1MBTS')
363  else:
364  kwargs.setdefault("InputMBTS_TTL1Key", "")
365  kwargs.setdefault("InputTileTTL1Key", 'TileTTL1Cnt')
366  kwargs.setdefault("InputL2Key", 'TileL2Cnt')
367  kwargs.setdefault("InputDigitsMuRcvKey", f'{prefix}MuRcvDigitsCnt')
368  if f"{prefix}TileDigitsCnt" in flags.Input.Collections:
369  kwargs.setdefault("InputDigitsFltKey", f"{prefix}TileDigitsCnt")
370  else:
371  kwargs.setdefault("InputDigitsFltKey", "TileDigitsFlt")
372 
373  result.addEventAlgo(CompFactory.TileRDOAnalysis(name, **kwargs))
374 
375  result.merge(RDOAnalysisOutputCfg(flags))
376 
377  return result
378 
379 
380 def CSC_RDOAnalysisCfg(flags, name="CSC_RDOAnalysis", **kwargs):
381  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
382  result = MuonGeoModelCfg(flags)
383 
384  kwargs.setdefault("NtupleFileName", "/RDOAnalysis")
385  kwargs.setdefault("NtupleDirectoryName", "/ntuples/")
386  kwargs.setdefault("NtupleTreeName", "CSC")
387  kwargs.setdefault("HistPath", "/RDOAnalysis/CSC/")
388  prefix=''
389  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
390  prefix=flags.Overlay.BkgPrefix
391  kwargs.setdefault("InputKey", f"{prefix}CSCRDO")
392  kwargs.setdefault("InputTruthKey", f"{prefix}CSC_SDO")
393 
394  result.addEventAlgo(CompFactory.CSC_RDOAnalysis(name, **kwargs))
395 
396  result.merge(RDOAnalysisOutputCfg(flags))
397 
398  return result
399 
400 def MuonSDOAnalyisCfg(flags, **kwargs):
401  if flags.Muon.usePhaseIIGeoSetup:
402  from HitAnalysis.HitAnalysisConfig import xMuonHitAnalysisCfg
403  return xMuonHitAnalysisCfg(flags, **kwargs)
404  result = ComponentAccumulator()
405  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
406  result.merge(MuonGeoModelCfg(flags))
407  result.addEventAlgo(CompFactory.MuonVal.MuonSDOAnalysis(**kwargs))
408  histPath = kwargs["HistPath"]
409  result.merge(RDOAnalysisOutputCfg(flags, output_name=histPath[ : histPath.rfind("/")]))
410  return result
411 
412 def MdtRDOAnalysisCfg(flags, name="MdtRDOAnalysis", **kwargs):
413  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
414  result = MuonGeoModelCfg(flags)
415  kwargs.setdefault("HistPath", "RDOAnalysis/MDT")
416  prefix= flags.Overlay.BkgPrefix if flags.Common.ProductionStep is ProductionStep.PileUpPresampling else ""
417  kwargs.setdefault("InputKey", f"{prefix}MDTCSM")
418  result.addEventAlgo(CompFactory.MuonVal.MdtRDOAnalysis(name, **kwargs))
419  result.merge(RDOAnalysisOutputCfg(flags))
420  result.merge(MuonSDOAnalyisCfg(flags, name="MdtSDOAnalysis",
421  InputKey=f"{prefix}MDT_SDO",
422  HistPath="MuonSDOAnalysis/MDT/SDO",
423  techIndex=0))
424  return result
425 
426 
427 def RpcRDOAnalysisCfg(flags, name="RPC_RDOAnalysis", **kwargs):
428  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
429  result = MuonGeoModelCfg(flags)
430 
431  kwargs.setdefault("HistPath", "RDOAnalysis/RPC/")
432  prefix=''
433  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
434  prefix=flags.Overlay.BkgPrefix
435  if not flags.Muon.usePhaseIIGeoSetup:
436  kwargs.setdefault("InputPadKey", f"{prefix}RPCPAD" if not flags.Muon.usePhaseIIGeoSetup else "" )
437  from MuonConfig.MuonCablingConfig import RPCCablingConfigCfg
438  result.merge(RPCCablingConfigCfg(flags))
439  kwargs.setdefault("InputRdoKey", f"{prefix}NRPCRDO" if flags.Muon.enableNRPC else "" )
440  result.addEventAlgo(CompFactory.MuonVal.RpcRDOAnalysis(name, **kwargs))
441 
442  result.merge(RDOAnalysisOutputCfg(flags))
443  result.merge(MuonSDOAnalyisCfg(flags, name="RpcSDOAnalysis",
444  InputKey=f"{prefix}RPC_SDO",
445  HistPath="MuonSDOAnalysis/RPC/SDO",
446  techIndex=2))
447  return result
448 
449 
450 def TgcRDOAnalysisCfg(flags, name="TGC_RDOAnalysis", **kwargs):
451  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
452  result = MuonGeoModelCfg(flags)
453  kwargs.setdefault("HistPath", "RDOAnalysis/TGC/")
454  prefix=''
455  if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
456  prefix=flags.Overlay.BkgPrefix
457  kwargs.setdefault("InputKey", f"{prefix}TGCRDO")
458  result.addEventAlgo(CompFactory.MuonVal.TgcRDOAnalysis(name, **kwargs))
459  result.merge(RDOAnalysisOutputCfg(flags))
460  result.merge(MuonSDOAnalyisCfg(flags, name="TgcSDOAnalysis",
461  InputKey=f"{prefix}TGC_SDO",
462  HistPath="MuonSDOAnalysis/TGC/SDO",
463  techIndex=3))
464 
465  return result
466 
467 
469  from argparse import ArgumentParser
470  from AthenaConfiguration.TestDefaults import defaultTestFiles
471  parser = ArgumentParser()
472  parser.add_argument("--threads", type=int, help="number of threads", default=1)
473  parser.add_argument("--inputFile", "-i", default= defaultTestFiles.RDO_RUN3,
474  help="Input file to run on ", nargs="+")
475  parser.add_argument("--outFile", default="RDOAnalysis.root", help="Output ROOT file to dump the geomerty")
476  parser.add_argument("--nEvents", help="Number of events to run", type = int ,default = 1)
477  parser.add_argument("--skipEvents", help="Number of events to skip", type = int, default = 0)
478  parser.add_argument("--geoModelFile", default ="", help="GeoModel SqLite file containing the muon geometry.")
479 
480  return parser
481 
482 if __name__ == "__main__":
483  from AthenaConfiguration.AllConfigFlags import initConfigFlags
485  flags = initConfigFlags()
486  flags.Concurrency.NumThreads = args.threads
487  flags.Concurrency.NumConcurrentEvents = args.threads # Might change this later, but good enough for the moment.
488  flags.Input.Files = args.inputFile
489  flags.Scheduler.ShowDataDeps = True
490  flags.Scheduler.ShowDataFlow = True
491  flags.Exec.FPE= 500
492  flags.Exec.MaxEvents = args.nEvents
493  flags.Exec.SkipEvents = args.skipEvents
494  flags.Output.HISTFileName = args.outFile
495  if len (args.geoModelFile) > 0:
496  flags.GeoModel.SQLiteDB = True
497  flags.GeoModel.SQLiteDBFullPath = args.geoModelFile
498  from MuonGeoModelTestR4.testGeoModel import configureDefaultTagsCfg
500  else:
501  from MuonConfig.MuonConfigUtils import configureCondTag
502  configureCondTag(flags)
503  flags.lock()
504 
505  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
506  cfg = MainServicesCfg(flags)
507 
508  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
509  cfg.merge(PoolReadCfg(flags))
510 
511  cfg.merge(RDOAnalysisCfg(flags))
512 
513  from MuonConfig.MuonConfigUtils import executeTest
514  executeTest(cfg)
515 
MuonByteStreamCnvTestConfig.MM_RdoToDigitCfg
def MM_RdoToDigitCfg(flags, name="MM_RdoToDigitAlg", **kwargs)
Definition: MuonByteStreamCnvTestConfig.py:140
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.RDOAnalysisConfig.TRT_RDOAnalysisCfg
def TRT_RDOAnalysisCfg(flags, name="TRT_RDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:97
MuonByteStreamCnvTestConfig.MdtRdoToMdtDigitCfg
def MdtRdoToMdtDigitCfg(flags, name="MdtRdoToMdtDigitAlg", **kwargs)
Definition: MuonByteStreamCnvTestConfig.py:20
python.RDOAnalysisConfig.CSC_RDOAnalysisCfg
def CSC_RDOAnalysisCfg(flags, name="CSC_RDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:380
TRT_GeoModelConfig.TRT_ReadoutGeometryCfg
def TRT_ReadoutGeometryCfg(flags)
Definition: TRT_GeoModelConfig.py:73
python.RDOAnalysisConfig.SetupArgParser
def SetupArgParser()
Definition: RDOAnalysisConfig.py:468
MuonByteStreamCnvTestConfig.RpcRdoToRpcDigitCfg
def RpcRdoToRpcDigitCfg(flags, name="RpcRdoToRpcDigitAlg", **kwargs)
Definition: MuonByteStreamCnvTestConfig.py:44
ITkStripGeoModelConfig.ITkStripReadoutGeometryCfg
def ITkStripReadoutGeometryCfg(flags)
Definition: ITkStripGeoModelConfig.py:43
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags)
Definition: ITkPixelGeoModelConfig.py:39
python.HitAnalysisConfig.xMuonHitAnalysisCfg
def xMuonHitAnalysisCfg(flags, **kwargs)
Definition: HitAnalysisConfig.py:244
MuonByteStreamCnvTestConfig.TgcRdoToTgcDigitCfg
def TgcRdoToTgcDigitCfg(flags, name="TgcRdoToTgcDigitAlg", **kwargs)
Definition: MuonByteStreamCnvTestConfig.py:91
python.RDOAnalysisConfig.ITkPixelRDOAnalysisCfg
def ITkPixelRDOAnalysisCfg(flags, name="ITkPixelRDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:118
MuonHitTestConfig.MuonPileUpTestCfg
def MuonPileUpTestCfg(flags, name="MuonDigiTester", outFile="DigiTest.root", **kwargs)
Definition: MuonHitTestConfig.py:55
SCT_GeoModelConfig.SCT_ReadoutGeometryCfg
def SCT_ReadoutGeometryCfg(flags)
Definition: SCT_GeoModelConfig.py:50
MuonGeometryConfig.MuonGeoModelCfg
def MuonGeoModelCfg(flags)
Definition: MuonGeometryConfig.py:28
python.RDOAnalysisConfig.BCM_RDOAnalysisCfg
def BCM_RDOAnalysisCfg(flags, name="BCM_RDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:28
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
python.RDOAnalysisConfig.PixelRDOAnalysisCfg
def PixelRDOAnalysisCfg(flags, name="PixelRDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:49
python.RDOAnalysisConfig.ITkStripRDOAnalysisCfg
def ITkStripRDOAnalysisCfg(flags, name="ITkStripRDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:141
MuonConfigUtils.executeTest
def executeTest(cfg)
Definition: MuonConfigUtils.py:15
python.RDOAnalysisConfig.RDOAnalysisCfg
def RDOAnalysisCfg(flags)
Definition: RDOAnalysisConfig.py:213
python.RDOAnalysisConfig.HGTD_RDOAnalysisCfg
def HGTD_RDOAnalysisCfg(flags, name="HGTD_RDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:164
MuonHitTestConfig.MuonDigiTestCfg
def MuonDigiTestCfg(flags, name="MuonDigiTester", outFile="DigiTest.root", **kwargs)
Definition: MuonHitTestConfig.py:46
HitValAlgDigi.HitValAlgDigiCfg
def HitValAlgDigiCfg(flags, name="NSWPRDValAlg", outFile="NSWPRDValAlg.digi.ntuple.root", **kwargs)
Definition: HitValAlgDigi.py:6
HGTD_GeoModelConfig.HGTD_ReadoutGeometryCfg
def HGTD_ReadoutGeometryCfg(flags)
Definition: python/HGTD_GeoModelConfig.py:23
LArGMConfig.LArGMCfg
def LArGMCfg(flags)
Definition: LArGMConfig.py:8
python.RDOAnalysisConfig.MdtRDOAnalysisCfg
def MdtRDOAnalysisCfg(flags, name="MdtRDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:412
PixelGeoModelConfig.PixelReadoutGeometryCfg
def PixelReadoutGeometryCfg(flags)
Definition: PixelGeoModelConfig.py:52
MuonConfigUtils.configureCondTag
def configureCondTag(flags)
Definition: MuonConfigUtils.py:19
python.RDOAnalysisConfig.TileRDOAnalysisCfg
def TileRDOAnalysisCfg(flags, name="TileRDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:338
python.RDOAnalysisConfig.LArRDOAnalysisCfg
def LArRDOAnalysisCfg(flags, name="LArRDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:304
python.RDOAnalysisConfig.MuonSDOAnalyisCfg
def MuonSDOAnalyisCfg(flags, **kwargs)
Definition: RDOAnalysisConfig.py:400
python.RDOAnalysisConfig.RDOAnalysisOutputCfg
def RDOAnalysisOutputCfg(flags, output_name="RDOAnalysis")
Definition: RDOAnalysisConfig.py:8
testGeoModel.configureDefaultTagsCfg
def configureDefaultTagsCfg(flags)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/python/testGeoModel.py:96
python.RDOAnalysisConfig.EventInfoRDOAnalysisCfg
def EventInfoRDOAnalysisCfg(flags, name="EventInfoRDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:13
python.RDOAnalysisConfig.RpcRDOAnalysisCfg
def RpcRDOAnalysisCfg(flags, name="RPC_RDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:427
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.RDOAnalysisConfig.TgcRDOAnalysisCfg
def TgcRDOAnalysisCfg(flags, name="TGC_RDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:450
confTool.parse_args
def parse_args()
Definition: confTool.py:36
MuonConfigUtils.setupHistSvcCfg
def setupHistSvcCfg(flags, str outFile, str outStream)
Configuration snippet to setup the THistSvc.
Definition: MuonConfigUtils.py:5
python.RDOAnalysisConfig.PLR_RDOAnalysisCfg
def PLR_RDOAnalysisCfg(flags, name="PLR_RDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:187
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:71
MuonCablingConfig.RPCCablingConfigCfg
def RPCCablingConfigCfg(flags)
Definition: MuonCablingConfig.py:33
python.TileCablingSvcConfig.TileCablingSvcCfg
def TileCablingSvcCfg(flags)
Definition: TileCablingSvcConfig.py:11
PLR_GeoModelConfig.PLR_ReadoutGeometryCfg
def PLR_ReadoutGeometryCfg(flags, **kwargs)
Definition: PLR_GeoModelConfig.py:42
MuonByteStreamCnvTestConfig.STGC_RdoToDigitCfg
def STGC_RdoToDigitCfg(flags, name="STGC_RdoToDigitAlg", **kwargs)
Definition: MuonByteStreamCnvTestConfig.py:116
TileGMConfig.TileGMCfg
def TileGMCfg(flags)
Definition: TileGMConfig.py:7
python.RDOAnalysisConfig.SCT_RDOAnalysisCfg
def SCT_RDOAnalysisCfg(flags, name="SCT_RDOAnalysis", **kwargs)
Definition: RDOAnalysisConfig.py:73