8 print(
"Scheduling the ACTS Job Option for ITk Track Reconstruction")
9 if flags.Tracking.doITkFastTracking:
10 print(
"- Configuration requested: Fast Tracking")
15 from InDetConfig.ITkActsHelpers
import extractTrackingPasses
18 previousExtension =
None
23 InputCombinedITkTracks = []
26 trackParticleContainerName =
"InDetTrackParticles"
27 primaryVertices =
"PrimaryVertices"
30 from InDetConfig.ITkActsHelpers
import isPrimaryPass
31 for currentFlags
in scheduledTrackingPasses:
33 print(f
"---- Preparing scheduling of algorithms for tracking pass: {currentFlags.Tracking.ActiveConfig.extension}")
34 print(f
"---- - Is primary pass: {isPrimaryPass(currentFlags)}")
35 from TrkConfig.TrackingPassFlags
import printActiveConfig
40 from InDetConfig.ITkActsDataPreparationConfig
import ITkActsDataPreparationCfg
42 previousExtension = previousExtension))
46 from InDetConfig.ITkActsPatternRecognitionConfig
import ITkActsTrackReconstructionCfg
48 previousExtension = previousExtension))
51 previousExtension = currentFlags.Tracking.ActiveConfig.extension
52 if not currentFlags.Tracking.ActiveConfig.storeSeparateContainer
or isPrimaryPass(currentFlags):
53 acts_tracks = f
"{currentFlags.Tracking.ActiveConfig.extension}Tracks" if not currentFlags.Acts.doAmbiguityResolution
else f
"{currentFlags.Tracking.ActiveConfig.extension}ResolvedTracks"
54 InputCombinedITkTracks.append(acts_tracks)
58 print(f
"Creating track particle collection '{trackParticleContainerName}' from combination of following track collection:")
59 for trackCollection
in InputCombinedITkTracks:
60 print(f
'- {trackCollection}')
67 persistifyCollection =
True
68 particleCollection = trackParticleContainerName
69 perigeeExpression = flags.Tracking.perigeeExpression
70 if flags.Tracking.perigeeExpression ==
"Vertex":
72 persistifyCollection =
False
73 particleCollection = f
"{trackParticleContainerName}Temporary"
74 perigeeExpression =
"BeamLine"
77 from InDetConfig.ITkActsParticleCreationConfig
import ITkActsTrackParticleCreationCfg
79 TrackContainers = InputCombinedITkTracks,
80 TrackParticleContainer = particleCollection,
81 persistifyCollection = persistifyCollection,
82 PerigeeExpression = perigeeExpression))
85 if flags.Tracking.doVertexFinding:
86 from InDetConfig.ActsPriVxFinderConfig
import primaryVertexFindingCfg
88 name =
"ActsPriVxFinderAlg",
89 TracksName = particleCollection,
90 vxCandidatesOutputName = primaryVertices))
98 if flags.Tracking.perigeeExpression ==
"Vertex":
99 assert flags.Tracking.doVertexFinding, \
100 f
"Requested the computation of track particles wrt but flags.Tracking.doVertexFinding is set to {flags.Tracking.doVertexFinding}"
101 print(
'Requesting to compute the track particle collection wrt the Vertex')
103 TrackContainers = InputCombinedITkTracks,
104 TrackParticleContainer = trackParticleContainerName))
107 print(
'Starting Post-Processing')
110 if flags.Tracking.writeExtendedSi_PRDInfo:
115 from InDetConfig.InDetPrepRawDataToxAODConfig
import ITkActsPrepDataToxAODCfg
119 from ActsConfig.ActsObjectDecorationConfig
import ActsTrackStateOnSurfaceDecoratorAlgCfg
121 name=f
"Acts{trackParticleContainerName}StateOnSurfaceDecoratorAlg",
122 TrackParticles=trackParticleContainerName))
125 for currentFlags
in scheduledTrackingPasses:
127 from InDetConfig.ITkActsParticleCreationConfig
import ITkActsTrackParticlePersistificationCfg
134 if flags.Tracking.writeExtendedSi_PRDInfo:
135 from ActsConfig.ActsObjectDecorationConfig
import ActsTrackStateOnSurfaceDecoratorAlgCfg
137 if currentFlags.Tracking.ActiveConfig.storeSiSPSeededTracks:
138 TrackParticleCollectionForMsos = f
'SiSPSeededTracks{currentFlags.Tracking.ActiveConfig.extension}TrackParticles'
140 name=f
"{TrackParticleCollectionForMsos}StateOnSurfaceDecoratorAlg",
141 TrackParticles=TrackParticleCollectionForMsos,
142 PixelMSOSs=f
"SiSPSeededITk{currentFlags.Tracking.ActiveConfig.extension}PixelMSOSs",
143 StripMSOSs=f
"SiSPSeededITk{currentFlags.Tracking.ActiveConfig.extension}StripMSOSs"))
145 if currentFlags.Tracking.ActiveConfig.storeSeparateContainer:
150 TrackParticleCollectionForMsos = f
'InDet{currentFlags.Tracking.ActiveConfig.extension}TrackParticles'
152 name=f
"{TrackParticleCollectionForMsos}StateOnSurfaceDecoratorAlg",
153 TrackParticles=TrackParticleCollectionForMsos,
154 PixelMSOSs=f
"ITk{currentFlags.Tracking.ActiveConfig.extension}PixelMSOSs",
155 StripMSOSs=f
"ITk{currentFlags.Tracking.ActiveConfig.extension}StripMSOSs"))
159 acc.printConfig(withDetails =
False, summariseProps =
False)