ATLAS Offline Software
Loading...
Searching...
No Matches
C100Config.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2def WriteToAOD(flags, finalTrackParticles = ''): # store xAOD containers in AOD file
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 result = ComponentAccumulator()
5 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
6 from AthenaConfiguration.Enums import MetadataCategory
7
8 result.merge( SetupMetaDataForStreamCfg( flags,"AOD",
9 createMetadata=[
10 MetadataCategory.ByteStreamMetaData,
11 MetadataCategory.LumiBlockMetaData,
12 MetadataCategory.TruthMetaData,
13 MetadataCategory.IOVMetaData,],)
14 )
15
16 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
17 toAOD = [f"xAOD::TrackParticleContainer#{finalTrackParticles}",f"xAOD::TrackParticleAuxContainer#{finalTrackParticles}Aux."]
18 if flags.Trigger.FPGATrackSim.writeClustersToAOD:
19 toAOD += ["xAOD::PixelClusterContainer#ITkPixelClusters","xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.",
20 "xAOD::StripClusterContainer#ITkStripClusters","xAOD::StripClusterAuxContainer#ITkStripClustersAux."]
21 result.merge(addToAOD(flags, toAOD))
22
23 return result
24
25if __name__ == "__main__":
26 from AthenaConfiguration.AllConfigFlags import initConfigFlags
27 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
28
29 TrackParticlePrefix="ActsFast"
30
31 flags = initConfigFlags()
32 from ActsConfig.ActsCIFlags import actsLegacyWorkflowFlags
33 actsLegacyWorkflowFlags(flags)
34
35 # IDTPM flags
36 from InDetTrackPerfMon.InDetTrackPerfMonFlags import initializeIDTPMConfigFlags, initializeIDTPMTrkAnaConfigFlags
37 flags = initializeIDTPMConfigFlags(flags)
38
39 flags.fillFromArgs()
40 flags = initializeIDTPMTrkAnaConfigFlags(flags) # should run after `fillFromArgs`
41
42
43 flags.PhysVal.IDTPM.TrkAnaEF.TrigTrkKey = f"{TrackParticlePrefix}TrackParticles"
44 if not flags.Trigger.FPGATrackSim.writeClustersToAOD:
45 flags.PhysVal.IDTPM.TrkAnaDoubleRatio.TrigTrkKey = f"{TrackParticlePrefix}TrackParticles"
46
47 flags.Debug.DumpEvtStore=True
48 flags.Concurrency.NumThreads=0
49 flags.Concurrency.NumConcurrentEvents=0
50 flags.Concurrency.NumProcs=0
51
52 flags.lock()
53 flags = flags.cloneAndReplace("Tracking.ActiveConfig", "Tracking.ITkMainPass", keepOriginal=True)
54 flags.dump()
55
56 acc=MainServicesCfg(flags)
57
58
59 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
60 acc.merge(PoolReadCfg(flags))
61
62 if flags.Input.isMC:
63 from xAODTruthCnv.xAODTruthCnvConfig import GEN_AOD2xAODCfg
64 acc.merge(GEN_AOD2xAODCfg(flags))
65
66 from JetRecConfig.JetRecoSteering import addTruthPileupJetsToOutputCfg # TO DO: check if this is indeed necessary for pileup samples
67 acc.merge(addTruthPileupJetsToOutputCfg(flags))
68
69 if flags.Detector.EnableCalo:
70 from CaloRec.CaloRecoConfig import CaloRecoCfg
71 acc.merge(CaloRecoCfg(flags))
72
73 if not flags.Reco.EnableTrackOverlay:
74 from InDetConfig.TrackRecoConfig import InDetTrackRecoCfg
75 acc.merge(InDetTrackRecoCfg(flags))
76 from InDetConfig.InDetPrepRawDataToxAODConfig import TruthParticleIndexDecoratorAlgCfg
77 acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
78
79 from FPGATrackSimConfTools.FPGATrackSimDataPrepConfig import FPGATrackSimDataPrepConnectToFastTracking
80 acc.merge(FPGATrackSimDataPrepConnectToFastTracking(flags, FinalTracks=f"{TrackParticlePrefix}"))
81
82 if flags.Trigger.FPGATrackSim.writeClustersToAOD:
83 acc.merge(WriteToAOD(flags, finalTrackParticles=f"{TrackParticlePrefix}TrackParticles"))
84 else:
85 # IDTPM running
86 from InDetTrackPerfMon.InDetTrackPerfMonConfig import InDetTrackPerfMonCfg
87 acc.merge( InDetTrackPerfMonCfg(flags) )
88
89 acc.store(open('AnalysisConfig.pkl','wb'))
90 statusCode = acc.run(flags.Exec.MaxEvents)
91 assert statusCode.isSuccess() is True, "Application execution did not succeed"
WriteToAOD(flags, finalTrackParticles='')
Definition C100Config.py:2