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-2026 CERN for the benefit of the ATLAS collaboration

Function Documentation

◆ DigitizationMainCfg()

DigitizationMainCfg ( flags)

Definition at line 53 of file DigitizationSteering.py.

53def DigitizationMainCfg(flags):
54 # Construct main services
55 acc = DigitizationMainServicesCfg(flags)
56
57 acc.merge(DigitizationMainContentCfg(flags))
58
59 return acc
60

◆ DigitizationMainContentCfg()

DigitizationMainContentCfg ( flags)

Definition at line 61 of file DigitizationSteering.py.

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

◆ DigitizationMainServicesCfg()

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 # For MP, we let MainServicesCfg create the MpEventLoopMgr
41 acc = MainServicesCfg(flags, createEventLoopMgr=(flags.Concurrency.NumProcs > 0))
42 acc.merge(PileUpEventLoopMgrCfg(flags))
43 else:
44 acc = MainServicesCfg(flags)
45
46 acc.merge(PoolReadCfg(flags))
47 evSel = acc.getService("EventSelector")
48 evSel.CollectionType = "RootCollection"
49
50 return acc
51
52

◆ DigitizationMessageSvcCfg()

DigitizationMessageSvcCfg ( flags)
MessageSvc for digitization and overlay

Definition at line 215 of file DigitizationSteering.py.

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

◆ DigitizationTestingPostInclude()

DigitizationTestingPostInclude ( flags,
acc )
Testing digitization post-include

Definition at line 223 of file DigitizationSteering.py.

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

◆ HepMCVersion()

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.