52 if len(flags.Tracking.recoChain) != 1:
53 raise ValueError(f
"Conflicting reco configuration: Tracking.recoChain should have only one element but we found {flags.Tracking.recoChain}")
56 from TrkConfig.TrkConfigFlags
import ITkPrimaryPassConfig
57 if flags.Tracking.ITkPrimaryPassConfig
is ITkPrimaryPassConfig.Acts:
58 if not flags.Tracking.doITkFastTracking:
59 raise ValueError(f
"Main pass is set to Acts Fast Tracking but Tracking.doITkFastTracking is set to {flags.Tracking.doITkFastTracking}")
61 if flags.Tracking.doITkFastTracking:
62 raise ValueError(f
"Main pass is NOT set to Fast Tracking but Tracking.doITkFastTracking is set to {flags.Tracking.doITkFastTracking}")
65 if flags.Acts.doAmbiguityResolution:
66 from ActsConfig.ActsConfigFlags
import AmbiguitySolverMode
69 if flags.Acts.AmbiguitySolverMode
is not AmbiguitySolverMode.OUTSIDE_TF:
70 raise ValueError(f
"Conflicting reco configuration: Acts.doAmbiguityResolution has been requested and this will schedule the ACTS ambiguity solver algorithm, yet the ambiguity mode (set to {flags.Acts.AmbiguitySolverMode}) is not compatible with this.")
74 trackingPasses += [flags.cloneAndReplace(
75 "Tracking.ActiveConfig",
76 f
"Tracking.{flags.Tracking.ITkPrimaryPassConfig.value}Pass")]
79 if flags.Acts.doITkConversion:
81 if not flags.Detector.EnableCalo:
82 raise ValueError(
"Problem in the job configuration: required reconstruction of photon conversion tracks but Calorimeter Detector is not enabled")
83 trackingPasses += [flags.cloneAndReplace(
84 "Tracking.ActiveConfig",
85 "Tracking.ITkActsConversionPass")]
89 trackingPasses += [flags.cloneAndReplace(
90 "Tracking.ActiveConfig",
91 "Tracking.ITkActsLargeRadiusPass")]
95 if flags.Acts.doLowPt:
96 trackingPasses += [flags.cloneAndReplace(
97 "Tracking.ActiveConfig",
98 "Tracking.ITkActsLowPtPass")]
100 print(
"List of scheduled passes:")
101 for trackingPass
in trackingPasses:
102 print(f
'- {trackingPass.Tracking.ActiveConfig.extension}')
106 for current_flags
in trackingPasses:
109 if nPrimaryPasses != 1:
110 raise ValueError(f
"Problem in the job configuration: exactly one primary pass is required for a proper configuration, but we found {nPrimaryPasses} instead!")
112 return trackingPasses
115 generateTrackCollections = [
"InDetTrackParticles"]
119 for currentFlags
in scheduledTrackingPasses:
121 if currentFlags.Tracking.ActiveConfig.storeTrackSeeds:
123 generatePixelSegments = currentFlags.Detector.EnableITkPixel
124 generateStripSegments = currentFlags.Detector.EnableITkStrip
127 if currentFlags.Tracking.ActiveConfig.extension ==
"ActsConversion" or currentFlags.Tracking.ActiveConfig.isLargeD0:
128 generatePixelSegments =
False
131 generateStripSegments =
False
133 if generatePixelSegments:
134 generateTrackCollections += [f
'SiSPSeedSegments{currentFlags.Tracking.ActiveConfig.extension}PixelTrackParticles']
135 if generateStripSegments:
136 generateTrackCollections += [f
'SiSPSeedSegments{currentFlags.Tracking.ActiveConfig.extension}StripTrackParticles']
137 if generatePixelSegments
and generateStripSegments:
138 generateTrackCollections += [f
'SiSPSeedSegments{currentFlags.Tracking.ActiveConfig.extension}TrackParticles']
141 if currentFlags.Tracking.ActiveConfig.storeSiSPSeededTracks:
142 generateTrackCollections += [f
'SiSPSeededTracks{currentFlags.Tracking.ActiveConfig.extension}TrackParticles']
147 if currentFlags.Acts.doAmbiguityResolution
and currentFlags.Tracking.ActiveConfig.storeSeparateContainer:
150 print(
'Here is the list of generated track particle collections:')
151 for collection
in generateTrackCollections:
152 print(f
'- {collection}')
154 return generateTrackCollections