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

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

◆ DigitizationMainContentCfg()

python.DigitizationSteering.DigitizationMainContentCfg ( flags)

Definition at line 60 of file DigitizationSteering.py.

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

◆ 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 evSel = acc.getService("EventSelector")
47 evSel.CollectionType = "RootCollection"
48
49 return acc
50
51

◆ DigitizationMessageSvcCfg()

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

Definition at line 214 of file DigitizationSteering.py.

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

◆ DigitizationTestingPostInclude()

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

Definition at line 222 of file DigitizationSteering.py.

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