ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsConfig
python
ActsTrackingPassFlags.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3
from
TrkConfig.TrackingPassFlags
import
createTrackingPassFlags, createITkTrackingPassFlags, createITkFastTrackingPassFlags, createITkConversionTrackingPassFlags, createITkHeavyIonTrackingPassFlags, createITkLargeD0TrackingPassFlags, createITkLowPtTrackingPassFlags
4
from
ActsConfig.ActsConfigFlags
import
SeedingStrategy
5
import
AthenaCommon.SystemOfUnits
as
Units
6
7
def
deactivateAthenaComponents
(icf):
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
19
def
activateActsComponents
(icf):
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
29
def
setActsDefaultTunings
(icf):
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
46
def
createActsLegacyTrackingPassFlags
():
47
icf = createITkTrackingPassFlags()
48
icf.extension =
"ActsLegacy"
49
deactivateAthenaComponents
(icf)
50
activateActsComponents
(icf)
51
setActsDefaultTunings
(icf)
52
return
icf
53
54
# Main ACTS Tracking pass with Fast Tracking configuration
55
def
createActsTrackingPassFlags
():
56
icf = createITkFastTrackingPassFlags()
57
icf.extension =
"Acts"
58
deactivateAthenaComponents
(icf)
59
activateActsComponents
(icf)
60
setActsDefaultTunings
(icf)
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
72
def
createActsHeavyIonTrackingPassFlags
():
73
icf = createITkHeavyIonTrackingPassFlags()
74
icf.extension =
"ActsHeavyIon"
75
deactivateAthenaComponents
(icf)
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
90
setActsDefaultTunings
(icf)
91
# Deactivate CTIDE processor fit
92
icf.doAmbiguityProcessorTrackFit =
False
93
return
icf
94
95
# Secondary ACTS Tracking pass for Large Radius Tracking
96
def
createActsLargeRadiusTrackingPassFlags
():
97
icf = createITkLargeD0TrackingPassFlags()
98
icf.extension =
"ActsLargeRadius"
99
deactivateAthenaComponents
(icf)
100
activateActsComponents
(icf)
101
setActsDefaultTunings
(icf)
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
122
def
createActsConversionTrackingPassFlags
():
123
icf = createITkConversionTrackingPassFlags()
124
icf.extension =
"ActsConversion"
125
deactivateAthenaComponents
(icf)
126
activateActsComponents
(icf)
127
setActsDefaultTunings
(icf)
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
136
def
createActsLowPtTrackingPassFlags
():
137
icf = createITkLowPtTrackingPassFlags()
138
icf.extension =
"ActsLowPt"
139
deactivateAthenaComponents
(icf)
140
activateActsComponents
(icf)
141
setActsDefaultTunings
(icf)
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
152
def
createEFValidateF100TrackingPassFlags
():
153
icf =
createActsTrackingPassFlags
()
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
168
def
createEFValidateF150TrackingPassFlags
():
169
icf =
createActsTrackingPassFlags
()
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
187
def
createACTSInnerDetectorTrackingPassFlags
():
188
# flags for ACTS based InnerDetector silicon tracking
189
icf = createTrackingPassFlags()
190
setActsDefaultTunings
(icf)
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
ActsTrackingPassFlags.createActsLargeRadiusTrackingPassFlags
createActsLargeRadiusTrackingPassFlags()
Definition
ActsTrackingPassFlags.py:96
ActsTrackingPassFlags.activateActsComponents
activateActsComponents(icf)
Definition
ActsTrackingPassFlags.py:19
ActsTrackingPassFlags.createActsHeavyIonTrackingPassFlags
createActsHeavyIonTrackingPassFlags()
Definition
ActsTrackingPassFlags.py:72
ActsTrackingPassFlags.createActsLowPtTrackingPassFlags
createActsLowPtTrackingPassFlags()
Definition
ActsTrackingPassFlags.py:136
ActsTrackingPassFlags.createEFValidateF100TrackingPassFlags
createEFValidateF100TrackingPassFlags()
Definition
ActsTrackingPassFlags.py:152
ActsTrackingPassFlags.createActsConversionTrackingPassFlags
createActsConversionTrackingPassFlags()
Definition
ActsTrackingPassFlags.py:122
ActsTrackingPassFlags.createEFValidateF150TrackingPassFlags
createEFValidateF150TrackingPassFlags()
Definition
ActsTrackingPassFlags.py:168
ActsTrackingPassFlags.deactivateAthenaComponents
deactivateAthenaComponents(icf)
Definition
ActsTrackingPassFlags.py:7
ActsTrackingPassFlags.createACTSInnerDetectorTrackingPassFlags
createACTSInnerDetectorTrackingPassFlags()
Definition
ActsTrackingPassFlags.py:187
ActsTrackingPassFlags.setActsDefaultTunings
setActsDefaultTunings(icf)
Definition
ActsTrackingPassFlags.py:29
ActsTrackingPassFlags.createActsLegacyTrackingPassFlags
createActsLegacyTrackingPassFlags()
Definition
ActsTrackingPassFlags.py:46
ActsTrackingPassFlags.createActsTrackingPassFlags
createActsTrackingPassFlags()
Definition
ActsTrackingPassFlags.py:55
Generated on
for ATLAS Offline Software by
1.17.0