ATLAS Offline Software
Loading...
Searching...
No Matches
Tools/HitAnalysis/python/PostIncludes.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3# Adding SiHitValidation for whichever parts of ITk are running
4def ITkHitAnalysis(flags):
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 from HitAnalysis.HitAnalysisConfig import ITkPixelHitAnalysisCfg, ITkStripHitAnalysisCfg, PLR_HitAnalysisCfg
7
8 result = ComponentAccumulator()
9
10 if flags.Detector.EnableITkPixel:
11 result.merge(ITkPixelHitAnalysisCfg(flags))
12
13 if flags.Detector.EnableITkStrip:
14 result.merge(ITkStripHitAnalysisCfg(flags))
15
16 if flags.Detector.EnablePLR:
17 result.merge(PLR_HitAnalysisCfg(flags))
18
19 return result
20
21def HGTDHitAnalysis(flags):
22 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
23 from HitAnalysis.HitAnalysisConfig import HGTD_HitAnalysisCfg
24
25 result = ComponentAccumulator()
26
27 if flags.Detector.EnableHGTD:
28 result.merge(HGTD_HitAnalysisCfg(flags))
29
30 result.getService("THistSvc").Output = [
31 "HGTDHitAnalysis DATAFILE='HGTDHitValid.root' OPT='RECREATE'"]
32
33 return result
34
35
36def IDHitAnalysis(flags):
37
38 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
39 from HitAnalysis.HitAnalysisConfig import PixelHitAnalysisCfg, SCTHitAnalysisCfg, TRTHitAnalysisCfg
40 result = ComponentAccumulator()
41 if flags.Detector.EnablePixel:
42 result.merge(PixelHitAnalysisCfg(flags))
43 if flags.Detector.EnableSCT:
44 result.merge(SCTHitAnalysisCfg(flags))
45 if flags.Detector.EnableTRT:
46 result.merge(TRTHitAnalysisCfg(flags))
47 return result
48
49def MuonHitAnalysis(flags):
50 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
51 result = ComponentAccumulator()
52 if flags.Muon.usePhaseIIGeoSetup:
53 from HitAnalysis.HitAnalysisConfig import xMuonHitAnalysisCfg
54 from ROOT.Muon.MuonStationIndex import TechnologyIndex
55 if flags.Detector.EnableMDT:
56 result.merge(xMuonHitAnalysisCfg(flags,
57 name="MdtSimHitTester",
58 InputKey="xMdtSimHits",
59 HistPath="xMuonSimHit/histos/MDT/Hits",
60 techIndex=TechnologyIndex.MDT))
61 if flags.Detector.EnableRPC:
62 result.merge(xMuonHitAnalysisCfg(flags,
63 name="RpcSimHitTester",
64 InputKey="xRpcSimHits",
65 HistPath="xMuonSimHit/histos/RPC/Hits",
66 techIndex=TechnologyIndex.RPC))
67 if flags.Detector.EnableTGC:
68 result.merge(xMuonHitAnalysisCfg(flags,
69 name="TgcSimHitTester",
70 InputKey="xTgcSimHits",
71 HistPath="xMuonSimHit/histos/TGC/Hits",
72 techIndex=TechnologyIndex.TGC))
73 if flags.Detector.EnablesTGC:
74 result.merge(xMuonHitAnalysisCfg(flags,
75 name="sTgcSimHitTester",
76 InputKey="xStgcSimHits",
77 HistPath="xMuonSimHit/histos/sTGC/Hits",
78 techIndex=TechnologyIndex.STGC))
79 if flags.Detector.EnableMM:
80 result.merge(xMuonHitAnalysisCfg(flags,
81 name="MmSimHitTester",
82 InputKey="xMmSimHits",
83 HistPath="xMuonSimHit/histos/MM/Hits",
84 techIndex=TechnologyIndex.MM))
85 from MuonPRDTestR4.MuonHitTestConfig import MuonHitTesterCfg
86 result.merge(MuonHitTesterCfg(flags, outFile=flags.Output.HISTFileName))
87 else:
88 if flags.Detector.EnableMDT:
89 from HitAnalysis.HitAnalysisConfig import MDTHitAnalysisCfg
90 result.merge(MDTHitAnalysisCfg(flags))
91 if flags.Detector.EnableRPC:
92 from HitAnalysis.HitAnalysisConfig import RPCHitAnalysisCfg
93 result.merge(RPCHitAnalysisCfg(flags))
94 if flags.Detector.EnableTGC:
95 from HitAnalysis.HitAnalysisConfig import TGCHitAnalysisCfg
96 result.merge(TGCHitAnalysisCfg(flags))
97 if flags.Detector.EnablesTGC:
98 from HitAnalysis.HitAnalysisConfig import sTGCHitAnalysisCfg
99 result.merge(sTGCHitAnalysisCfg(flags))
100 if flags.Detector.EnableMM:
101 from HitAnalysis.HitAnalysisConfig import MMHitAnalysisCfg
102 result.merge(MMHitAnalysisCfg(flags))
103 if flags.Detector.EnableCSC:
104 from HitAnalysis.HitAnalysisConfig import CSCHitAnalysisCfg
105 result.merge(CSCHitAnalysisCfg(flags))
106 if flags.Detector.EnableMuon:
107 from MuonPRDTest.HitValAlgSim import HitValAlgSimCfg
108 result.merge(HitValAlgSimCfg(flags, outFile=flags.Output.HISTFileName))
109
110
111 return result
112
113
114def SimHitAnalysis(flags):
115 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
116 result = ComponentAccumulator()
117 result.merge(ITkHitAnalysis(flags))
118 result.merge(IDHitAnalysis(flags))
119 result.merge(MuonHitAnalysis(flags))
120 from HitAnalysis.HitAnalysisConfig import CaloHitAnalysisCfg, TrackRecordAnalysisCfg, TruthHitAnalysisCfg
121 result.merge(CaloHitAnalysisCfg(flags))
122 if flags.Detector.EnableMuon:
123 result.merge(TrackRecordAnalysisCfg(flags))
124 result.merge(TruthHitAnalysisCfg(flags))
125 return result