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

Function Documentation

◆ OverlayMainCfg()

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

Definition at line 20 of file OverlaySteering.py.

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

◆ OverlayMainContentCfg()

python.OverlaySteering.OverlayMainContentCfg ( configFlags)
Main overlay content

Definition at line 30 of file OverlaySteering.py.

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