4 if not flags.hasCategory(
"Tracking.ActiveConfig"):
8 if flags.Tracking.ActiveConfig.extension
in [
"",
"HeavyIon"]:
11 return f
"ITk{flags.Tracking.ActiveConfig.extension}" == flags.Tracking.ITkPrimaryPassConfig.value
14 if flags.hasCategory(
"Tracking.ActiveConfig")
and flags.Tracking.ActiveConfig.extension
in [
"ActsValidateF100",
"ActsValidateF150"]
and flags.Tracking.doITkFastTracking:
16 return flags.Tracking.doITkFastTracking
and isPrimaryPass(flags)
19 return "Validate" in flags.Tracking.ActiveConfig.extension
25 from TrkConfig.TrkConfigFlags
import ITkPrimaryPassConfig
26 return flags.Tracking.ITkPrimaryPassConfig
in [ITkPrimaryPassConfig.Acts, \
27 ITkPrimaryPassConfig.ActsLegacy, \
28 ITkPrimaryPassConfig.ActsHeavyIon]
33 return flags.Tracking.ITkPrimaryPassConfig.value.replace(
"ITk",
"")
41 if len(flags.Tracking.recoChain) != 1:
42 raise ValueError(f
"Conflicting reco configuration: Tracking.recoChain should have only one element but we found {flags.Tracking.recoChain}")
45 from TrkConfig.TrkConfigFlags
import ITkPrimaryPassConfig
46 if flags.Tracking.ITkPrimaryPassConfig
is ITkPrimaryPassConfig.Acts:
47 if not flags.Tracking.doITkFastTracking:
48 raise ValueError(f
"Main pass is set to Acts Fast Tracking but Tracking.doITkFastTracking is set to {flags.Tracking.doITkFastTracking}")
50 if flags.Tracking.doITkFastTracking:
51 raise ValueError(f
"Main pass is NOT set to Fast Tracking but Tracking.doITkFastTracking is set to {flags.Tracking.doITkFastTracking}")
54 if flags.Acts.doAmbiguityResolution:
55 from ActsConfig.ActsConfigFlags
import AmbiguitySolverMode
58 if flags.Acts.AmbiguitySolverMode
is not AmbiguitySolverMode.OUTSIDE_TF:
59 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.")
63 trackingPasses += [flags.cloneAndReplace(
64 "Tracking.ActiveConfig",
65 f
"Tracking.{flags.Tracking.ITkPrimaryPassConfig.value}Pass")]
68 if flags.Acts.doLargeRadius:
69 trackingPasses += [flags.cloneAndReplace(
70 "Tracking.ActiveConfig",
71 "Tracking.ITkActsLargeRadiusPass")]
74 if flags.Acts.doITkConversion:
76 if not flags.Detector.EnableCalo:
77 raise ValueError(
"Problem in the job configuration: required reconstruction of photon conversion tracks but Calorimeter Detector is not enabled")
78 trackingPasses += [flags.cloneAndReplace(
79 "Tracking.ActiveConfig",
80 "Tracking.ITkActsConversionPass")]
83 if flags.Acts.doLowPt:
84 trackingPasses += [flags.cloneAndReplace(
85 "Tracking.ActiveConfig",
86 "Tracking.ITkActsLowPtPass")]
88 print(
"List of scheduled passes:")
89 for trackingPass
in trackingPasses:
90 print(f
'- {trackingPass.Tracking.ActiveConfig.extension}')
94 for current_flags
in trackingPasses:
97 if nPrimaryPasses != 1:
98 raise ValueError(f
"Problem in the job configuration: exactly one primary pass is required for a proper configuration, but we found {nPrimaryPasses} instead!")
100 return trackingPasses
103 generateTrackCollections = [
"InDetTrackParticles"]
107 for currentFlags
in scheduledTrackingPasses:
109 if currentFlags.Tracking.ActiveConfig.storeTrackSeeds:
111 generatePixelSegments = currentFlags.Detector.EnableITkPixel
112 generateStripSegments = currentFlags.Detector.EnableITkStrip
115 if currentFlags.Tracking.ActiveConfig.extension
in [
"ActsConversion",
"ActsLargeRadius"]:
116 generatePixelSegments =
False
119 generateStripSegments =
False
121 if generatePixelSegments:
122 generateTrackCollections += [f
'SiSPSeedSegments{currentFlags.Tracking.ActiveConfig.extension}PixelTrackParticles']
123 if generateStripSegments:
124 generateTrackCollections += [f
'SiSPSeedSegments{currentFlags.Tracking.ActiveConfig.extension}StripTrackParticles']
125 if generatePixelSegments
and generateStripSegments:
126 generateTrackCollections += [f
'SiSPSeedSegments{currentFlags.Tracking.ActiveConfig.extension}TrackParticles']
129 if currentFlags.Tracking.ActiveConfig.storeSiSPSeededTracks:
130 generateTrackCollections += [f
'SiSPSeededTracks{currentFlags.Tracking.ActiveConfig.extension}TrackParticles']
135 if currentFlags.Acts.doAmbiguityResolution
and currentFlags.Tracking.ActiveConfig.storeSeparateContainer:
136 generateTrackCollections += [f
'InDet{currentFlags.Tracking.ActiveConfig.extension}TrackParticles']
138 print(
'Here is the list of generated track particle collections:')
139 for collection
in generateTrackCollections:
140 print(f
'- {collection}')
142 return generateTrackCollections