ATLAS Offline Software
Loading...
Searching...
No Matches
python.DigitizationSteering Namespace Reference

Functions

 HepMCVersion ()
 DigitizationMainServicesCfg (flags)
 DigitizationMainCfg (flags)
 DigitizationMainContentCfg (flags)
 DigitizationMessageSvcCfg (flags)
 DigitizationTestingPostInclude (flags, acc)

Variables

 logDigiSteering = logging.getLogger('DigitizationSteering')

Detailed Description

Main steering for the digitization jobs

Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration

Function Documentation

◆ DigitizationMainCfg()

python.DigitizationSteering.DigitizationMainCfg ( flags)

Definition at line 50 of file DigitizationSteering.py.

50def DigitizationMainCfg(flags):
51 # Construct main services
52 acc = DigitizationMainServicesCfg(flags)
53
54 acc.merge(DigitizationMainContentCfg(flags))
55
56 return acc
57

◆ DigitizationMainContentCfg()

python.DigitizationSteering.DigitizationMainContentCfg ( flags)

Definition at line 58 of file DigitizationSteering.py.

58def DigitizationMainContentCfg(flags):
59
60 acc = ComponentAccumulator()
61
62 acc.merge(writeDigitizationMetadata(flags))
63
64 if not flags.Digitization.PileUp:
65 # Old EventInfo conversion
66 if "EventInfo" not in flags.Input.Collections:
67 from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoCnvAlgCfg
68 acc.merge(EventInfoCnvAlgCfg(flags,
69 inputKey="McEventInfo",
70 outputKey="Input_EventInfo"))
71
72 from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoUpdateFromContextAlgCfg
73 acc.merge(EventInfoUpdateFromContextAlgCfg(flags))
74
75 # Decorate pile-up values
76 from DigitizationConfig.PileUpConfig import NoPileUpMuWriterCfg
77 acc.merge(NoPileUpMuWriterCfg(flags))
78
79 # Signal-only truth information
80 if flags.Digitization.PileUp:
81 if HepMCVersion() == 3:
82 from MCTruthSimAlgs.MCTruthSimAlgsConfig import SimpleMergeMcEventCollCfg as MergeMcEventCollCfg
83 from MCTruthSimAlgs.MCTruthSimAlgsConfig import InTimeOnlySimpleMergeMcEventCollCfg as InTimeOnlyMergeMcEventCollCfg
84 from MCTruthSimAlgs.MCTruthSimAlgsConfig import SignalOnlySimpleMergeMcEventCollCfg as SignalOnlyMergeMcEventCollCfg
85 else:
86 from MCTruthSimAlgs.MCTruthSimAlgsConfig import MergeMcEventCollCfg
87 from MCTruthSimAlgs.MCTruthSimAlgsConfig import InTimeOnlyMcEventCollCfg as InTimeOnlyMergeMcEventCollCfg
88 from MCTruthSimAlgs.MCTruthSimAlgsConfig import SignalOnlyMcEventCollCfg as SignalOnlyMergeMcEventCollCfg
89 from MCTruthSimAlgs.MCTruthSimAlgsConfig import (
90 MergeAntiKt4TruthJetsCfg,
91 MergeAntiKt6TruthJetsCfg,
92 MergeTruthParticlesCfg,
93 MergeMuonEntryLayerCfg,
94 MergeCalibHitsCfg,
95 MergeHijingParsCfg,
96 )
97 if flags.Common.ProductionStep is not ProductionStep.FastChain and getEnabledDetectors(flags):
98 if flags.Digitization.DigiSteeringConf=="StandardPileUpToolsAlg":
99 acc.merge(MergeMcEventCollCfg(flags))
100 elif flags.Digitization.DigiSteeringConf=="StandardInTimeOnlyTruthPileUpToolsAlg":
101 acc.merge(InTimeOnlyMergeMcEventCollCfg(flags))
102 else:
103 acc.merge(SignalOnlyMergeMcEventCollCfg(flags))
104 if flags.Digitization.EnableTruth:
105 puCollections = pileupInputCollections(flags.Digitization.PU.LowPtMinBiasInputCols)
106 if "AntiKt4TruthJets" in puCollections:
107 acc.merge(MergeAntiKt4TruthJetsCfg(flags))
108 if "AntiKt6TruthJets" in puCollections:
109 acc.merge(MergeAntiKt6TruthJetsCfg(flags))
110 if "TruthPileupParticles" in puCollections:
111 acc.merge(MergeTruthParticlesCfg(flags))
112 acc.merge(MergeMuonEntryLayerCfg(flags))
113 acc.merge(MergeCalibHitsCfg(flags))
114 if 'Hijing_event_params' in pileupInputCollections(flags.Digitization.PU.CavernInputCols):
115 acc.merge(MergeHijingParsCfg(flags))
116
117
118 from DigitizationConfig.TruthDigitizationOutputConfig import TruthDigitizationOutputCfg
119 acc.merge(TruthDigitizationOutputCfg(flags))
120
121 # Beam spot reweighting
122 if flags.Common.ProductionStep != ProductionStep.PileUpPresampling and flags.Digitization.InputBeamSigmaZ > 0:
123 from BeamEffects.BeamEffectsAlgConfig import BeamSpotReweightingAlgCfg
124 acc.merge(BeamSpotReweightingAlgCfg(flags))
125
126 # Inner Detector
127 if flags.Detector.EnableBCM:
128 from BCM_Digitization.BCM_DigitizationConfig import BCM_DigitizationCfg
129 acc.merge(BCM_DigitizationCfg(flags))
130 if flags.Detector.EnablePixel:
131 from PixelDigitization.PixelDigitizationConfig import PixelDigitizationCfg
132 acc.merge(PixelDigitizationCfg(flags))
133 if flags.Detector.EnableSCT:
134 from SCT_Digitization.SCT_DigitizationConfig import SCT_DigitizationCfg
135 acc.merge(SCT_DigitizationCfg(flags))
136 if flags.Detector.EnableTRT:
137 from TRT_Digitization.TRT_DigitizationConfig import TRT_DigitizationCfg
138 acc.merge(TRT_DigitizationCfg(flags))
139
140 # ITk
141 if flags.Detector.EnableITkPixel:
142 from PixelDigitization.ITkPixelDigitizationConfig import ITkPixelDigitizationCfg
143 acc.merge(ITkPixelDigitizationCfg(flags))
144 if flags.Detector.EnableITkStrip:
145 from StripDigitization.StripDigitizationConfig import ITkStripDigitizationCfg
146 acc.merge(ITkStripDigitizationCfg(flags))
147 if flags.Detector.EnablePLR:
148 from PixelDigitization.PLR_DigitizationConfig import PLR_DigitizationCfg
149 acc.merge(PLR_DigitizationCfg(flags))
150
151 # HGTD
152 if flags.Detector.EnableHGTD:
153 from HGTD_Digitization.HGTD_DigitizationConfig import HGTD_DigitizationCfg
154 acc.merge(HGTD_DigitizationCfg(flags))
155
156 # Calorimeter
157 if flags.Detector.EnableLAr:
158 from LArDigitization.LArDigitizationConfig import LArTriggerDigitizationCfg
159 acc.merge(LArTriggerDigitizationCfg(flags))
160 if flags.Detector.EnableTile:
161 from TileSimAlgs.TileDigitizationConfig import TileDigitizationCfg, TileTriggerDigitizationCfg
162 acc.merge(TileDigitizationCfg(flags))
163 acc.merge(TileTriggerDigitizationCfg(flags))
164
165 # Muon Spectrometer
166 if flags.Detector.EnableMDT:
167 from MuonConfig.MDT_DigitizationConfig import MDT_DigitizationDigitToRDOCfg
168 acc.merge(MDT_DigitizationDigitToRDOCfg(flags))
169 if flags.Detector.EnableTGC:
170 from MuonConfig.TGC_DigitizationConfig import TGC_DigitizationDigitToRDOCfg
171 acc.merge(TGC_DigitizationDigitToRDOCfg(flags))
172 if flags.Detector.EnableRPC:
173 from MuonConfig.RPC_DigitizationConfig import RPC_DigitizationDigitToRDOCfg
174 acc.merge(RPC_DigitizationDigitToRDOCfg(flags))
175 if flags.Detector.EnableCSC:
176 from MuonConfig.CSC_DigitizationConfig import CSC_DigitizationDigitToRDOCfg
177 acc.merge(CSC_DigitizationDigitToRDOCfg(flags))
178 if flags.Detector.EnablesTGC:
179 from MuonConfig.sTGC_DigitizationConfig import sTGC_DigitizationDigitToRDOCfg
180 acc.merge(sTGC_DigitizationDigitToRDOCfg(flags))
181 if flags.Detector.EnableMM:
182 from MuonConfig.MM_DigitizationConfig import MM_DigitizationDigitToRDOCfg
183 acc.merge(MM_DigitizationDigitToRDOCfg(flags))
184
185 # LUCID
186 if flags.Detector.EnableLucid:
187 from LUCID_Digitization.LUCID_DigitizationConfig import LUCID_DigitizationCfg
188 acc.merge(LUCID_DigitizationCfg(flags))
189
190 # AFP
191 if flags.Detector.EnableAFP:
192 from AFP_Digitization.AFP_DigitizationConfig import AFP_DigitizationCfg
193 acc.merge(AFP_DigitizationCfg(flags))
194
195 # ALFA
196 if flags.Detector.EnableALFA:
197 from ALFA_Digitization.ALFA_DigitizationConfig import ALFA_DigitizationCfg
198 acc.merge(ALFA_DigitizationCfg(flags))
199
200 # ZDC
201 if flags.Detector.EnableZDC:
202 from ZDC_SimuDigitization.ZDC_SimuDigitizationConfig import ZDC_DigitizationCfg
203 acc.merge(ZDC_DigitizationCfg(flags))
204
205 # Add in-file MetaData
206 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
207 acc.merge(SetupMetaDataForStreamCfg(flags, "RDO"))
208
209 return acc
210
211

