ATLAS Offline Software
Loading...
Searching...
No Matches
python.TrkConfigFlags Namespace Reference

Classes

class  PrimaryPassConfig
class  ITkPrimaryPassConfig
class  TrackFitterType
class  KalmanUpdatorType
class  PixelClusterSplittingType
class  TrackingComponent

Functions

 createTrackingConfigFlags ()

Function Documentation

◆ createTrackingConfigFlags()

python.TrkConfigFlags.createTrackingConfigFlags ( )

Definition at line 68 of file TrkConfigFlags.py.

68def createTrackingConfigFlags():
69 icf = AthConfigFlags()
70
71 # Turn running of truth matching on and off (by default on for MC off for data)
72 icf.addFlag("Tracking.doTruth", lambda prevFlags: prevFlags.Input.isMC or
73 (prevFlags.Common.ProductionStep is not ProductionStep.MinbiasPreprocessing and prevFlags.Overlay.DataOverlay))
74
75 # control which fitter to be used
76 icf.addFlag("Tracking.trackFitterType",
77 TrackFitterType.GlobalChi2Fitter, type=TrackFitterType)
78 # control which measurement updator to load as InDetUpdator
79 icf.addFlag("Tracking.kalmanUpdator",
80 KalmanUpdatorType.KalmanUpdatorSMatrix, type=KalmanUpdatorType)
81
82 icf.addFlag("Tracking.materialInteractions", lambda prevFlags:
83 prevFlags.Beam.Type is not BeamType.SingleBeam)
84 # Control which type of particle hypothesis to use for the material interactions
85 # 0=non-interacting,1=electron,2=muon,3=pion,4=kaon,5=proton. See ParticleHypothesis.h for full definition.
86 icf.addFlag("Tracking.materialInteractionsType", lambda prevFlags:
87 2 if prevFlags.Beam.Type is BeamType.Cosmics else 3)
88
89 # Turn on running of Brem Recovery in tracking
90 icf.addFlag("Tracking.doBremRecovery", lambda prevFlags: (
91 prevFlags.Detector.EnableCalo and
92 not (prevFlags.Tracking.PrimaryPassConfig in
93 [PrimaryPassConfig.VtxLumi, PrimaryPassConfig.VtxLumiHeavyIon, PrimaryPassConfig.VtxBeamSpot] or
94 prevFlags.Tracking.doLowMu or
95 prevFlags.Beam.Type is not BeamType.Collisions or
96 not prevFlags.BField.solenoidOn)))
97 icf.addFlag("Tracking.doCaloSeededBrem", lambda prevFlags: (
98 prevFlags.Detector.EnableCalo and prevFlags.Tracking.doBremRecovery))
99 icf.addFlag("Tracking.phiWidthBrem", 0.3)
100 icf.addFlag("Tracking.etaWidthBrem", 0.2)
101 # Use Recover SSS to Calo ROIs
102 icf.addFlag("Tracking.doHadCaloSeededSSS", False)
103 # Use Calo ROIs to seed specific cuts for the ambi
104 icf.addFlag("Tracking.doCaloSeededAmbi", lambda prevFlags:
105 prevFlags.Detector.EnableCalo)
106 # control if the shared hits are recorded in TrackPatricles
107 icf.addFlag("Tracking.doSharedHits", True)
108 # Switch for running TIDE Ambi
109 icf.addFlag("Tracking.doTIDE_Ambi", lambda prevFlags:
110 prevFlags.Beam.Type is not BeamType.Cosmics)
111 # Use simple position and error estimate for on-track pixel cluster
112 icf.addFlag("Tracking.doPixelDigitalClustering", False)
113 # Try to split pixel clusters
114 icf.addFlag("Tracking.doPixelClusterSplitting",
115 lambda prevFlags: prevFlags.Beam.Type is not BeamType.Cosmics)
116 # choose splitter type: NeuralNet or AnalogClus
117 icf.addFlag("Tracking.pixelClusterSplittingType", lambda prevFlags:
118 PixelClusterSplittingType.NeuralNet
119 if prevFlags.GeoModel.Run <= LHCPeriod.Run3
120 else PixelClusterSplittingType.Truth,
121 type=PixelClusterSplittingType)
122 # Cut value for splitting clusters into two parts
123 icf.addFlag("Tracking.pixelClusterSplitProb1",
124 lambda prevFlags: (
125 0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.55))
126 # Cut value for splitting clusters into three parts
127 icf.addFlag("Tracking.pixelClusterSplitProb2",
128 lambda prevFlags: (
129 0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.45))
130 # Skip ambiguity solver in hadronic ROI
131 icf.addFlag("Tracking.doSkipAmbiROI", False)
132
133 # Guaranteed not-subtracted topo clusters even in heavy ions
134 icf.addFlag("Tracking.TopoClusters", "CaloTopoClusters")
135 icf.addFlag("Tracking.EgammaTopoClusters", "egammaTopoClusters")
136 icf.addFlag("Tracking.ForwardTopoClusters",
137 lambda prevFlags: (
138 prevFlags.Egamma.Keys.Internal.EgammaTopoClusters + 'Fwd'))
139
140 # Express track parameters wrt. to : 'BeamLine','BeamSpot','Vertex' (first primary vertex)
141 icf.addFlag("Tracking.perigeeExpression", lambda prevFlags:
142 "Vertex" if (prevFlags.Tracking.PrimaryPassConfig in [
143 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
144 prevFlags.Tracking.ITkPrimaryPassConfig in [
145 ITkPrimaryPassConfig.HeavyIon, ITkPrimaryPassConfig.ActsHeavyIon]
146 )
147 else "BeamLine")
148
149 # to make eta overlap space points in endcap (aligned with search eta neighbour in strip endcaps)
150 icf.addFlag("Tracking.doEndcapEtaOverlapSpacePoint", lambda prevFlags: prevFlags.ITk.doEndcapEtaNeighbour)
151
152 # Tracking passes/configurations scheduled
153
154 def doLargeD0(flags):
155 if flags.GeoModel.Run <= LHCPeriod.Run3:
156 return not ((flags.Beam.Type in
157 [BeamType.SingleBeam, BeamType.Cosmics]) or
158 flags.Tracking.PrimaryPassConfig in [
159 PrimaryPassConfig.HeavyIon,
160 PrimaryPassConfig.UPC,
161 PrimaryPassConfig.HIP,
162 PrimaryPassConfig.VtxLumi,
163 PrimaryPassConfig.VtxLumiHeavyIon,
164 PrimaryPassConfig.VtxBeamSpot,
165 PrimaryPassConfig.HighPileup])
166 else: # LRT disabled by default for Run4 for now
167 return False
168
169 icf.addFlag("Tracking.doLargeD0", doLargeD0)
170 icf.addFlag("Tracking.storeSeparateLargeD0Container", True)
171
172 # Store separate track particles collection reconstructed in regards to the beam line
173 icf.addFlag("Tracking.storeBeamLineTrackParticles", lambda prevFlags: prevFlags.Overlay.DataOverlay)
174
175 # Special configuration for low-mu runs
176 icf.addFlag("Tracking.doLowMu", False)
177 # Turn running of doLowPt second pass on and off
178 icf.addFlag("Tracking.doLowPt",
179 lambda prevFlags: prevFlags.Tracking.doLowMu)
180
181 # Turn on to save the Track Seeds in a xAOD track collecting for development studies
182 icf.addFlag("Tracking.doStoreTrackSeeds", False)
183 # Save SiSP tracks (input to the ambiguity solver)
184 icf.addFlag("Tracking.doStoreSiSPSeededTracks", False)
185 # Turn writing of seed validation ntuple on and off
186 icf.addFlag("Tracking.writeSeedValNtuple", False)
187 # Save xAOD TrackMeasurementValidation + TrackStateValidation containers
188 icf.addFlag("Tracking.writeExtendedSi_PRDInfo", False)
189 icf.addFlag("Tracking.writeExtendedTRT_PRDInfo", False)
190 icf.addFlag("Tracking.PRDInfo.KeepOnlyOnTrackMeasurements", False)
191 icf.addFlag("Tracking.writeExtendedHGTDInfo", False)
192
193 # Only keep entries in xAOD TrackMeasurementValidation + TrackStateValidation containers for tracks passing user cut
194 # Indicate detector technology from which clusters should be thinned
195 icf.addFlag("Tracking.thinPixelClustersOnTrack", False)
196 icf.addFlag("Tracking.thinSCTClustersOnTrack", False)
197 icf.addFlag("Tracking.thinTRTClustersOnTrack", False)
198 icf.addFlag("Tracking.thinInDetClustersOnTrack",
199 lambda prevFlags: (
200 prevFlags.Tracking.thinPixelClustersOnTrack or
201 prevFlags.Tracking.thinSCTClustersOnTrack or
202 prevFlags.Tracking.thinTRTClustersOnTrack ))
203
204 # For cluster thinning (if enabled): list of containers and selection strings used in ThinInDetClustersAlg
205 icf.addFlag("Tracking.thinInDetClustersTrackContainers", ["InDetTrackParticles"])
206 icf.addFlag("Tracking.thinInDetClustersPixelMSOSContainers", ["PixelMSOSs"])
207 icf.addFlag("Tracking.thinInDetClustersSCTMSOSContainers", ["SCT_MSOSs"])
208 icf.addFlag("Tracking.thinInDetClustersTRTMSOSContainers", ["TRT_MSOSs"])
209 icf.addFlag("Tracking.thinInDetClustersSelectionStrings", ["InDetTrackParticles.pt > (1*GeV)"])
210
211 # Toggle track slimming
212 icf.addFlag("Tracking.doSlimming", lambda prevFlags:
213 not (prevFlags.Beam.Type in
214 [BeamType.SingleBeam, BeamType.Cosmics] or
215 prevFlags.Tracking.PrimaryPassConfig in [
216 PrimaryPassConfig.VtxLumi,
217 PrimaryPassConfig.VtxLumiHeavyIon,
218 PrimaryPassConfig.VtxBeamSpot,
219 PrimaryPassConfig.HighPileup]))
220
221
222
223 # The following flags are only used in InDet configurations for now
224 # No corresponding ITk config is available yet
225
226 icf.addFlag("Tracking.useNewParamTRT", lambda prevFlags:
227 prevFlags.Tracking.PrimaryPassConfig is not(
228 PrimaryPassConfig.HeavyIon))
229
230 # --- run back tracking and TRT only in RoI seed regions
231 icf.addFlag("Tracking.BackTracking.doRoISeeded", lambda prevFlags:
232 prevFlags.Detector.EnableCalo and not(
233 prevFlags.Tracking.doLowMu or
234 prevFlags.Tracking.PrimaryPassConfig is (
235 PrimaryPassConfig.HeavyIon) or
236 prevFlags.Beam.Type is BeamType.Cosmics or
237 prevFlags.Tracking.doMinBias))
238
239 # --- defaults for backtracking
240 def BackTrackingMinPt(flags):
241 if flags.Tracking.doMinBias:
242 return 0.4 * Units.GeV * flags.BField.configuredSolenoidFieldScale
243 elif (flags.Tracking.doLowMu or
244 flags.Tracking.PrimaryPassConfig in [
245 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
246 flags.Beam.Type is BeamType.Cosmics):
247 return 1.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
248 else:
249 return 3.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
250 icf.addFlag("Tracking.BackTracking.minPt", BackTrackingMinPt)
251 icf.addFlag("Tracking.BackTracking.TRTSegFinderPtBins", 50)
252 icf.addFlag("Tracking.BackTracking.maxTRTSharedFrac", 0.7)
253 icf.addFlag("Tracking.BackTracking.maxSecondaryImpact", 100.0 * Units.mm)
254 icf.addFlag("Tracking.BackTracking.minClusters", 4)
255 icf.addFlag("Tracking.BackTracking.minSiNotShared", 4)
256 # cut is now on number of shared modules
257 icf.addFlag("Tracking.BackTracking.maxShared", 1)
258 icf.addFlag("Tracking.BackTracking.minTRT", lambda prevFlags:
259 10 if (prevFlags.Tracking.doLowMu or
260 prevFlags.Tracking.PrimaryPassConfig is (
261 PrimaryPassConfig.HeavyIon))
262 else 15)
263 icf.addFlag("Tracking.BackTracking.minTRTPrecFrac", lambda prevFlags:
264 0. if (prevFlags.Tracking.doLowMu or
265 prevFlags.Tracking.PrimaryPassConfig is (
266 PrimaryPassConfig.HeavyIon))
267 else 0.3)
268
269 icf.addFlag("Tracking.BackTracking.maxHoles", lambda prevFlags:
270 2 if (prevFlags.Tracking.doLowMu or
271 prevFlags.Tracking.PrimaryPassConfig is (
272 PrimaryPassConfig.HeavyIon))
273 else 1)
274 icf.addFlag("Tracking.BackTracking.maxPixelHoles", lambda prevFlags:
275 2 if (prevFlags.Tracking.doLowMu or
276 prevFlags.Tracking.PrimaryPassConfig is (
277 PrimaryPassConfig.HeavyIon))
278 else 1)
279 icf.addFlag("Tracking.BackTracking.maxSCTHoles", lambda prevFlags:
280 2 if (prevFlags.Tracking.doLowMu or
281 prevFlags.Tracking.PrimaryPassConfig is (
282 PrimaryPassConfig.HeavyIon))
283 else 1)
284 icf.addFlag("Tracking.BackTracking.maxDoubleHoles", lambda prevFlags:
285 1 if (prevFlags.Tracking.doLowMu or
286 prevFlags.Tracking.PrimaryPassConfig is (
287 PrimaryPassConfig.HeavyIon))
288 else 0)
289 icf.addFlag("Tracking.BackTracking.nHolesMax", 2)
290 icf.addFlag("Tracking.BackTracking.nHolesGapMax", 2)
291
292 # extension finder in back tracking
293 icf.addFlag("Tracking.BackTracking.rejectShortExtensions", lambda prevFlags:
294 not(prevFlags.Beam.Type is BeamType.Cosmics or
295 prevFlags.Tracking.doLowMu or
296 prevFlags.Tracking.PrimaryPassConfig is (
297 PrimaryPassConfig.HeavyIon)))
298 # cut in Si Extensions before fit
299 icf.addFlag("Tracking.BackTracking.SiExtensionCuts", lambda prevFlags:
300 not(prevFlags.Tracking.doLowMu or
301 prevFlags.Tracking.PrimaryPassConfig is (
302 PrimaryPassConfig.HeavyIon)))
303 icf.addFlag("Tracking.BackTracking.minRoIClusterEt", lambda prevFlags:
304 0. if (prevFlags.Tracking.doLowMu or
305 prevFlags.Tracking.PrimaryPassConfig in [
306 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
307 prevFlags.Beam.Type is BeamType.Cosmics or
308 prevFlags.Tracking.doMinBias)
309 else 6.*Units.GeV * prevFlags.BField.configuredSolenoidFieldScale)
310
311 # TRT standalone configuration
312 def TRTStandaloneMinPt(flags):
313 if flags.Tracking.doMinBias:
314 return 0.4 * Units.GeV * flags.BField.configuredSolenoidFieldScale
315 elif flags.Tracking.doLowMu or (
316 flags.Tracking.PrimaryPassConfig is PrimaryPassConfig.HeavyIon):
317 return 1.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
318 else:
319 return 2.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
320 icf.addFlag("Tracking.TRTStandalone.minPt", TRTStandaloneMinPt)
321 icf.addFlag("Tracking.TRTStandalone.minTRTPrecFrac", 0.15)
322 icf.addFlag("Tracking.TRTStandalone.minTRT", 15)
323
324 # Disabled for data-taking up to 2024 included and MC campaigns up to MC23e included
325 icf.addFlag("Tracking.TRTStandalone.startAtOriginalPerigee",
326 lambda prevFlags: (
327 (not prevFlags.Input.isMC and prevFlags.Input.DataYear >= 2025) or
328 (prevFlags.Input.isMC and prevFlags.Input.MCCampaign >= Campaign.MC23g)))
329
330 # Turn on InDetRecStatistics
331 icf.addFlag("Tracking.doStats", False)
332 # Switch for track observer tool
333 icf.addFlag("Tracking.doTIDE_AmbiTrackMonitoring", False)
334 # use beam spot position in pixel NN
335 icf.addFlag("Tracking.useBeamSpotInfoNN", True)
336 # Threshold for NN cut in large D0 tracking for tracks in ambi
337 icf.addFlag("Tracking.nnCutLargeD0Threshold", -1.0)
338 # Use broad cluster errors for Pixel
339 icf.addFlag("Tracking.useBroadPixClusterErrors", False)
340 # Use broad cluster errors for SCT
341 icf.addFlag("Tracking.useBroadSCTClusterErrors", False)
342
343 # Tracking passes/configurations scheduled
344
345 # Turn running of track segment creation in pixel on and off
346 icf.addFlag("Tracking.doTrackSegmentsPixel",
347 lambda prevFlags: (
348 prevFlags.Detector.EnablePixel and (
349 prevFlags.Tracking.doMinBias or
350 prevFlags.Tracking.doLowMu or
351 prevFlags.Beam.Type is BeamType.Cosmics)))
352 # Turn running of track segment creation in SCT on and off
353 icf.addFlag("Tracking.doTrackSegmentsSCT",
354 lambda prevFlags: (
355 prevFlags.Detector.EnableSCT and (
356 prevFlags.Tracking.doLowMu or
357 prevFlags.Beam.Type is BeamType.Cosmics)))
358 # Turn running of track segment creation in TRT on and off
359 icf.addFlag("Tracking.doTrackSegmentsTRT",
360 lambda prevFlags: (
361 prevFlags.Detector.EnableTRT and
362 (prevFlags.Tracking.doLowMu or
363 prevFlags.Beam.Type is BeamType.Cosmics)))
364 # turn on / off TRT extensions
365 icf.addFlag("Tracking.doTRTExtension",
366 lambda prevFlags: prevFlags.Detector.EnableTRT)
367 # control to run TRT Segment finding (do it always after new tracking!)
368 icf.addFlag("Tracking.doTRTSegments",
369 lambda prevFlags: (prevFlags.Detector.EnableTRT and
370 (prevFlags.Tracking.doBackTracking or
371 prevFlags.Tracking.doTRTStandalone)))
372 # Turn running of backtracking on and off
373 icf.addFlag("Tracking.doBackTracking", lambda prevFlags: (
374 prevFlags.Detector.EnableTRT and
375 not(prevFlags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics] or
376 prevFlags.Tracking.PrimaryPassConfig in [
377 PrimaryPassConfig.HeavyIon,
378 PrimaryPassConfig.VtxLumi,
379 PrimaryPassConfig.VtxLumiHeavyIon,
380 PrimaryPassConfig.VtxBeamSpot,
381 PrimaryPassConfig.HighPileup])))
382 # control TRT Standalone
383 icf.addFlag("Tracking.doTRTStandalone", lambda prevFlags: (
384 prevFlags.Detector.EnableTRT and
385 not(prevFlags.Tracking.PrimaryPassConfig in [
386 PrimaryPassConfig.HeavyIon,
387 PrimaryPassConfig.VtxLumi,
388 PrimaryPassConfig.VtxLumiHeavyIon,
389 PrimaryPassConfig.VtxBeamSpot,
390 PrimaryPassConfig.HighPileup])))
391
392 # Turn running of doForwardTracks pass on and off
393 icf.addFlag("Tracking.doForwardTracks", lambda prevFlags: (
394 prevFlags.Detector.EnablePixel and
395 not(prevFlags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics] or
396 prevFlags.Tracking.PrimaryPassConfig in [
397 PrimaryPassConfig.HeavyIon,
398 PrimaryPassConfig.VtxLumi,
399 PrimaryPassConfig.VtxLumiHeavyIon,
400 PrimaryPassConfig.VtxBeamSpot,
401 PrimaryPassConfig.HighPileup] or
402 prevFlags.Tracking.doMinBias or
403 prevFlags.Tracking.doLowMu)))
404
405 def doTrackSegmentsDisappearing(flags):
406 if flags.GeoModel.Run <= LHCPeriod.Run3:
407 return not((flags.Tracking.PrimaryPassConfig is
408 PrimaryPassConfig.HeavyIon) or
409 flags.Beam.Type is BeamType.Cosmics)
410 else: # Disappearing tracks disabled for Run4
411 return False
412 icf.addFlag("Tracking.doTrackSegmentsDisappearing", doTrackSegmentsDisappearing)
413
414 # Turn running of doVeryLowPt third pass on and off
415 icf.addFlag("Tracking.doVeryLowPt", False)
416 # Turn running of doLargeD0 second pass down to 100 MeV on and off
417 icf.addFlag("Tracking.doLowPtLargeD0", False)
418 # Switch for running LowPtRoI settings
419 icf.addFlag("Tracking.doLowPtRoI", False)
420 # Switch for running UPC settings
421 icf.addFlag("Tracking.doUPC", lambda prevFlags: prevFlags.Reco.HIMode is HIMode.UPC)
422 # Switch for running HIP settings
423 icf.addFlag("Tracking.doHIP", lambda prevFlags: prevFlags.Reco.HIMode is HIMode.HIP)
424 # Switch for running MinBias settings (UPC or HIP turn this ON)
425 icf.addFlag("Tracking.doMinBias", lambda prevFlags:
426 prevFlags.Tracking.doUPC or prevFlags.Tracking.doHIP)
427 # Turn running of BeamGas second pass on and off
428 icf.addFlag("Tracking.doBeamGas",
429 lambda prevFlags: prevFlags.Beam.Type is BeamType.SingleBeam)
430 # Special reconstruction for BLS physics
431 icf.addFlag("Tracking.doBLS", False)
432
433 # Special pass using truth information for pattern recognition, runs in parallel to/instead of the first pass
434 icf.addFlag("Tracking.doPseudoTracking", False)
435 # Special pass using truth information for pattern recognition, removes assumed in-efficencies applied to PseudoTracking
436 icf.addFlag("Tracking.doIdealPseudoTracking", False)
437
438
439
440 # The following flags are only used in ITk configurations
441
442 # Turn running of ITk FastTracking on and off
443 icf.addFlag("Tracking.doITkFastTracking", False)
444
445 # Turn running of Conversion second tracking pass on and off
446 icf.addFlag("Tracking.doITkConversion", lambda prevFlags: (
447 not prevFlags.Tracking.doITkFastTracking and prevFlags.Detector.EnableCalo))
448
449 # Allows TrigFastTrackFinder to be run as an offline algorithm by replacing
450 # SiSPSeededTrackFinder
451 icf.addFlag("Tracking.useITkFTF", False)
452
453 # GNN for ITk flags
454 from InDetGNNTracking.InDetGNNTrackingConfigFlags import createGNNTrackingConfigFlags
455 icf.join(createGNNTrackingConfigFlags())
456
457 # enable reco steps
458 icf.addFlag("Tracking.recoChain", [TrackingComponent.AthenaChain])
459
460
461
462 # Tracking pass flags
463
464 # InDet
465
466 from TrkConfig.TrackingPassFlags import (
467 createTrackingPassFlags, createHighPileupTrackingPassFlags,
468 createMinBiasTrackingPassFlags, createUPCTrackingPassFlags,
469 createHIPTrackingPassFlags, createR3LargeD0TrackingPassFlags,
470 createLowPtLargeD0TrackingPassFlags,
471 createLowPtTrackingPassFlags, createVeryLowPtTrackingPassFlags,
472 createLowPtRoITrackingPassFlags, createForwardTracksTrackingPassFlags,
473 createBeamGasTrackingPassFlags, createVtxLumiTrackingPassFlags, createVtxLumiHeavyIonTrackingPassFlags,
474 createVtxBeamSpotTrackingPassFlags, createCosmicsTrackingPassFlags,
475 createHeavyIonTrackingPassFlags, createPixelTrackingPassFlags,
476 createDisappearingTrackingPassFlags, createSCTTrackingPassFlags,
477 createTRTTrackingPassFlags, createTRTStandaloneTrackingPassFlags)
478
479 def primaryPass(flags):
480 if TrackingComponent.ActsChain in flags.Tracking.recoChain:
481 return PrimaryPassConfig.Acts
482 if flags.Beam.Type is BeamType.Cosmics:
483 return PrimaryPassConfig.Cosmics
484 elif flags.Reco.EnableHI:
485 if flags.Tracking.doUPC: #For UPC
486 return PrimaryPassConfig.UPC
487 elif flags.Tracking.doHIP: #For HIP
488 return PrimaryPassConfig.HIP
489 else: #For HI (default)
490 return PrimaryPassConfig.HeavyIon
491 elif flags.Tracking.doMinBias:
492 return PrimaryPassConfig.MinBias
493 else:
494 return PrimaryPassConfig.Default
495
496 icf.addFlag("Tracking.PrimaryPassConfig", lambda prevFlags:
497 primaryPass(prevFlags), type=PrimaryPassConfig)
498
499 # Set up for first tracking pass, updated for second passes
500 icf.addFlagsCategory("Tracking.MainPass",
501 createTrackingPassFlags, prefix=True)
502 icf.addFlagsCategory("Tracking.HighPileupPass",
503 createHighPileupTrackingPassFlags, prefix=True)
504 icf.addFlagsCategory("Tracking.UPCPass",
505 createUPCTrackingPassFlags, prefix=True)
506 icf.addFlagsCategory("Tracking.HIPPass",
507 createHIPTrackingPassFlags, prefix=True)
508 icf.addFlagsCategory("Tracking.MinBiasPass",
509 createMinBiasTrackingPassFlags, prefix=True)
510 icf.addFlagsCategory("Tracking.R3LargeD0Pass",
511 createR3LargeD0TrackingPassFlags, prefix=True)
512 icf.addFlagsCategory("Tracking.LowPtLargeD0Pass",
513 createLowPtLargeD0TrackingPassFlags, prefix=True)
514 icf.addFlagsCategory("Tracking.LowPtPass",
515 createLowPtTrackingPassFlags, prefix=True)
516 icf.addFlagsCategory("Tracking.VeryLowPtPass",
517 createVeryLowPtTrackingPassFlags, prefix=True)
518 icf.addFlagsCategory("Tracking.LowPtRoIPass",
519 createLowPtRoITrackingPassFlags, prefix=True)
520 icf.addFlagsCategory("Tracking.ForwardPass",
521 createForwardTracksTrackingPassFlags, prefix=True)
522 icf.addFlagsCategory("Tracking.BeamGasPass",
523 createBeamGasTrackingPassFlags, prefix=True)
524 icf.addFlagsCategory("Tracking.VtxLumiPass",
525 createVtxLumiTrackingPassFlags, prefix=True)
526 icf.addFlagsCategory("Tracking.VtxLumiHeavyIonPass",
527 createVtxLumiHeavyIonTrackingPassFlags, prefix=True)
528 icf.addFlagsCategory("Tracking.VtxBeamSpotPass",
529 createVtxBeamSpotTrackingPassFlags, prefix=True)
530 icf.addFlagsCategory("Tracking.CosmicsPass",
531 createCosmicsTrackingPassFlags, prefix=True)
532 icf.addFlagsCategory("Tracking.HeavyIonPass",
533 createHeavyIonTrackingPassFlags, prefix=True)
534 icf.addFlagsCategory("Tracking.PixelPass",
535 createPixelTrackingPassFlags, prefix=True)
536 icf.addFlagsCategory("Tracking.DisappearingPass",
537 createDisappearingTrackingPassFlags, prefix=True)
538 icf.addFlagsCategory("Tracking.SCTPass",
539 createSCTTrackingPassFlags, prefix=True)
540 icf.addFlagsCategory("Tracking.TRTPass",
541 createTRTTrackingPassFlags, prefix=True)
542 icf.addFlagsCategory("Tracking.TRTStandalonePass",
543 createTRTStandaloneTrackingPassFlags, prefix=True)
544
545 # ITk
546
547 from TrkConfig.TrackingPassFlags import (
548 createITkTrackingPassFlags, createITkLargeD0TrackingPassFlags,
549 createITkConversionTrackingPassFlags,
550 createITkFastTrackingPassFlags, createITkLargeD0FastTrackingPassFlags,
551 createITkFTFPassFlags, createITkFTFLargeD0PassFlags, createITkLowPtTrackingPassFlags,
552 createITkHeavyIonTrackingPassFlags)
553
554 def itkPrimaryPass(flags):
555 if flags.Tracking.useITkFTF:
556 return ITkPrimaryPassConfig.FTF
557 elif TrackingComponent.ActsChain in flags.Tracking.recoChain:
558 return ITkPrimaryPassConfig.Acts
559 elif TrackingComponent.ActsLegacyChain in flags.Tracking.recoChain:
560 return ITkPrimaryPassConfig.ActsLegacy
561 elif TrackingComponent.ActsHeavyIon in flags.Tracking.recoChain:
562 return ITkPrimaryPassConfig.ActsHeavyIon
563 elif flags.Tracking.doITkFastTracking:
564 return ITkPrimaryPassConfig.FastTracking
565 elif flags.Reco.EnableHI:
566 return ITkPrimaryPassConfig.HeavyIon
567 else:
568 return ITkPrimaryPassConfig.Default
569
570 icf.addFlag("Tracking.ITkPrimaryPassConfig", lambda prevFlags:
571 itkPrimaryPass(prevFlags), type=ITkPrimaryPassConfig)
572
573 icf.addFlagsCategory ("Tracking.ITkMainPass",
574 createITkTrackingPassFlags, prefix=True)
575 icf.addFlagsCategory ("Tracking.ITkLargeD0Pass",
576 createITkLargeD0TrackingPassFlags, prefix=True)
577 icf.addFlagsCategory ("Tracking.ITkConversionPass",
578 createITkConversionTrackingPassFlags, prefix=True)
579 icf.addFlagsCategory ("Tracking.ITkLowPtPass",
580 createITkLowPtTrackingPassFlags, prefix=True)
581 icf.addFlagsCategory ("Tracking.ITkFastPass",
582 createITkFastTrackingPassFlags, prefix=True)
583 icf.addFlagsCategory ("Tracking.ITkLargeD0FastPass",
584 createITkLargeD0FastTrackingPassFlags, prefix=True)
585 icf.addFlagsCategory ("Tracking.ITkFTFPass",
586 createITkFTFPassFlags, prefix=True)
587 icf.addFlagsCategory ("Tracking.ITkFTFLargeD0Pass",
588 createITkFTFLargeD0PassFlags, prefix=True)
589 icf.addFlagsCategory ("Tracking.ITkHeavyIonPass",
590 createITkHeavyIonTrackingPassFlags, prefix=True)
591
592 # Acts
593 from ActsConfig.ActsTrackingPassFlags import (
594 createActsTrackingPassFlags,
595 createActsLegacyTrackingPassFlags,
596 createActsLargeRadiusTrackingPassFlags,
597 createActsConversionTrackingPassFlags,
598 createActsLowPtTrackingPassFlags,
599 createActsValidateClustersTrackingPassFlags,
600 createActsValidateLargeRadiusStandaloneTrackingPassFlags,
601 createActsValidateTracksTrackingPassFlags,
602 createActsValidateAmbiguityResolutionTrackingPassFlags,
603 createActsHeavyIonTrackingPassFlags,
604 createEFValidateF100TrackingPassFlags,
605 createEFValidateF150TrackingPassFlags,
606 createACTSInnerDetectorTrackingPassFlags
607 )
608
609 icf.addFlagsCategory ("Tracking.ITkActsPass",
610 createActsTrackingPassFlags, prefix=True)
611 icf.addFlagsCategory ("Tracking.ActsPass",
612 createACTSInnerDetectorTrackingPassFlags, prefix=True)
613 icf.addFlagsCategory ("Tracking.ITkActsLegacyPass",
614 createActsLegacyTrackingPassFlags, prefix=True)
615 icf.addFlagsCategory ("Tracking.ITkActsLargeRadiusPass",
616 createActsLargeRadiusTrackingPassFlags, prefix=True)
617 icf.addFlagsCategory ('Tracking.ITkActsConversionPass',
618 createActsConversionTrackingPassFlags, prefix=True)
619 icf.addFlagsCategory ('Tracking.ITkActsLowPtPass',
620 createActsLowPtTrackingPassFlags, prefix=True)
621 icf.addFlagsCategory ("Tracking.ITkActsValidateClustersPass",
622 createActsValidateClustersTrackingPassFlags, prefix=True)
623 icf.addFlagsCategory ("Tracking.ITkActsValidateLargeRadiusStandalonePass",
624 createActsValidateLargeRadiusStandaloneTrackingPassFlags, prefix=True)
625 icf.addFlagsCategory ("Tracking.ITkActsValidateTracksPass",
626 createActsValidateTracksTrackingPassFlags, prefix=True)
627 icf.addFlagsCategory ("Tracking.ITkActsValidateAmbiguityResolutionPass",
628 createActsValidateAmbiguityResolutionTrackingPassFlags, prefix=True)
629 icf.addFlagsCategory ("Tracking.ITkActsHeavyIonPass",
630 createActsHeavyIonTrackingPassFlags, prefix=True)
631
632 # Acts F100 validation pass
633 icf.addFlagsCategory ("Tracking.ITkActsValidateF100Pass",
634 createEFValidateF100TrackingPassFlags, prefix=True)
635
636 # Acts F150 validation pass
637 icf.addFlagsCategory ("Tracking.ITkActsValidateF150Pass",
638 createEFValidateF150TrackingPassFlags, prefix=True)
639
640 # GNN
641 from InDetGNNTracking.InDetGNNTrackingFlags import createGNNTrackingPassFlags
642 icf.addFlagsCategory ("Tracking.ITkGNNPass",
643 createGNNTrackingPassFlags, prefix=True)
644 # FPGA
645 from TrkConfig.InDetFPGATrackingFlags import createFPGATrackingPassFlags
646 icf.addFlagsCategory ("Tracking.ITkFPGAPass",
647 createFPGATrackingPassFlags, prefix=True)
648
649 # ACTS Derivation flags
650 icf.addFlag("Tracking.StoreSlimmedDataPreparation", False)
651
652
653
654 # Vertexing flags
655 from TrkConfig.VertexFindingFlags import createPriVertexingFlags
656 icf.addFlagsCategory("Tracking.PriVertex",
657 createPriVertexingFlags, prefix=True)
658
659 # Turn on the primary vertex reconstruction
660 icf.addFlag("Tracking.doVertexFinding",
661 lambda prevFlags: prevFlags.Beam.Type is not BeamType.Cosmics)
662 # Turn on the secondary vertex V0 finder
663 icf.addFlag("Tracking.doV0Finder", False)
664
665 icf.addFlag('Tracking.TruthClusterSplittingEff', 0.9)
666
667 # Dump GBTS training data: 0=no dump, 1=standard tracking, 2=LRT
668 icf.addFlag("Tracking.dumpGBTSTrainingData", 0)
669
670 return icf