ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrackingPassFlags.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from TrkConfig.TrackingPassFlags import createTrackingPassFlags, createITkTrackingPassFlags, createITkFastTrackingPassFlags, createITkConversionTrackingPassFlags, createITkHeavyIonTrackingPassFlags, createITkLargeD0TrackingPassFlags, createITkLowPtTrackingPassFlags
4import AthenaCommon.SystemOfUnits as Units
5
7 icf.doAthenaCluster = False
8 icf.doAthenaSpacePoint = False
9 icf.doAthenaSeed = False
10 icf.doAthenaTrack = False
11 icf.doAthenaAmbiguityResolution = False
12 icf.doActsCluster = False
13 icf.doActsSpacePoint = False
14 icf.doActsSeed = False
15 icf.doActsTrack = False
16 icf.doActsAmbiguityResolution = False
17
19 icf.doActsCluster = True
20 icf.doActsSpacePoint = True
21 icf.doActsSeed = True
22 icf.doActsTrack = True
23 # Ambiguity resolution can follow if ActsTrack is
24 # enabled. Ambi. can be activated/deactivated with
25 # the flag: Acts.doAmbiguityResolution
26 icf.doActsAmbiguityResolution = lambda pcf: pcf.Acts.doAmbiguityResolution
27
29 # ACTS specifc config flags
30 icf.addFlag("isSecondaryPass", False)
31 icf.addFlag("isLargeD0", False)
32 icf.addFlag("autoReverseSearch", False)
33
34 # Custom values for config flags
35 icf.Xi2max = [25]
36 icf.Xi2maxNoAdd = [25]
37
38
39# Main ACTS Tracking pass
41 icf = createITkTrackingPassFlags()
42 icf.extension = "ActsLegacy"
46 return icf
47
48# Main ACTS Tracking pass with Fast Tracking configuration
50 icf = createITkFastTrackingPassFlags()
51 icf.extension = "Acts"
55
56 # Override acts default values
57 icf.Xi2max = [50]
58 icf.Xi2maxNoAdd = [100]
59 return icf
60
61# Main ACTS Tracking pass with Heavy Ion configuration
62# For the current time this is still an hybrid configuration
63# We need to apply additional changes to the JO to support
64# cases where the ambiguity solver is not scheduled
66 icf = createITkHeavyIonTrackingPassFlags()
67 icf.extension = "ActsHeavyIon"
69 icf.doAthenaCluster = True
70 icf.doAthenaToActsCluster = True
71 icf.doActsSpacePoint = True
72 icf.doActsSeed = True
73 icf.doActsTrack = True
74 # If we do not want acts ambi resolution, first do the track convertion
75 # and then the Athena ambi
76 icf.doActsToAthenaTrack = lambda pcf : not pcf.Acts.doAmbiguityResolution
77 icf.doAthenaAmbiguityResolution = lambda pcf : not pcf.Acts.doAmbiguityResolution
78 # If we want acts ambi, first do the ambi and then convert the tracks
79 # without Athena ambi
80 icf.doActsAmbiguityResolution = lambda pcf : pcf.Acts.doAmbiguityResolution
81 icf.doActsToAthenaResolvedTrack = lambda pcf : pcf.Acts.doAmbiguityResolution
82
84 # Deactivate CTIDE processor fit
85 icf.doAmbiguityProcessorTrackFit = False
86 return icf
87
88# Secondary ACTS Tracking pass for Large Radius Tracking
90 icf = createITkLargeD0TrackingPassFlags()
91 icf.extension = "ActsLargeRadius"
95
96 # Override acts default values
97 icf.Xi2max = [75]
98 icf.Xi2maxNoAdd = [100]
99
100 # Mark as secondary pass
101 icf.isSecondaryPass = True
102 # Store sepate container for LRT
103 # In Athena this is handled by the Tracking.storeSeparateLargeD0Container flag
104 icf.storeSeparateContainer = True
105 icf.isLargeD0 = True
106 icf.autoReverseSearch = True
107 return icf
108
109# Secondary ACTS Tracking pass for Conversion tracking
111 icf = createITkConversionTrackingPassFlags()
112 icf.extension = "ActsConversion"
116 # Mark as secondary pass
117 icf.isSecondaryPass = True
118 # Conversion pass is usually merged with main pass
119 icf.storeSeparateContainer = False
120 return icf
121
122# Secondary ACTS Tracking pass for Low pT tracking
124 icf = createITkLowPtTrackingPassFlags()
125 icf.extension = "ActsLowPt"
129 # Mark as secondary pass
130 icf.isSecondaryPass = True
131 # For the time being we do not store sepate containers for this pass (to be revised)
132 # In Athena this is handled by the Tracking.storeSeparateLargeD0Container flag
133 icf.storeSeparateContainer = False
134 return icf
135
136
137# Validation chains
138
140 icf = createITkTrackingPassFlags()
141 icf.extension = "ActsValidateClusters"
143 icf.doActsCluster = True
144 icf.doActsToAthenaCluster = True
145 icf.doAthenaSpacePoint = True
146 icf.doAthenaSeed = True
147 icf.doAthenaTrack = True
148 icf.doAthenaAmbiguityResolution = True
150 return icf
151
154 icf.extension = "ActsValidateLargeRadiusStandalone"
155 icf.isSecondaryPass = False
156 icf.isLargeD0 = True
157 return icf
158
160 icf = createITkTrackingPassFlags()
161 icf.extension = lambda pcf : "ActsValidateTracks" if not pcf.Acts.doAmbiguityResolution else "ActsValidateResolvedTracks"
163 # sequence is still a work in progress
164 # Requires Athena cluster and cluster EDM converter
165 # for adding decoration to cluster objects
166 # It produces Athena TrackCollection EDM
167 icf.doAthenaCluster = True
168 icf.doAthenaToActsCluster = True
169 icf.doActsSpacePoint = True
170 icf.doActsSeed = True
171 icf.doActsTrack = True
172 # If we do not want acts ambi resolution, first do the track convertion
173 # and then the Athena ambi
174 icf.doActsToAthenaTrack = lambda pcf : not pcf.Acts.doAmbiguityResolution
175 icf.doAthenaAmbiguityResolution = lambda pcf : not pcf.Acts.doAmbiguityResolution
176 # If we want acts ambi, first do the ambi and then convert the tracks
177 # without Athena ambi
178 icf.doActsAmbiguityResolution = lambda pcf : pcf.Acts.doAmbiguityResolution
179 icf.doActsToAthenaResolvedTrack = lambda pcf : pcf.Acts.doAmbiguityResolution
180
181 # Deactivate CTIDE processor fit
182 icf.doAmbiguityProcessorTrackFit = False
184 return icf
185
187 icf = createITkTrackingPassFlags()
188 icf.extension = "ActsValidateAmbiguityResolution"
190 # The sequence will schedule Athena algorithms from clustering to
191 # track reconstruction, but not the ambi. resolution
192 # We convert tracks, run the acts ambi. resolution and convert
193 # resolved tracks back to Athena EDM
194 icf.doAthenaCluster = True
195 icf.doAthenaSpacePoint = True
196 icf.doAthenaSeed = True
197 icf.doAthenaTrack = True
198 icf.doAthenaToActsTrack = True
199 icf.doActsAmbiguityResolution = True
200 icf.doActsToAthenaResolvedTrack = True
202 return icf
203
206 icf.extension = "ActsValidateF100"
207 icf.doActsCluster = False
208 icf.doFPGACluster = True
209 icf.doFPGATrackSim = True
210 icf.doActsSpacePoint = True
211 icf.doActsSeed = True
212 icf.doActsTrack = True
213
214 # Override acts default values
215 icf.Xi2max = [50]
216 icf.Xi2maxNoAdd = [100]
217 return icf
218
221 icf.extension = "ActsValidateF150"
222 icf.doActsCluster = False
223 icf.doFPGACluster = True
224 icf.doFPGASeed = True
225 icf.doFPGATrackSim = True
226 icf.doActsSpacePoint = False
227 icf.doActsSeed = False
228 icf.doActsTrack = True
229
230 # Override acts default values
231 icf.Xi2max = [50]
232 icf.Xi2maxNoAdd = [100]
233 return icf
234
235# Main Inner Detector ACTS Tracking pass
237 # flags for ACTS based InnerDetector silicon tracking
238 icf = createTrackingPassFlags()
239 icf.extension = ""
240 icf.Xi2max = 25.0
241 icf.Xi2maxNoAdd = 25.0
242 # ACTS components
243 icf.addFlag("isSecondaryPass", False)
244 icf.addFlag("doActsCluster", True)
245 icf.addFlag("doActsSpacePoint", True)
246 icf.addFlag("doActsSeed", True)
247 icf.addFlag("doActsTrack", True)
248 icf.addFlag("doActsAmbiguityResolution", True)
249
250 # Maximum bin set to 9999 instead of four to prevent out of bounds lookups
251 icf.addFlag("etaBins" , [-1.0, 3.0, 9999.0])
252 icf.addFlag("maxPrimaryImpactList" , [5.0 * Units.mm, 5.0 * Units.mm, 25.0 * Units.mm])
253 return icf