◆ DigitizationMainServicesCfg()

python.DigitizationSteering.DigitizationMainServicesCfg ( flags)
Configure main digitization services

Definition at line 28 of file DigitizationSteering.py.

28def DigitizationMainServicesCfg(flags):
29 """Configure main digitization services"""
30 if flags.Digitization.PileUp:
31 if flags.Concurrency.NumThreads > 0:
32 logDigiSteering.info("DigitizationMainServicesCfg: Attempting to run pile-up digitization AthenaMT using %s threads!", str(flags.Concurrency.NumThreads))
33 logDigiSteering.info("DigitizationMainServicesCfg: Using new PileUpMT code.")
34 # raise RuntimeError("DigitizationSteering.DigitizationMainServicesCfg: Running pile-up digitization with AthenaMT is not supported. Please update your configuration.")
35 from DigitizationConfig.PileUpMTConfig import PileUpMTAlgCfg
36 acc = MainServicesCfg(flags)
37 acc.merge(PileUpMTAlgCfg(flags))
38 else:
39 from DigitizationConfig.PileUpConfig import PileUpEventLoopMgrCfg
40 acc = MainServicesCfg(flags, LoopMgr="PileUpEventLoopMgr")
41 acc.merge(PileUpEventLoopMgrCfg(flags))
42 else:
43 acc = MainServicesCfg(flags)
44
45 acc.merge(PoolReadCfg(flags))
46
47 return acc
48
49

