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 51 of file DigitizationSteering.py.

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

◆ DigitizationMainContentCfg()

DigitizationMainContentCfg ( flags)

Definition at line 59 of file DigitizationSteering.py.

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

◆ 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
48 return acc
49
50

◆ DigitizationMessageSvcCfg()

DigitizationMessageSvcCfg ( flags)
MessageSvc for digitization and overlay

Definition at line 213 of file DigitizationSteering.py.

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

◆ DigitizationTestingPostInclude()

DigitizationTestingPostInclude ( flags,
acc )
Testing digitization post-include

Definition at line 221 of file DigitizationSteering.py.

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