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 # Extension used to name the persistified track particle container
34 # (InDet{extension}TrackParticles) when storeSeparateContainer is
35 # requested. If empty, the pass extension is used.
36 icf.addFlag("storedTrackParticlesExtension", "")
37
38 # Custom values for config flags
39 icf.Xi2max = [25]
40 icf.Xi2maxNoAdd = [25]
41
42
43# Main ACTS Tracking pass
45 icf = createITkTrackingPassFlags()
46 icf.extension = "ActsLegacy"
50 return icf
51
52# Main ACTS Tracking pass with Fast Tracking configuration
54 icf = createITkFastTrackingPassFlags()
55 icf.extension = "Acts"
59
60 # Override acts default values
61 icf.Xi2max = [50]
62 icf.Xi2maxNoAdd = [100]
63 return icf
64
65# Main ACTS Tracking pass with Heavy Ion configuration
66# For the current time this is still an hybrid configuration
67# We need to apply additional changes to the JO to support
68# cases where the ambiguity solver is not scheduled
70 icf = createITkHeavyIonTrackingPassFlags()
71 icf.extension = "ActsHeavyIon"
73 icf.doAthenaCluster = True
74 icf.doAthenaToActsCluster = True
75 icf.doActsSpacePoint = True
76 icf.doActsSeed = True
77 icf.doActsTrack = True
78 # If we do not want acts ambi resolution, first do the track convertion
79 # and then the Athena ambi
80 icf.doActsToAthenaTrack = lambda pcf : not pcf.Acts.doAmbiguityResolution
81 icf.doAthenaAmbiguityResolution = lambda pcf : not pcf.Acts.doAmbiguityResolution
82 # If we want acts ambi, first do the ambi and then convert the tracks
83 # without Athena ambi
84 icf.doActsAmbiguityResolution = lambda pcf : pcf.Acts.doAmbiguityResolution
85 icf.doActsToAthenaResolvedTrack = lambda pcf : pcf.Acts.doAmbiguityResolution
86
88 # Deactivate CTIDE processor fit
89 icf.doAmbiguityProcessorTrackFit = False
90 return icf
91
92# Secondary ACTS Tracking pass for Large Radius Tracking
94 icf = createITkLargeD0TrackingPassFlags()
95 icf.extension = "ActsLargeRadius"
99 # Store the output track particles in InDetLargeD0TrackParticles
100 # (instead of InDetActsLargeRadiusTrackParticles) so that downstream
101 # LRT clients can rely on the same container name as in Run 3
102 icf.storedTrackParticlesExtension = "LargeD0"
103
104 # Override acts default values
105 icf.Xi2max = [25]
106 icf.Xi2maxNoAdd = [50]
107
108 # Mark as secondary pass
109 icf.isSecondaryPass = True
110 # Store sepate container for LRT
111 # In Athena this is handled by the Tracking.storeSeparateLargeD0Container flag
112 icf.storeSeparateContainer = True
113 icf.isLargeD0 = True
114 icf.autoReverseSearch = True
115 return icf
116
117# Secondary ACTS Tracking pass for Conversion tracking
119 icf = createITkConversionTrackingPassFlags()
120 icf.extension = "ActsConversion"
124 # Mark as secondary pass
125 icf.isSecondaryPass = True
126 # Conversion pass is usually merged with main pass
127 icf.storeSeparateContainer = False
128 return icf
129
130# Secondary ACTS Tracking pass for Low pT tracking
132 icf = createITkLowPtTrackingPassFlags()
133 icf.extension = "ActsLowPt"
137 # Mark as secondary pass
138 icf.isSecondaryPass = True
139 # For the time being we do not store sepate containers for this pass (to be revised)
140 # In Athena this is handled by the Tracking.storeSeparateLargeD0Container flag
141 icf.storeSeparateContainer = False
142 return icf
143
144
145# Validation chains
146
148 icf = createITkTrackingPassFlags()
149 icf.extension = "ActsValidateClusters"
151 icf.doActsCluster = True
152 icf.doActsToAthenaCluster = True
153 icf.doAthenaSpacePoint = True
154 icf.doAthenaSeed = True
155 icf.doAthenaTrack = True
156 icf.doAthenaAmbiguityResolution = True
158 return icf
159
162 icf.extension = "ActsValidateLargeRadiusStandalone"
163 icf.isSecondaryPass = False
164 icf.isLargeD0 = True
165 # Validation pass keeps the default InDet{extension}TrackParticles name
166 icf.storedTrackParticlesExtension = ""
167 return icf
168
170 icf = createITkTrackingPassFlags()
171 icf.extension = lambda pcf : "ActsValidateTracks" if not pcf.Acts.doAmbiguityResolution else "ActsValidateResolvedTracks"
173 # sequence is still a work in progress
174 # Requires Athena cluster and cluster EDM converter
175 # for adding decoration to cluster objects
176 # It produces Athena TrackCollection EDM
177 icf.doAthenaCluster = True
178 icf.doAthenaToActsCluster = True
179 icf.doActsSpacePoint = True
180 icf.doActsSeed = True
181 icf.doActsTrack = True
182 # If we do not want acts ambi resolution, first do the track convertion
183 # and then the Athena ambi
184 icf.doActsToAthenaTrack = lambda pcf : not pcf.Acts.doAmbiguityResolution
185 icf.doAthenaAmbiguityResolution = lambda pcf : not pcf.Acts.doAmbiguityResolution
186 # If we want acts ambi, first do the ambi and then convert the tracks
187 # without Athena ambi
188 icf.doActsAmbiguityResolution = lambda pcf : pcf.Acts.doAmbiguityResolution
189 icf.doActsToAthenaResolvedTrack = lambda pcf : pcf.Acts.doAmbiguityResolution
190
191 # Deactivate CTIDE processor fit
192 icf.doAmbiguityProcessorTrackFit = False
194 return icf
195
197 icf = createITkTrackingPassFlags()
198 icf.extension = "ActsValidateAmbiguityResolution"
200 # The sequence will schedule Athena algorithms from clustering to
201 # track reconstruction, but not the ambi. resolution
202 # We convert tracks, run the acts ambi. resolution and convert
203 # resolved tracks back to Athena EDM
204 icf.doAthenaCluster = True
205 icf.doAthenaSpacePoint = True
206 icf.doAthenaSeed = True
207 icf.doAthenaTrack = True
208 icf.doAthenaToActsTrack = True
209 icf.doActsAmbiguityResolution = True
210 icf.doActsToAthenaResolvedTrack = True
212 return icf
213
216 icf.extension = "ActsValidateF100"
217 icf.doActsCluster = False
218 icf.doFPGACluster = True
219 icf.doFPGATrackSim = True
220 icf.doActsSpacePoint = True
221 icf.doActsSeed = True
222 icf.doActsTrack = True
223
224 # Override acts default values
225 icf.Xi2max = [50]
226 icf.Xi2maxNoAdd = [100]
227 return icf
228
231 icf.extension = "ActsValidateF150"
232 icf.doActsCluster = False
233 icf.doFPGACluster = True
234 icf.doFPGASeed = True
235 icf.doFPGATrackSim = True
236 icf.doActsSpacePoint = False
237 icf.doActsSeed = False
238 icf.doActsTrack = True
239
240 # Override acts default values
241 icf.Xi2max = [50]
242 icf.Xi2maxNoAdd = [100]
243 return icf
244
245# Main Inner Detector ACTS Tracking pass
247 # flags for ACTS based InnerDetector silicon tracking
248 icf = createTrackingPassFlags()
250 icf.extension = ""
251 icf.Xi2max = 25.0
252 icf.Xi2maxNoAdd = 25.0
253 # ACTS components
254 icf.addFlag("doActsCluster", True)
255 icf.addFlag("doActsSpacePoint", True)
256 icf.addFlag("doActsSeed", True)
257 icf.addFlag("doActsTrack", True)
258 icf.addFlag("doActsAmbiguityResolution", True)
259
260 # Maximum bin set to 9999 instead of four to prevent out of bounds lookups
261 icf.addFlag("etaBins" , [-1.0, 3.0, 9999.0])
262 icf.addFlag("maxPrimaryImpactList" , [5.0 * Units.mm, 5.0 * Units.mm, 25.0 * Units.mm])
263 return icf