ATLAS Offline Software
OverlaySteering.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 """Main steering for MC+MC and MC+data overlay
3 
4 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 """
6 
7 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
8 from AthenaConfiguration.DetectorConfigFlags import getEnabledDetectors
9 from AthenaConfiguration.Enums import LHCPeriod
10 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
11 from DigitizationConfig.DigitizationParametersConfig import writeDigitizationParameters
12 
13 from OverlayCopyAlgs.OverlayCopyAlgsConfig import \
14  CopyCaloCalibrationHitContainersCfg, CopyJetTruthInfoCfg, CopyPileupParticleTruthInfoCfg, CopyMcEventCollectionCfg, \
15  CopyTrackRecordCollectionsCfg
16 from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoOverlayCfg
17 
18 
19 def OverlayMainCfg(configFlags):
20  """Main overlay steering configuration"""
21 
22  # Construct our accumulator to run
23  acc = MainServicesCfg(configFlags)
24  acc.merge(PoolReadCfg(configFlags))
25  acc.merge(OverlayMainContentCfg(configFlags))
26  return acc
27 
28 
29 def OverlayMainContentCfg(configFlags):
30  """Main overlay content"""
31 
32  acc = writeDigitizationParameters(configFlags)
33 
34  # Add event info overlay
35  acc.merge(EventInfoOverlayCfg(configFlags))
36 
37  # Add truth overlay (needed downstream)
38  if not configFlags.Overlay.FastChain and (getEnabledDetectors(configFlags) or configFlags.Digitization.EnableTruth):
39  acc.merge(CopyMcEventCollectionCfg(configFlags))
40  if configFlags.Digitization.EnableTruth:
41  acc.merge(CopyJetTruthInfoCfg(configFlags))
42  acc.merge(CopyPileupParticleTruthInfoCfg(configFlags))
43  acc.merge(CopyCaloCalibrationHitContainersCfg(configFlags))
44  if not configFlags.Overlay.FastChain:
45  acc.merge(CopyTrackRecordCollectionsCfg(configFlags))
46 
47  # Beam spot reweighting
48  if configFlags.Digitization.InputBeamSigmaZ > 0:
49  from BeamEffects.BeamEffectsAlgConfig import BeamSpotReweightingAlgCfg
50  acc.merge(BeamSpotReweightingAlgCfg(configFlags))
51 
52  # Inner detector
53  if configFlags.Detector.EnableBCM:
54  from InDetOverlay.BCMOverlayConfig import BCMOverlayCfg
55  acc.merge(BCMOverlayCfg(configFlags))
56  if configFlags.Detector.EnablePixel:
57  from InDetOverlay.PixelOverlayConfig import PixelOverlayCfg
58  acc.merge(PixelOverlayCfg(configFlags))
59  if configFlags.Detector.EnableSCT:
60  from InDetOverlay.SCTOverlayConfig import SCTOverlayCfg
61  acc.merge(SCTOverlayCfg(configFlags))
62  if configFlags.Detector.EnableTRT:
63  from InDetOverlay.TRTOverlayConfig import TRTOverlayCfg
64  acc.merge(TRTOverlayCfg(configFlags))
65 
66  # ITk
67  if configFlags.Detector.EnableITkPixel:
68  from InDetOverlay.ITkPixelOverlayConfig import ITkPixelOverlayCfg
69  acc.merge(ITkPixelOverlayCfg(configFlags))
70  if configFlags.Detector.EnableITkStrip:
71  from InDetOverlay.ITkStripOverlayConfig import ITkStripOverlayCfg
72  acc.merge(ITkStripOverlayCfg(configFlags))
73  if configFlags.Detector.EnablePLR:
74  from InDetOverlay.PLR_OverlayConfig import PLR_OverlayCfg
75  acc.merge(PLR_OverlayCfg(configFlags))
76 
77  # HGTD
78  if configFlags.Detector.EnableHGTD:
79  from HGTD_Overlay.HGTD_OverlayConfig import HGTD_OverlayCfg
80  acc.merge(HGTD_OverlayCfg(configFlags))
81 
82  # Calorimeters
83  if configFlags.Detector.EnableLAr:
84  from LArDigitization.LArDigitizationConfig import LArOverlayCfg, LArSuperCellOverlayCfg
85  acc.merge(LArOverlayCfg(configFlags))
86  if configFlags.Detector.EnableL1Calo:
87  if configFlags.Overlay.DataOverlay:
88  pass # TODO: not supported for now
89  else:
90  from TrigT1CaloSim.TTL1OverlayConfig import LArTTL1OverlayCfg
91  acc.merge(LArTTL1OverlayCfg(configFlags))
92  if configFlags.GeoModel.Run >= LHCPeriod.Run3:
93  acc.merge(LArSuperCellOverlayCfg(configFlags))
94 
95  if configFlags.Detector.EnableTile:
96  from TileSimAlgs.TileDigitizationConfig import TileDigitizationCfg, TileOverlayTriggerDigitizationCfg
97  acc.merge(TileDigitizationCfg(configFlags))
98  if configFlags.Detector.EnableL1Calo:
99  if configFlags.Overlay.DataOverlay:
100  pass # TODO: not supported for now
101  else:
102  from TrigT1CaloSim.TTL1OverlayConfig import TileTTL1OverlayCfg
103  acc.merge(TileTTL1OverlayCfg(configFlags))
104  acc.merge(TileOverlayTriggerDigitizationCfg(configFlags))
105 
106  # Muon system
107  from MuonConfig.MuonOverlayConfig import MuonOverlayCfg
108  acc.merge(MuonOverlayCfg(configFlags))
109 
110  # Add MT-safe PerfMon
111  if configFlags.PerfMon.doFastMonMT or configFlags.PerfMon.doFullMonMT:
112  from PerfMonComps.PerfMonCompsConfig import PerfMonMTSvcCfg
113  acc.merge(PerfMonMTSvcCfg(configFlags))
114 
115  # Track overlay
116  if configFlags.Overlay.doTrackOverlay:
117  #need this to ensure that the ElementLinks to the PRDs are handled correctly (since the name is hardcoded in the converters)
118  from TrkEventCnvTools.TrkEventCnvToolsConfig import TrkEventCnvSuperToolCfg
119  acc.merge(TrkEventCnvSuperToolCfg(configFlags))
120  if configFlags.Detector.GeometryITk:
121  from OverlayCopyAlgs.OverlayCopyAlgsConfig import CopyITkTrackCollectionsCfg, CopyITkPixelClusterContainerCfg, CopyITkStripClusterContainerCfg
122  acc.merge(CopyITkTrackCollectionsCfg(configFlags))
123  acc.merge(CopyITkPixelClusterContainerCfg(configFlags))
124  acc.merge(CopyITkStripClusterContainerCfg(configFlags))
125  else:
126  from OverlayCopyAlgs.OverlayCopyAlgsConfig import CopyTrackCollectionsCfg,CopyPixelClusterContainerCfg, CopySCT_ClusterContainerCfg,\
127  CopyTRT_DriftCircleContainerCfg
128  acc.merge(CopyTrackCollectionsCfg(configFlags))
129  acc.merge(CopyPixelClusterContainerCfg(configFlags))
130  acc.merge(CopySCT_ClusterContainerCfg(configFlags))
131  acc.merge(CopyTRT_DriftCircleContainerCfg(configFlags))
132 
133  # Add in-file MetaData
134  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
135  if configFlags.Output.doWriteRDO:
136  acc.merge(SetupMetaDataForStreamCfg(configFlags, "RDO"))
137  if configFlags.Output.doWriteRDO_SGNL:
138  acc.merge(SetupMetaDataForStreamCfg(configFlags, "RDO_SGNL"))
139 
140  return acc
python.LArDigitizationConfig.LArOverlayCfg
def LArOverlayCfg(flags, **kwargs)
Definition: LArDigitizationConfig.py:276
BCMOverlayConfig.BCMOverlayCfg
def BCMOverlayCfg(flags)
Definition: BCMOverlayConfig.py:94
python.DetectorConfigFlags.getEnabledDetectors
def getEnabledDetectors(flags, geometry=False)
Definition: DetectorConfigFlags.py:144
python.OverlayCopyAlgsConfig.CopyMcEventCollectionCfg
def CopyMcEventCollectionCfg(flags, name="CopyMcEventCollection", **kwargs)
Definition: OverlayCopyAlgsConfig.py:159
python.OverlayCopyAlgsConfig.CopyPixelClusterContainerCfg
def CopyPixelClusterContainerCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:406
python.OverlayCopyAlgsConfig.CopyITkPixelClusterContainerCfg
def CopyITkPixelClusterContainerCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:418
TTL1OverlayConfig.LArTTL1OverlayCfg
def LArTTL1OverlayCfg(flags, name="LArTTL1Overlay", **kwargs)
Definition: TTL1OverlayConfig.py:13
python.PerfMonCompsConfig.PerfMonMTSvcCfg
def PerfMonMTSvcCfg(flags, **kwargs)
A minimal new-style configuration for PerfMonMTSvc.
Definition: PerfMonCompsConfig.py:10
python.OverlayCopyAlgsConfig.CopyCaloCalibrationHitContainersCfg
def CopyCaloCalibrationHitContainersCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:382
python.OverlaySteering.OverlayMainContentCfg
def OverlayMainContentCfg(configFlags)
Definition: OverlaySteering.py:29
python.OverlayCopyAlgsConfig.CopyPileupParticleTruthInfoCfg
def CopyPileupParticleTruthInfoCfg(flags, name="CopyPileupParticleTruthInfo", **kwargs)
Definition: OverlayCopyAlgsConfig.py:133
python.OverlayCopyAlgsConfig.CopySCT_ClusterContainerCfg
def CopySCT_ClusterContainerCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:429
python.OverlayCopyAlgsConfig.CopyITkTrackCollectionsCfg
def CopyITkTrackCollectionsCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:518
TileDigitizationConfig.TileOverlayTriggerDigitizationCfg
def TileOverlayTriggerDigitizationCfg(flags)
Definition: TileDigitizationConfig.py:29
ITkStripOverlayConfig.ITkStripOverlayCfg
def ITkStripOverlayCfg(flags)
Definition: ITkStripOverlayConfig.py:80
python.OverlayCopyAlgsConfig.CopyTrackCollectionsCfg
def CopyTrackCollectionsCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:492
python.OverlayCopyAlgsConfig.CopyTRT_DriftCircleContainerCfg
def CopyTRT_DriftCircleContainerCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:453
python.TrkEventCnvToolsConfig.TrkEventCnvSuperToolCfg
def TrkEventCnvSuperToolCfg(flags, name='EventCnvSuperTool', **kwargs)
Definition: TrkEventCnvToolsConfig.py:51
python.OverlayCopyAlgsConfig.CopyTrackRecordCollectionsCfg
def CopyTrackRecordCollectionsCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:465
python.DigitizationParametersConfig.writeDigitizationParameters
def writeDigitizationParameters(flags)
Definition: DigitizationParametersConfig.py:96
TTL1OverlayConfig.TileTTL1OverlayCfg
def TileTTL1OverlayCfg(flags, name="TileTTL1Overlay", **kwargs)
Definition: TTL1OverlayConfig.py:51
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:259
python.OverlayCopyAlgsConfig.CopyITkStripClusterContainerCfg
def CopyITkStripClusterContainerCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:441
PixelOverlayConfig.PixelOverlayCfg
def PixelOverlayCfg(flags)
Definition: PixelOverlayConfig.py:92
python.LArDigitizationConfig.LArSuperCellOverlayCfg
def LArSuperCellOverlayCfg(flags, **kwargs)
Definition: LArDigitizationConfig.py:398
python.MuonOverlayConfig.MuonOverlayCfg
def MuonOverlayCfg(configFlags)
Definition: MuonOverlayConfig.py:2
SCTOverlayConfig.SCTOverlayCfg
def SCTOverlayCfg(flags)
Definition: SCTOverlayConfig.py:95
TileDigitizationConfig.TileDigitizationCfg
def TileDigitizationCfg(flags)
Definition: TileDigitizationConfig.py:46
TRTOverlayConfig.TRTOverlayCfg
def TRTOverlayCfg(flags)
Definition: TRTOverlayConfig.py:118
python.OverlaySteering.OverlayMainCfg
def OverlayMainCfg(configFlags)
Definition: OverlaySteering.py:19
BeamEffectsAlgConfig.BeamSpotReweightingAlgCfg
def BeamSpotReweightingAlgCfg(flags, name="BeamSpotReweightingAlg", **kwargs)
Definition: BeamEffectsAlgConfig.py:174
python.OverlayCopyAlgsConfig.CopyJetTruthInfoCfg
def CopyJetTruthInfoCfg(flags, **kwargs)
Definition: OverlayCopyAlgsConfig.py:104
python.xAODEventInfoCnvConfig.EventInfoOverlayCfg
def EventInfoOverlayCfg(flags, **kwargs)
Definition: xAODEventInfoCnvConfig.py:75
PLR_OverlayConfig.PLR_OverlayCfg
def PLR_OverlayCfg(flags)
Definition: PLR_OverlayConfig.py:75
ITkPixelOverlayConfig.ITkPixelOverlayCfg
def ITkPixelOverlayCfg(flags)
Definition: ITkPixelOverlayConfig.py:80
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:219
HGTD_OverlayConfig.HGTD_OverlayCfg
def HGTD_OverlayCfg(flags)
Definition: HGTD_OverlayConfig.py:70
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:69