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

Functions

 OverlayMainCfg (configFlags)
 OverlayMainContentCfg (configFlags)

Detailed Description

Main steering for MC+MC and MC+data overlay

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

Function Documentation

◆ OverlayMainCfg()

python.OverlaySteering.OverlayMainCfg ( configFlags)
Main overlay steering configuration

Definition at line 21 of file OverlaySteering.py.

21def OverlayMainCfg(configFlags):
22 """Main overlay steering configuration"""
23
24 # Construct our accumulator to run
25 acc = MainServicesCfg(configFlags)
26 acc.merge(PoolReadCfg(configFlags))
27 acc.merge(OverlayMainContentCfg(configFlags))
28 return acc
29
30

◆ OverlayMainContentCfg()

python.OverlaySteering.OverlayMainContentCfg ( configFlags)
Main overlay content

Definition at line 31 of file OverlaySteering.py.

31def OverlayMainContentCfg(configFlags):
32 """Main overlay content"""
33
34 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
35 acc = ComponentAccumulator()
36
37 # Handle overlay digitization metadata writing (must come before reading setup)
38 if hasattr(configFlags, '_Overlay_pileupDigitizationMetadata'):
39 if configFlags.IOVDb.WriteParametersAsMetaData:
40 # Direct metadata mode: use standard parameter writer
41 from IOVDbMetaDataTools.ParameterWriterConfig import writeParametersToMetaData
42 from DigitizationConfig.DigitizationParametersConfig import folderName
43 from AthenaCommon.Logging import logging
44 logOverlay = logging.getLogger('OverlayMetadataConfig')
45 logOverlay.info('Writing overlay digitization parameters directly to in-file metadata (bypassing DigitParams.db)')
46
47 pileupDict = configFlags._Overlay_pileupDigitizationMetadata
48 runNumber = configFlags.Input.RunNumbers[0]
49 runNumberEnd = configFlags.Input.RunNumbers[-1]
50 if runNumberEnd == runNumber:
51 runNumberEnd += 1
52
53 # Convert pileup dictionary to string parameters
54 params = {}
55 for key in pileupDict:
56 value = str(pileupDict[key])
57 params[key] = value
58 logOverlay.info('DigitizationMetaData: setting "%s" to be %s', key, value)
59
60 acc.merge(writeParametersToMetaData(configFlags, folderName, params, runNumber, runNumberEnd))
61
62 # Also set up reading via MetaDataToCondAlg so ConditionStore is populated
63 # during event processing (for algorithms like LuminosityCondAlg that need it)
64 from IOVDbMetaDataTools.MetaDataToCondAlgConfig import MetaDataToCondAlgCfg
65 acc.merge(MetaDataToCondAlgCfg(configFlags, folderName))
66 else:
67 # Sqlite mode: create DigitParams.db first
68 from OverlayConfiguration.OverlayMetadata import writeOverlayDigitizationMetadata
69 writeOverlayDigitizationMetadata(configFlags, configFlags._Overlay_pileupDigitizationMetadata)
70
71 # Setup reading digitization parameters (mode-dependent)
72 # In sqlite mode, this reads from DigitParams.db (created above if pileup metadata exists)
73 # Only needed if we actually have pileup metadata to read
74 if not configFlags.IOVDb.WriteParametersAsMetaData and hasattr(configFlags, '_Overlay_pileupDigitizationMetadata'):
75 acc.merge(writeDigitizationParameters(configFlags))
76
77 acc.merge(IOVDbMetaDataToolWithRunNumberOverrideCfg(configFlags))
78
79 # Add event info overlay
80 if not configFlags.Sim.DoFullChain:
81 acc.merge(EventInfoOverlayCfg(configFlags))
82
83 # Add truth overlay (needed downstream)
84 if not configFlags.Sim.DoFullChain and (getEnabledDetectors(configFlags) or configFlags.Digitization.EnableTruth):
85 acc.merge(CopyMcEventCollectionCfg(configFlags))
86 if configFlags.Digitization.EnableTruth:
87 acc.merge(CopyJetTruthInfoCfg(configFlags))
88 acc.merge(CopyPileupParticleTruthInfoCfg(configFlags))
89 acc.merge(CopyCaloCalibrationHitContainersCfg(configFlags))
90 if not configFlags.Sim.DoFullChain:
91 acc.merge(CopyTrackRecordCollectionsCfg(configFlags))
92
93 # Beam spot reweighting
94 if configFlags.Digitization.InputBeamSigmaZ > 0:
95 from BeamEffects.BeamEffectsAlgConfig import BeamSpotReweightingAlgCfg
96 acc.merge(BeamSpotReweightingAlgCfg(configFlags))
97
98 # Inner detector
99 if configFlags.Detector.EnableBCM:
100 from InDetOverlay.BCMOverlayConfig import BCMOverlayCfg
101 acc.merge(BCMOverlayCfg(configFlags))
102 if configFlags.Detector.EnablePixel:
103 from InDetOverlay.PixelOverlayConfig import PixelOverlayCfg
104 acc.merge(PixelOverlayCfg(configFlags))
105 if configFlags.Detector.EnableSCT:
106 from InDetOverlay.SCTOverlayConfig import SCTOverlayCfg
107 acc.merge(SCTOverlayCfg(configFlags))
108 if configFlags.Detector.EnableTRT:
109 from InDetOverlay.TRTOverlayConfig import TRTOverlayCfg
110 acc.merge(TRTOverlayCfg(configFlags))
111
112 # ITk
113 if configFlags.Detector.EnableITkPixel:
114 from InDetOverlay.ITkPixelOverlayConfig import ITkPixelOverlayCfg
115 acc.merge(ITkPixelOverlayCfg(configFlags))
116 if configFlags.Detector.EnableITkStrip:
117 from InDetOverlay.ITkStripOverlayConfig import ITkStripOverlayCfg
118 acc.merge(ITkStripOverlayCfg(configFlags))
119 if configFlags.Detector.EnablePLR:
120 from InDetOverlay.PLR_OverlayConfig import PLR_OverlayCfg
121 acc.merge(PLR_OverlayCfg(configFlags))
122
123 # HGTD
124 if configFlags.Detector.EnableHGTD:
125 from HGTD_Overlay.HGTD_OverlayConfig import HGTD_OverlayCfg
126 acc.merge(HGTD_OverlayCfg(configFlags))
127
128 # Calorimeters
129 if configFlags.Detector.EnableLAr:
130 from LArDigitization.LArDigitizationConfig import LArOverlayCfg, LArSuperCellOverlayCfg
131 acc.merge(LArOverlayCfg(configFlags))
132 if configFlags.Detector.EnableL1Calo:
133 if configFlags.Overlay.DataOverlay:
134 pass # TODO: not supported for now
135 else:
136 from TrigT1CaloSim.TTL1OverlayConfig import LArTTL1OverlayCfg
137 acc.merge(LArTTL1OverlayCfg(configFlags))
138 if configFlags.GeoModel.Run >= LHCPeriod.Run3:
139 acc.merge(LArSuperCellOverlayCfg(configFlags))
140
141 if configFlags.Detector.EnableTile:
142 from TileSimAlgs.TileDigitizationConfig import TileDigitizationCfg, TileOverlayTriggerDigitizationCfg
143 acc.merge(TileDigitizationCfg(configFlags))
144 if configFlags.Detector.EnableL1Calo:
145 if configFlags.Overlay.DataOverlay:
146 pass # TODO: not supported for now
147 else:
148 from TrigT1CaloSim.TTL1OverlayConfig import TileTTL1OverlayCfg
149 acc.merge(TileTTL1OverlayCfg(configFlags))
150 acc.merge(TileOverlayTriggerDigitizationCfg(configFlags))
151
152 # Muon system
153 from MuonConfig.MuonOverlayConfig import MuonOverlayCfg
154 acc.merge(MuonOverlayCfg(configFlags))
155
156 # Track overlay
157 if configFlags.Overlay.doTrackOverlay:
158 #need this to ensure that the ElementLinks to the PRDs are handled correctly (since the name is hardcoded in the converters)
159 from TrkEventCnvTools.TrkEventCnvToolsConfig import TrkEventCnvSuperToolCfg
160 acc.merge(TrkEventCnvSuperToolCfg(configFlags))
161 if configFlags.Detector.GeometryITk:
162 from OverlayCopyAlgs.OverlayCopyAlgsConfig import CopyITkTrackCollectionsCfg, CopyITkPixelClusterContainerCfg, CopyITkStripClusterContainerCfg
163 acc.merge(CopyITkTrackCollectionsCfg(configFlags))
164 acc.merge(CopyITkPixelClusterContainerCfg(configFlags))
165 acc.merge(CopyITkStripClusterContainerCfg(configFlags))
166 else:
167 from OverlayCopyAlgs.OverlayCopyAlgsConfig import CopyTrackCollectionsCfg,CopyPixelClusterContainerCfg, CopySCT_ClusterContainerCfg
168 acc.merge(CopyTrackCollectionsCfg(configFlags))
169 acc.merge(CopyPixelClusterContainerCfg(configFlags))
170 acc.merge(CopySCT_ClusterContainerCfg(configFlags))
171
172 if configFlags.Overlay.DataOverlay:
173 # Copy background vertex collection
174 acc.merge(CopyBackgroundVertexCfg(configFlags))
175 # Override conditions for data overlay
176 if configFlags.Overlay.DataOverlayConditions:
177 executeFromFragment(configFlags.Overlay.DataOverlayConditions, configFlags, acc)
178
179 # Add in-file MetaData
180 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
181 if configFlags.Output.doWriteRDO:
182 acc.merge(SetupMetaDataForStreamCfg(configFlags, "RDO"))
183 if configFlags.Output.doWriteRDO_SGNL:
184 acc.merge(SetupMetaDataForStreamCfg(configFlags, "RDO_SGNL"))
185
186 if not configFlags.Input.isMC and configFlags.Input.DataYear > 0:
187 acc.merge(TagInfoMgrCfg(configFlags, tagValuePairs={
188 "data_year": str(configFlags.Input.DataYear)
189 }))
190
191 return acc