2 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 print(
"Scheduling the ACTS Job Option for ITk Track Reconstruction")
7 if flags.Tracking.doITkFastTracking:
8 print(
"- Configuration requested: Fast Tracking")
13 from InDetConfig.ITkActsHelpers
import extractTrackingPasses
16 previousExtension =
None
21 InputCombinedITkTracks = []
24 trackParticleContainerName =
"InDetTrackParticles"
25 primaryVertices =
"PrimaryVertices"
28 from InDetConfig.ITkActsHelpers
import isPrimaryPass
29 for currentFlags
in scheduledTrackingPasses:
31 print(f
"---- Preparing scheduling of algorithms for tracking pass: {currentFlags.Tracking.ActiveConfig.extension}")
32 print(f
"---- - Is primary pass: {isPrimaryPass(currentFlags)}")
33 from TrkConfig.TrackingPassFlags
import printActiveConfig
38 from InDetConfig.ITkActsDataPreparationConfig
import ITkActsDataPreparationCfg
40 previousExtension = previousExtension))
44 from InDetConfig.ITkActsPatternRecognitionConfig
import ITkActsTrackReconstructionCfg
46 previousExtension = previousExtension))
49 previousExtension = currentFlags.Tracking.ActiveConfig.extension
50 if not currentFlags.Tracking.ActiveConfig.storeSeparateContainer
or isPrimaryPass(currentFlags):
51 acts_tracks = f
"{currentFlags.Tracking.ActiveConfig.extension}Tracks" if not currentFlags.Acts.doAmbiguityResolution
else f
"{currentFlags.Tracking.ActiveConfig.extension}ResolvedTracks"
52 InputCombinedITkTracks.append(acts_tracks)
56 print(f
"Creating track particle collection '{trackParticleContainerName}' from combination of following track collection:")
57 for trackCollection
in InputCombinedITkTracks:
58 print(f
'- {trackCollection}')
65 persistifyCollection =
True
66 particleCollection = trackParticleContainerName
67 perigeeExpression = flags.Tracking.perigeeExpression
68 if flags.Tracking.perigeeExpression ==
"Vertex":
70 persistifyCollection =
False
71 particleCollection = f
"{trackParticleContainerName}Temporary"
72 perigeeExpression =
"BeamLine"
75 from InDetConfig.ITkActsParticleCreationConfig
import ITkActsTrackParticleCreationCfg
77 TrackContainers = InputCombinedITkTracks,
78 TrackParticleContainer = particleCollection,
79 persistifyCollection = persistifyCollection,
80 PerigeeExpression = perigeeExpression))
83 if flags.Tracking.doVertexFinding:
84 from InDetConfig.ActsPriVxFinderConfig
import primaryVertexFindingCfg
86 name =
"ActsPriVxFinderAlg",
87 TracksName = particleCollection,
88 vxCandidatesOutputName = primaryVertices))
96 if flags.Tracking.perigeeExpression ==
"Vertex":
97 assert flags.Tracking.doVertexFinding, \
98 f
"Requested the computation of track particles wrt but flags.Tracking.doVertexFinding is set to {flags.Tracking.doVertexFinding}"
99 print(
'Requesting to compute the track particle collection wrt the Vertex')
101 TrackContainers = InputCombinedITkTracks,
102 TrackParticleContainer = trackParticleContainerName))
105 print(
'Starting Post-Processing')
110 if flags.Tracking.writeExtendedSi_PRDInfo:
118 generatedTrackParticleCollections = [
"InDetTrackParticles"]
119 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
120 from InDetConfig.ITkActsHelpers
import getListOfGeneratedTrackParticles
127 from InDetConfig.InDetPrepRawDataToxAODConfig
import ITkActsPrepDataToxAODCfg
129 TrackParticles = generatedTrackParticleCollections))
132 from ActsConfig.ActsObjectDecorationConfig
import ActsTrackStateOnSurfaceDecoratorAlgCfg
134 name=f
"Acts{trackParticleContainerName}StateOnSurfaceDecoratorAlg",
135 TrackParticles=trackParticleContainerName))
138 for currentFlags
in scheduledTrackingPasses:
140 from InDetConfig.ITkActsParticleCreationConfig
import ITkActsTrackParticlePersistificationCfg
147 if flags.Tracking.writeExtendedSi_PRDInfo:
148 from ActsConfig.ActsObjectDecorationConfig
import ActsTrackStateOnSurfaceDecoratorAlgCfg
150 if currentFlags.Tracking.ActiveConfig.storeSiSPSeededTracks:
151 TrackParticleCollectionForMsos = f
'SiSPSeededTracks{currentFlags.Tracking.ActiveConfig.extension}TrackParticles'
153 name=f
"{TrackParticleCollectionForMsos}StateOnSurfaceDecoratorAlg",
154 TrackParticles=TrackParticleCollectionForMsos,
155 PixelMSOSs=f
"SiSPSeededITk{currentFlags.Tracking.ActiveConfig.extension}PixelMSOSs",
156 StripMSOSs=f
"SiSPSeededITk{currentFlags.Tracking.ActiveConfig.extension}StripMSOSs"))
158 if currentFlags.Tracking.ActiveConfig.storeSeparateContainer:
163 TrackParticleCollectionForMsos = f
'InDet{currentFlags.Tracking.ActiveConfig.extension}TrackParticles'
165 name=f
"{TrackParticleCollectionForMsos}StateOnSurfaceDecoratorAlg",
166 TrackParticles=TrackParticleCollectionForMsos,
167 PixelMSOSs=f
"ITk{currentFlags.Tracking.ActiveConfig.extension}PixelMSOSs",
168 StripMSOSs=f
"ITk{currentFlags.Tracking.ActiveConfig.extension}StripMSOSs"))
172 acc.printConfig(withDetails =
False, summariseProps =
False)