3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.Enums
import Format, MetadataCategory, HIMode
8 Generates configuration of the reconstructions
10 from AthenaCommon.Logging
import logging
11 log = logging.getLogger(
"RecoSteering")
12 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
16 acc.flagPerfmonDomain(
'IO')
17 if flags.Input.Format
is Format.BS:
18 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
21 if flags.Reco.EnableBeamSpotDecoration:
22 from xAODEventInfoCnv.xAODEventInfoCnvConfig
import (
23 EventInfoBeamSpotDecoratorAlgCfg)
25 log.info(
"---------- Configured BS reading")
27 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
30 if "EventInfo" not in flags.Input.Collections:
31 from xAODEventInfoCnv.xAODEventInfoCnvConfig
import (
34 log.info(
"---------- Configured POOL reading")
36 acc.flagPerfmonDomain(
'Truth')
37 if flags.Input.isMC
or flags.Overlay.DataOverlay:
39 if flags.Output.doGEN_AOD2xAOD:
40 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
42 log.info(
"---------- Configured AODtoxAOD Truth Conversion")
44 if flags.Overlay.DataOverlay:
45 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
46 acc.merge(
addToAOD(flags, [f
'xAOD::VertexContainer#{flags.Overlay.BkgPrefix}PrimaryVertices',
47 f
'xAOD::VertexAuxContainer#{flags.Overlay.BkgPrefix}PrimaryVerticesAux.x.y.z']))
54 if not flags.Overlay.DataOverlay:
55 from JetRecConfig.JetRecoSteering
import addTruthPileupJetsToOutputCfg
57 log.info(
"---------- Configured Truth pileup jet writing")
60 acc.flagPerfmonDomain(
'Trigger')
61 if flags.Reco.EnableTrigger:
62 from TriggerJobOpts.TriggerRecoConfig
import TriggerRecoCfg
64 log.info(
"---------- Configured trigger data decoding")
67 acc.flagPerfmonDomain(
'Calo')
68 if flags.Detector.EnableCalo:
69 from CaloRec.CaloRecoConfig
import CaloRecoCfg
71 log.info(
"---------- Configured calorimeter reconstruction")
74 acc.flagPerfmonDomain(
'ID')
75 if flags.Reco.EnableTracking:
76 if flags.Reco.EnableTrackOverlay:
77 from TrackOverlayRec.TrackOverlayRecoConfig
import TrackOverlayRecoCfg
80 from InDetConfig.TrackRecoConfig
import InDetTrackRecoCfg
83 log.info(
"---------- Configured tracking")
86 acc.flagPerfmonDomain(
'HI')
87 if flags.Reco.EnableHI:
88 from HIRecConfig.HIRecConfig
import HIRecCfg
90 log.info(
"---------- Configured Heavy Ion reconstruction")
93 acc.flagPerfmonDomain(
'HGTD')
94 if flags.Reco.EnableHGTDExtension:
95 from HGTD_Config.HGTD_RecoConfig
import HGTD_RecoCfg
97 log.info(
"---------- Configured HGTD track extension")
100 acc.flagPerfmonDomain(
'Muon')
101 if flags.Detector.EnableMuon:
102 from MuonConfig.MuonReconstructionConfig
import MuonReconstructionCfg
104 log.info(
"---------- Configured muon tracking")
107 acc.flagPerfmonDomain(
'EGamma')
108 if flags.Reco.EnableEgamma:
109 from egammaConfig.egammaSteeringConfig
import EGammaSteeringCfg
111 log.info(
"---------- Configured e/gamma")
115 acc.flagPerfmonDomain(
'CaloExtension')
116 if flags.Reco.EnableCaloExtension:
117 from TrackToCalo.CaloExtensionBuilderAlgCfg
import (
118 CaloExtensionBuilderCfg)
120 log.info(
"---------- Configured track calorimeter extension builder")
123 acc.flagPerfmonDomain(
'CombinedMuon')
124 if flags.Reco.EnableCombinedMuon:
125 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import (
126 MuonCombinedReconstructionCfg)
128 log.info(
"---------- Configured combined muon reconstruction")
132 acc.flagPerfmonDomain(
'TrackCellAssociation')
133 if flags.Reco.EnableTrackCellAssociation:
134 from TrackParticleAssociationAlgs.TrackParticleAssociationAlgsConfig
import (
135 TrackParticleCellAssociationCfg)
137 log.info(
"---------- Configured track particle-cell association")
140 acc.flagPerfmonDomain(
'PFlow')
141 if flags.Reco.EnablePFlow:
142 from eflowRec.PFRun3Config
import PFCfg
143 acc.merge(
PFCfg(flags))
144 log.info(
"---------- Configured particle flow")
147 acc.flagPerfmonDomain(
'Isolation')
148 if flags.Reco.EnableIsolation:
149 from IsolationAlgs.IsolationSteeringConfig
import IsolationSteeringCfg
151 log.info(
"---------- Configured isolation")
154 acc.flagPerfmonDomain(
'Jets')
155 if flags.Reco.EnableJet:
156 from JetRecConfig.JetRecoSteering
import JetRecoSteeringCfg
158 log.info(
"---------- Configured Jets")
161 acc.flagPerfmonDomain(
'FTag')
162 if flags.Reco.EnableBTagging:
163 from BTagging.BTagConfig
import BTagRecoSplitCfg
165 log.info(
"---------- Configured btagging")
168 acc.flagPerfmonDomain(
'Tau')
169 if flags.Reco.EnableTau:
170 from tauRec.TauConfig
import TauReconstructionCfg
172 log.info(
"---------- Configured tau reconstruction")
174 if flags.Reco.EnablePFlow:
175 from eflowRec.PFRun3Config
import PFTauFELinkCfg
177 log.info(
"---------- Configured particle flow tau FE linking")
179 acc.flagPerfmonDomain(
'Jets')
180 if flags.Reco.EnableGlobalFELinking:
184 from eflowRec.PFCfg
import PFGlobalFlowElementLinkingCfg
186 log.info(
"---------- Configured particle flow global linking")
189 acc.flagPerfmonDomain(
'MET')
190 if flags.Reco.EnableMet:
191 from METReconstruction.METRecCfg
import METCfg
193 log.info(
"---------- Configured MET")
196 acc.flagPerfmonDomain(
'CaloRings')
197 if flags.Reco.EnableCaloRinger:
198 from CaloRingerAlgs.CaloRingerAlgsConfig
import CaloRingerSteeringCfg
200 log.info(
"---------- Configured Calo Rings")
203 acc.flagPerfmonDomain(
'AFP')
204 if flags.Detector.EnableAFP:
205 from ForwardRec.AFPRecConfig
import AFPRecCfg
207 log.info(
"---------- Configured AFP reconstruction")
210 acc.flagPerfmonDomain(
'Lucid')
211 if flags.Detector.EnableLucid:
212 from ForwardRec.LucidRecConfig
import LucidRecCfg
214 log.info(
"---------- Configured Lucid reconstruction")
217 acc.flagPerfmonDomain(
'ZDC')
218 if flags.Reco.EnableZDC:
219 from ZdcRec.ZdcRecConfig
import ZdcRecCfg
221 log.info(
"---------- Configured ZDC reconstruction")
224 acc.flagPerfmonDomain(
'DQM')
225 if flags.DQ.doMonitoring:
226 from AthenaMonitoring.AthenaMonitoringCfg
import (
227 AthenaMonitoringCfg, AthenaMonitoringPostprocessingCfg)
229 if flags.DQ.doPostProcessing:
231 log.info(
"---------- Configured DQ monitoring")
234 acc.flagPerfmonDomain(
'PostProcessing')
235 if flags.Reco.EnablePostProcessing:
237 log.info(
"---------- Configured post-processing")
240 if flags.Overlay.DataOverlay:
242 if flags.Overlay.DataOverlayConditions:
243 from PyJobTransforms.TransformUtils
import executeFromFragment
247 acc.flagPerfmonDomain(
'IO')
248 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
249 from OutputStreamAthenaPool.OutputStreamConfig
import outputStreamName
251 if flags.Output.doWriteESD:
253 from TrkEventCnvTools.TrkEventCnvToolsConfig
import (
254 TrkEventCnvSuperToolCfg)
262 MetadataCategory.ByteStreamMetaData,
263 MetadataCategory.LumiBlockMetaData,
264 MetadataCategory.TruthMetaData,
265 MetadataCategory.IOVMetaData,
269 log.info(
"ESD ItemList: %s", acc.getEventAlgo(
271 log.info(
"ESD MetadataItemList: %s", acc.getEventAlgo(
273 log.info(
"---------- Configured ESD writing")
275 if flags.Output.doWriteAOD:
282 MetadataCategory.ByteStreamMetaData,
283 MetadataCategory.LumiBlockMetaData,
284 MetadataCategory.TruthMetaData,
285 MetadataCategory.IOVMetaData,
289 log.info(
"AOD ItemList: %s", acc.getEventAlgo(
291 log.info(
"AOD MetadataItemList: %s", acc.getEventAlgo(
293 log.info(
"---------- Configured AOD writing")
295 if flags.Output.doJiveXML:
296 from JiveXML.JiveXMLConfig
import AlgoJiveXMLCfg
298 log.info(
"---------- Configured JiveXML writing")
301 acc.flagPerfmonDomain(
'PerfMon')
302 if flags.PerfMon.doFastMonMT
or flags.PerfMon.doFullMonMT:
303 from PerfMonComps.PerfMonCompsConfig
import PerfMonMTSvcCfg
305 log.info(
"---------- Configured PerfMon")
312 if flags.Reco.PostProcessing.ThinNegativeClusters:
313 from ThinningUtils.ThinNegativeEnergyCaloClustersConfig
import (
314 ThinNegativeEnergyCaloClustersCfg)
316 if flags.Reco.PostProcessing.TRTAloneThinning:
317 from ThinningUtils.ThinTRTStandaloneConfig
import (
318 ThinTRTStandaloneCfg)
320 if flags.Reco.PostProcessing.InDetForwardTrackParticleThinning:
321 from ThinningUtils.ThinInDetForwardTrackParticlesConfig
import (
322 ThinInDetForwardTrackParticlesCfg)
324 if flags.Reco.PostProcessing.GeantTruthThinning:
325 from ThinningUtils.ThinGeantTruthConfig
import (
330 if flags.Tracking.thinInDetClustersOnTrack:
331 from ThinningUtils.ThinInDetClustersConfig
import (
332 ThinInDetClustersCfg)
335 if flags.Output.doWriteAOD
and flags.Reco.HIMode
in [HIMode.UPC, HIMode.HIP]:
336 from HIGlobal.RecordExtraInfoConfig
import addMBTS, addSpacePoints
338 if flags.Reco.HIMode
is HIMode.UPC: