ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrackingPassFlags.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from TrkConfig.TrackingPassFlags import createTrackingPassFlags, createITkTrackingPassFlags, createITkFastTrackingPassFlags, createITkConversionTrackingPassFlags, createITkHeavyIonTrackingPassFlags, createITkLargeD0TrackingPassFlags, createITkLowPtTrackingPassFlags
4from ActsConfig.ActsConfigFlags import SeedingStrategy
5import AthenaCommon.SystemOfUnits as Units
6
8 icf.doAthenaCluster = False
9 icf.doAthenaSpacePoint = False
10 icf.doAthenaSeed = False
11 icf.doAthenaTrack = False
12 icf.doAthenaAmbiguityResolution = False
13 icf.doActsCluster = False
14 icf.doActsSpacePoint = False
15 icf.doActsSeed = False
16 icf.doActsTrack = False
17 icf.doActsAmbiguityResolution = False
18
20 icf.doActsCluster = True
21 icf.doActsSpacePoint = True
22 icf.doActsSeed = True
23 icf.doActsTrack = True
24 # Ambiguity resolution can follow if ActsTrack is
25 # enabled. Ambi. can be activated/deactivated with
26 # the flag: Acts.doAmbiguityResolution
27 icf.doActsAmbiguityResolution = lambda pcf: pcf.Acts.doAmbiguityResolution
28
30 # ACTS specifc config flags
31 icf.addFlag("isSecondaryPass", False)
32 icf.addFlag("isLargeD0", False)
33 icf.addFlag("autoReverseSearch", False)
34 icf.addFlag("SeedingStrategy", SeedingStrategy.GridTriplet, type=SeedingStrategy)
35 # Extension used to name the persistified track particle container
36 # (InDet{extension}TrackParticles) when storeSeparateContainer is
37 # requested. If empty, the pass extension is used.
38 icf.addFlag("storedTrackParticlesExtension", "")
39
40 # Custom values for config flags
41 icf.Xi2max = [25]
42 icf.Xi2maxNoAdd = [25]
43
44
45# Main ACTS Tracking pass
47 icf = createITkTrackingPassFlags()
48 icf.extension = "ActsLegacy"
52 return icf
53
54# Main ACTS Tracking pass with Fast Tracking configuration
56 icf = createITkFastTrackingPassFlags()
57 icf.extension = "Acts"
61
62 # Override acts default values
63 icf.Xi2max = [50]
64 icf.Xi2maxNoAdd = [100]
65 icf.useITkStripSeeding = False
66 return icf
67
68# Main ACTS Tracking pass with Heavy Ion configuration
69# For the current time this is still an hybrid configuration
70# We need to apply additional changes to the JO to support
71# cases where the ambiguity solver is not scheduled
73 icf = createITkHeavyIonTrackingPassFlags()
74 icf.extension = "ActsHeavyIon"
76 icf.doAthenaCluster = True
77 icf.doAthenaToActsCluster = True
78 icf.doActsSpacePoint = True
79 icf.doActsSeed = True
80 icf.doActsTrack = True
81 # If we do not want acts ambi resolution, first do the track convertion
82 # and then the Athena ambi
83 icf.doActsToAthenaTrack = lambda pcf : not pcf.Acts.doAmbiguityResolution
84 icf.doAthenaAmbiguityResolution = lambda pcf : not pcf.Acts.doAmbiguityResolution
85 # If we want acts ambi, first do the ambi and then convert the tracks
86 # without Athena ambi
87 icf.doActsAmbiguityResolution = lambda pcf : pcf.Acts.doAmbiguityResolution
88 icf.doActsToAthenaResolvedTrack = lambda pcf : pcf.Acts.doAmbiguityResolution
89
91 # Deactivate CTIDE processor fit
92 icf.doAmbiguityProcessorTrackFit = False
93 return icf
94
95# Secondary ACTS Tracking pass for Large Radius Tracking
97 icf = createITkLargeD0TrackingPassFlags()
98 icf.extension = "ActsLargeRadius"
102 icf.useITkPixelSeeding = False
103 # Store the output track particles in InDetLargeD0TrackParticles
104 # (instead of InDetActsLargeRadiusTrackParticles) so that downstream
105 # LRT clients can rely on the same container name as in Run 3
106 icf.storedTrackParticlesExtension = "LargeD0"
107
108 # Override acts default values
109 icf.Xi2max = [25]
110 icf.Xi2maxNoAdd = [50]
111
112 # Mark as secondary pass
113 icf.isSecondaryPass = True
114 # Store sepate container for LRT
115 # In Athena this is handled by the Tracking.storeSeparateLargeD0Container flag
116 icf.storeSeparateContainer = True
117 icf.isLargeD0 = True
118 icf.autoReverseSearch = True
119 return icf
120
121# Secondary ACTS Tracking pass for Conversion tracking
123 icf = createITkConversionTrackingPassFlags()
124 icf.extension = "ActsConversion"
128 icf.useITkPixelSeeding = False
129 # Mark as secondary pass
130 icf.isSecondaryPass = True
131 # Conversion pass is usually merged with main pass
132 icf.storeSeparateContainer = False
133 return icf
134
135# Secondary ACTS Tracking pass for Low pT tracking
137 icf = createITkLowPtTrackingPassFlags()
138 icf.extension = "ActsLowPt"
142 # Mark as secondary pass
143 icf.isSecondaryPass = True
144 # For the time being we do not store sepate containers for this pass (to be revised)
145 # In Athena this is handled by the Tracking.storeSeparateLargeD0Container flag
146 icf.storeSeparateContainer = False
147 return icf
148
149
150# Validation chains
151
154 icf.extension = "ActsValidateF100"
155 icf.doActsCluster = False
156 icf.doFPGACluster = True
157 icf.doFPGATrackSim = True
158 icf.doActsSpacePoint = True
159 icf.doActsSeed = True
160 icf.doActsTrack = True
161
162 # Override acts default values
163 icf.Xi2max = [50]
164 icf.Xi2maxNoAdd = [100]
165 icf.useITkStripSeeding = False
166 return icf
167
170 icf.extension = "ActsValidateF150"
171 icf.doActsCluster = False
172 icf.doFPGACluster = True
173 icf.doFPGASeed = True
174 icf.doFPGATrackSim = True
175 icf.doActsSpacePoint = False
176 icf.doActsSeed = False
177 icf.doActsTrack = True
178
179 # Override acts default values
180 icf.Xi2max = [50]
181 icf.Xi2maxNoAdd = [100]
182 icf.SeedingStrategy = SeedingStrategy.F150
183 icf.useITkStripSeeding = False
184 return icf
185
186# Main Inner Detector ACTS Tracking pass
188 # flags for ACTS based InnerDetector silicon tracking
189 icf = createTrackingPassFlags()
191 icf.extension = ""
192 icf.Xi2max = 25.0
193 icf.Xi2maxNoAdd = 25.0
194 # ACTS components
195 icf.addFlag("doActsCluster", True)
196 icf.addFlag("doActsSpacePoint", True)
197 icf.addFlag("doActsSeed", True)
198 icf.addFlag("doActsTrack", True)
199 icf.addFlag("doActsAmbiguityResolution", True)
200
201 # Maximum bin set to 9999 instead of four to prevent out of bounds lookups
202 icf.addFlag("etaBins" , [-1.0, 3.0, 9999.0])
203 icf.addFlag("maxPrimaryImpactList" , [5.0 * Units.mm, 5.0 * Units.mm, 25.0 * Units.mm])
204 return icf