◆ DigitizationMessageSvcCfg()

python.DigitizationSteering.DigitizationMessageSvcCfg ( flags)
MessageSvc for digitization and overlay

Definition at line 212 of file DigitizationSteering.py.

212def DigitizationMessageSvcCfg(flags):
213 """MessageSvc for digitization and overlay"""
214 MessageSvc = CompFactory.MessageSvc
215 acc = ComponentAccumulator()
216 acc.addService(MessageSvc(setError=["HepMcParticleLink"]))
217 return acc
218
219

◆ DigitizationTestingPostInclude()

python.DigitizationSteering.DigitizationTestingPostInclude ( flags,
acc )
Testing digitization post-include

Definition at line 220 of file DigitizationSteering.py.

220def DigitizationTestingPostInclude(flags, acc):
221 """Testing digitization post-include"""
222 # dump config
223 configName = "DigiPUConfigCA" if flags.Digitization.PileUp else "DigiConfigCA"
224 from AthenaConfiguration.MainServicesConfig import JobOptionsDumpCfg
225 acc.merge(JobOptionsDumpCfg(flags, fileName=f"{configName}.txt"))
226
227 # dump pickle
228 with open(f"{configName}.pkl", "wb") as f:
229 acc.store(f)

◆ HepMCVersion()

python.DigitizationSteering.HepMCVersion ( )

Definition at line 19 of file DigitizationSteering.py.

19def HepMCVersion():
20 try:
21 from AthenaPython.PyAthena import HepMC3 # noqa: F401
22 HepMCVersion=3
23 except ImportError:
24 HepMCVersion=2
25 return HepMCVersion
26
27

Variable Documentation

◆ logDigiSteering

python.DigitizationSteering.logDigiSteering = logging.getLogger('DigitizationSteering')

Definition at line 17 of file DigitizationSteering.py.