67def createTrackingConfigFlags():
68 icf = AthConfigFlags()
69
70
71 icf.addFlag("Tracking.doTruth", lambda prevFlags: prevFlags.Input.isMC or
72 (prevFlags.Common.ProductionStep is not ProductionStep.MinbiasPreprocessing and prevFlags.Overlay.DataOverlay))
73
74
75 icf.addFlag("Tracking.trackFitterType",
76 TrackFitterType.GlobalChi2Fitter, type=TrackFitterType)
77
78 icf.addFlag("Tracking.kalmanUpdator",
79 KalmanUpdatorType.KalmanUpdatorSMatrix, type=KalmanUpdatorType)
80
81 icf.addFlag("Tracking.materialInteractions", lambda prevFlags:
82 prevFlags.Beam.Type is not BeamType.SingleBeam)
83
84
85 icf.addFlag("Tracking.materialInteractionsType", lambda prevFlags:
86 2 if prevFlags.Beam.Type is BeamType.Cosmics else 3)
87
88
89 icf.addFlag("Tracking.doBremRecovery", lambda prevFlags: (
90 prevFlags.Detector.EnableCalo and
91 not (prevFlags.Tracking.PrimaryPassConfig in
92 [PrimaryPassConfig.VtxLumi, PrimaryPassConfig.VtxLumiHeavyIon, PrimaryPassConfig.VtxBeamSpot] or
93 prevFlags.Tracking.doLowMu or
94 prevFlags.Beam.Type is not BeamType.Collisions or
95 not prevFlags.BField.solenoidOn)))
96 icf.addFlag("Tracking.doCaloSeededBrem", lambda prevFlags: (
97 prevFlags.Detector.EnableCalo and prevFlags.Tracking.doBremRecovery))
98 icf.addFlag("Tracking.phiWidthBrem", 0.3)
99 icf.addFlag("Tracking.etaWidthBrem", 0.2)
100
101 icf.addFlag("Tracking.doHadCaloSeededSSS", False)
102
103 icf.addFlag("Tracking.doCaloSeededAmbi", lambda prevFlags:
104 prevFlags.Detector.EnableCalo)
105
106 icf.addFlag("Tracking.doSharedHits", True)
107
108 icf.addFlag("Tracking.doTIDE_Ambi", lambda prevFlags:
109 not (prevFlags.Beam.Type is BeamType.Cosmics))
110
111 icf.addFlag("Tracking.doPixelDigitalClustering", False)
112
113 icf.addFlag("Tracking.doPixelClusterSplitting",
114 lambda prevFlags: not (prevFlags.Beam.Type is BeamType.Cosmics))
115
116 icf.addFlag("Tracking.pixelClusterSplittingType", lambda prevFlags:
117 PixelClusterSplittingType.NeuralNet
118 if prevFlags.GeoModel.Run <= LHCPeriod.Run3
119 else PixelClusterSplittingType.Truth,
120 type=PixelClusterSplittingType)
121
122 icf.addFlag("Tracking.pixelClusterSplitProb1",
123 lambda prevFlags: (
124 0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.55))
125
126 icf.addFlag("Tracking.pixelClusterSplitProb2",
127 lambda prevFlags: (
128 0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.45))
129
130 icf.addFlag("Tracking.doSkipAmbiROI", False)
131
132
133 icf.addFlag("Tracking.TopoClusters", "CaloTopoClusters")
134 icf.addFlag("Tracking.EgammaTopoClusters", "egammaTopoClusters")
135
136
137 icf.addFlag("Tracking.perigeeExpression", lambda prevFlags:
138 "Vertex" if (prevFlags.Tracking.PrimaryPassConfig in [
139 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
140 prevFlags.Tracking.ITkPrimaryPassConfig in [
141 ITkPrimaryPassConfig.HeavyIon, ITkPrimaryPassConfig.ActsHeavyIon]
142 )
143 else "BeamLine")
144
145
146 icf.addFlag("Tracking.doEndcapEtaOverlapSpacePoint", lambda prevFlags: prevFlags.ITk.doEndcapEtaNeighbour)
147
148
149
150 def doLargeD0(flags):
151 if flags.GeoModel.Run <= LHCPeriod.Run3:
152 return not ((flags.Beam.Type in
153 [BeamType.SingleBeam, BeamType.Cosmics]) or
154 flags.Tracking.PrimaryPassConfig in [
155 PrimaryPassConfig.HeavyIon,
156 PrimaryPassConfig.UPC,
157 PrimaryPassConfig.HIP,
158 PrimaryPassConfig.VtxLumi,
159 PrimaryPassConfig.VtxLumiHeavyIon,
160 PrimaryPassConfig.VtxBeamSpot,
161 PrimaryPassConfig.HighPileup])
162 else:
163 return False
164
165 icf.addFlag("Tracking.doLargeD0", doLargeD0)
166 icf.addFlag("Tracking.storeSeparateLargeD0Container", True)
167
168
169 icf.addFlag("Tracking.storeBeamLineTrackParticles", lambda prevFlags: prevFlags.Overlay.DataOverlay)
170
171
172 icf.addFlag("Tracking.doLowMu", False)
173
174 icf.addFlag("Tracking.doLowPt",
175 lambda prevFlags: prevFlags.Tracking.doLowMu)
176
177
178 icf.addFlag("Tracking.doStoreTrackSeeds", False)
179
180 icf.addFlag("Tracking.doStoreSiSPSeededTracks", False)
181
182 icf.addFlag("Tracking.writeSeedValNtuple", False)
183
184 icf.addFlag("Tracking.writeExtendedSi_PRDInfo", False)
185 icf.addFlag("Tracking.writeExtendedTRT_PRDInfo", False)
186 icf.addFlag("Tracking.PRDInfo.KeepOnlyOnTrackMeasurements", False)
187
188
189
190 icf.addFlag("Tracking.thinPixelClustersOnTrack", False)
191 icf.addFlag("Tracking.thinSCTClustersOnTrack", False)
192 icf.addFlag("Tracking.thinTRTClustersOnTrack", False)
193 icf.addFlag("Tracking.thinInDetClustersOnTrack",
194 lambda prevFlags: (
195 prevFlags.Tracking.thinPixelClustersOnTrack or
196 prevFlags.Tracking.thinSCTClustersOnTrack or
197 prevFlags.Tracking.thinTRTClustersOnTrack ))
198
199
200 icf.addFlag("Tracking.thinInDetClustersTrackContainers", ["InDetTrackParticles"])
201 icf.addFlag("Tracking.thinInDetClustersPixelMSOSContainers", ["PixelMSOSs"])
202 icf.addFlag("Tracking.thinInDetClustersSCTMSOSContainers", ["SCT_MSOSs"])
203 icf.addFlag("Tracking.thinInDetClustersTRTMSOSContainers", ["TRT_MSOSs"])
204 icf.addFlag("Tracking.thinInDetClustersSelectionStrings", ["InDetTrackParticles.pt > (1*GeV)"])
205
206
207 icf.addFlag("Tracking.doSlimming", lambda prevFlags:
208 not (prevFlags.Beam.Type in
209 [BeamType.SingleBeam, BeamType.Cosmics] or
210 prevFlags.Tracking.PrimaryPassConfig in [
211 PrimaryPassConfig.VtxLumi,
212 PrimaryPassConfig.VtxLumiHeavyIon,
213 PrimaryPassConfig.VtxBeamSpot,
214 PrimaryPassConfig.HighPileup]))
215
216
217
218
219
220
221 icf.addFlag("Tracking.useNewParamTRT", lambda prevFlags:
222 prevFlags.Tracking.PrimaryPassConfig is not(
223 PrimaryPassConfig.HeavyIon))
224
225
226 icf.addFlag("Tracking.BackTracking.doRoISeeded", lambda prevFlags:
227 prevFlags.Detector.EnableCalo and not(
228 prevFlags.Tracking.doLowMu or
229 prevFlags.Tracking.PrimaryPassConfig is (
230 PrimaryPassConfig.HeavyIon) or
231 prevFlags.Beam.Type is BeamType.Cosmics or
232 prevFlags.Tracking.doMinBias))
233
234
235 def BackTrackingMinPt(flags):
236 if flags.Tracking.doMinBias:
237 return 0.4 * Units.GeV * flags.BField.configuredSolenoidFieldScale
238 elif (flags.Tracking.doLowMu or
239 flags.Tracking.PrimaryPassConfig in [
240 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
241 flags.Beam.Type is BeamType.Cosmics):
242 return 1.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
243 else:
244 return 3.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
245 icf.addFlag("Tracking.BackTracking.minPt", BackTrackingMinPt)
246 icf.addFlag("Tracking.BackTracking.TRTSegFinderPtBins", 50)
247 icf.addFlag("Tracking.BackTracking.maxTRTSharedFrac", 0.7)
248 icf.addFlag("Tracking.BackTracking.maxSecondaryImpact", 100.0 * Units.mm)
249 icf.addFlag("Tracking.BackTracking.minClusters", 4)
250 icf.addFlag("Tracking.BackTracking.minSiNotShared", 4)
251
252 icf.addFlag("Tracking.BackTracking.maxShared", 1)
253 icf.addFlag("Tracking.BackTracking.minTRT", lambda prevFlags:
254 10 if (prevFlags.Tracking.doLowMu or
255 prevFlags.Tracking.PrimaryPassConfig is (
256 PrimaryPassConfig.HeavyIon))
257 else 15)
258 icf.addFlag("Tracking.BackTracking.minTRTPrecFrac", lambda prevFlags:
259 0. if (prevFlags.Tracking.doLowMu or
260 prevFlags.Tracking.PrimaryPassConfig is (
261 PrimaryPassConfig.HeavyIon))
262 else 0.3)
263
264 icf.addFlag("Tracking.BackTracking.maxHoles", lambda prevFlags:
265 2 if (prevFlags.Tracking.doLowMu or
266 prevFlags.Tracking.PrimaryPassConfig is (
267 PrimaryPassConfig.HeavyIon))
268 else 1)
269 icf.addFlag("Tracking.BackTracking.maxPixelHoles", 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.maxSCTHoles", 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.maxDoubleHoles", lambda prevFlags:
280 1 if (prevFlags.Tracking.doLowMu or
281 prevFlags.Tracking.PrimaryPassConfig is (
282 PrimaryPassConfig.HeavyIon))
283 else 0)
284 icf.addFlag("Tracking.BackTracking.nHolesMax", 2)
285 icf.addFlag("Tracking.BackTracking.nHolesGapMax", 2)
286
287
288 icf.addFlag("Tracking.BackTracking.rejectShortExtensions", lambda prevFlags:
289 not(prevFlags.Beam.Type is BeamType.Cosmics or
290 prevFlags.Tracking.doLowMu or
291 prevFlags.Tracking.PrimaryPassConfig is (
292 PrimaryPassConfig.HeavyIon)))
293
294 icf.addFlag("Tracking.BackTracking.SiExtensionCuts", lambda prevFlags:
295 not(prevFlags.Tracking.doLowMu or
296 prevFlags.Tracking.PrimaryPassConfig is (
297 PrimaryPassConfig.HeavyIon)))
298 icf.addFlag("Tracking.BackTracking.minRoIClusterEt", lambda prevFlags:
299 0. if (prevFlags.Tracking.doLowMu or
300 prevFlags.Tracking.PrimaryPassConfig in [
301 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
302 prevFlags.Beam.Type is BeamType.Cosmics or
303 prevFlags.Tracking.doMinBias)
304 else 6.*Units.GeV * prevFlags.BField.configuredSolenoidFieldScale)
305
306
307 def TRTStandaloneMinPt(flags):
308 if flags.Tracking.doMinBias:
309 return 0.4 * Units.GeV * flags.BField.configuredSolenoidFieldScale
310 elif flags.Tracking.doLowMu or (
311 flags.Tracking.PrimaryPassConfig is PrimaryPassConfig.HeavyIon):
312 return 1.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
313 else:
314 return 2.0 * Units.GeV * flags.BField.configuredSolenoidFieldScale
315 icf.addFlag("Tracking.TRTStandalone.minPt", TRTStandaloneMinPt)
316 icf.addFlag("Tracking.TRTStandalone.minTRTPrecFrac", 0.15)
317 icf.addFlag("Tracking.TRTStandalone.minTRT", 15)
318
319
320 icf.addFlag("Tracking.TRTStandalone.startAtOriginalPerigee",
321 lambda prevFlags: (
322 (not prevFlags.Input.isMC and prevFlags.Input.DataYear >= 2025) or
323 (prevFlags.Input.isMC and prevFlags.Input.MCCampaign >= Campaign.MC23g)))
324
325
326 icf.addFlag("Tracking.doStats", False)
327
328 icf.addFlag("Tracking.doTIDE_AmbiTrackMonitoring", False)
329
330 icf.addFlag("Tracking.useBeamSpotInfoNN", True)
331
332 icf.addFlag("Tracking.nnCutLargeD0Threshold", -1.0)
333
334 icf.addFlag("Tracking.useBroadPixClusterErrors", False)
335
336 icf.addFlag("Tracking.useBroadSCTClusterErrors", False)
337
338
339
340
341 icf.addFlag("Tracking.doTrackSegmentsPixel",
342 lambda prevFlags: (
343 prevFlags.Detector.EnablePixel and (
344 prevFlags.Tracking.doMinBias or
345 prevFlags.Tracking.doLowMu or
346 prevFlags.Beam.Type is BeamType.Cosmics)))
347
348 icf.addFlag("Tracking.doTrackSegmentsSCT",
349 lambda prevFlags: (
350 prevFlags.Detector.EnableSCT and (
351 prevFlags.Tracking.doLowMu or
352 prevFlags.Beam.Type is BeamType.Cosmics)))
353
354 icf.addFlag("Tracking.doTrackSegmentsTRT",
355 lambda prevFlags: (
356 prevFlags.Detector.EnableTRT and
357 (prevFlags.Tracking.doLowMu or
358 prevFlags.Beam.Type is BeamType.Cosmics)))
359
360 icf.addFlag("Tracking.doTRTExtension",
361 lambda prevFlags: prevFlags.Detector.EnableTRT)
362
363 icf.addFlag("Tracking.doTRTSegments",
364 lambda prevFlags: (prevFlags.Detector.EnableTRT and
365 (prevFlags.Tracking.doBackTracking or
366 prevFlags.Tracking.doTRTStandalone)))
367
368 icf.addFlag("Tracking.doBackTracking", lambda prevFlags: (
369 prevFlags.Detector.EnableTRT and
370 not(prevFlags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics] or
371 prevFlags.Tracking.PrimaryPassConfig in [
372 PrimaryPassConfig.HeavyIon,
373 PrimaryPassConfig.VtxLumi,
374 PrimaryPassConfig.VtxLumiHeavyIon,
375 PrimaryPassConfig.VtxBeamSpot,
376 PrimaryPassConfig.HighPileup])))
377
378 icf.addFlag("Tracking.doTRTStandalone", lambda prevFlags: (
379 prevFlags.Detector.EnableTRT and
380 not(prevFlags.Tracking.PrimaryPassConfig in [
381 PrimaryPassConfig.HeavyIon,
382 PrimaryPassConfig.VtxLumi,
383 PrimaryPassConfig.VtxLumiHeavyIon,
384 PrimaryPassConfig.VtxBeamSpot,
385 PrimaryPassConfig.HighPileup])))
386
387
388 icf.addFlag("Tracking.doForwardTracks", lambda prevFlags: (
389 prevFlags.Detector.EnablePixel and
390 not(prevFlags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics] or
391 prevFlags.Tracking.PrimaryPassConfig in [
392 PrimaryPassConfig.HeavyIon,
393 PrimaryPassConfig.VtxLumi,
394 PrimaryPassConfig.VtxLumiHeavyIon,
395 PrimaryPassConfig.VtxBeamSpot,
396 PrimaryPassConfig.HighPileup] or
397 prevFlags.Tracking.doMinBias or
398 prevFlags.Tracking.doLowMu)))
399
400 def doTrackSegmentsDisappearing(flags):
401 if flags.GeoModel.Run <= LHCPeriod.Run3:
402 return not((flags.Tracking.PrimaryPassConfig is
403 PrimaryPassConfig.HeavyIon) or
404 flags.Beam.Type is BeamType.Cosmics)
405 else:
406 return False
407 icf.addFlag("Tracking.doTrackSegmentsDisappearing", doTrackSegmentsDisappearing)
408
409
410 icf.addFlag("Tracking.doVeryLowPt", False)
411
412 icf.addFlag("Tracking.doLowPtLargeD0", False)
413
414 icf.addFlag("Tracking.doLowPtRoI", False)
415
416 icf.addFlag("Tracking.doUPC", lambda prevFlags: prevFlags.Reco.HIMode is HIMode.UPC)
417
418 icf.addFlag("Tracking.doHIP", lambda prevFlags: prevFlags.Reco.HIMode is HIMode.HIP)
419
420 icf.addFlag("Tracking.doMinBias", lambda prevFlags:
421 prevFlags.Tracking.doUPC or prevFlags.Tracking.doHIP)
422
423 icf.addFlag("Tracking.doBeamGas",
424 lambda prevFlags: prevFlags.Beam.Type is BeamType.SingleBeam)
425
426 icf.addFlag("Tracking.doBLS", False)
427
428
429 icf.addFlag("Tracking.doPseudoTracking", False)
430
431 icf.addFlag("Tracking.doIdealPseudoTracking", False)
432
433
434
435
436
437
438 icf.addFlag("Tracking.doITkFastTracking", False)
439
440
441 icf.addFlag("Tracking.doITkConversion", lambda prevFlags: (
442 not prevFlags.Tracking.doITkFastTracking and prevFlags.Detector.EnableCalo))
443
444
445
446 icf.addFlag("Tracking.useITkFTF", False)
447
448
449 from InDetGNNTracking.InDetGNNTrackingConfigFlags import createGNNTrackingConfigFlags
450 icf.join(createGNNTrackingConfigFlags())
451
452
453 icf.addFlag("Tracking.recoChain", [TrackingComponent.AthenaChain])
454
455
456
457
458
459
460
461 from TrkConfig.TrackingPassFlags import (
462 createTrackingPassFlags, createHighPileupTrackingPassFlags,
463 createMinBiasTrackingPassFlags, createUPCTrackingPassFlags,
464 createHIPTrackingPassFlags, createR3LargeD0TrackingPassFlags,
465 createLowPtLargeD0TrackingPassFlags,
466 createLowPtTrackingPassFlags, createVeryLowPtTrackingPassFlags,
467 createLowPtRoITrackingPassFlags, createForwardTracksTrackingPassFlags,
468 createBeamGasTrackingPassFlags, createVtxLumiTrackingPassFlags, createVtxLumiHeavyIonTrackingPassFlags,
469 createVtxBeamSpotTrackingPassFlags, createCosmicsTrackingPassFlags,
470 createHeavyIonTrackingPassFlags, createPixelTrackingPassFlags,
471 createDisappearingTrackingPassFlags, createSCTTrackingPassFlags,
472 createTRTTrackingPassFlags, createTRTStandaloneTrackingPassFlags)
473
474 def primaryPass(flags):
475 if flags.Beam.Type is BeamType.Cosmics:
476 return PrimaryPassConfig.Cosmics
477 elif flags.Reco.EnableHI:
478 if flags.Tracking.doUPC:
479 return PrimaryPassConfig.UPC
480 elif flags.Tracking.doHIP:
481 return PrimaryPassConfig.HIP
482 else:
483 return PrimaryPassConfig.HeavyIon
484 elif flags.Tracking.doMinBias:
485 return PrimaryPassConfig.MinBias
486 else:
487 return PrimaryPassConfig.Default
488
489 icf.addFlag("Tracking.PrimaryPassConfig", lambda prevFlags:
490 primaryPass(prevFlags), type=PrimaryPassConfig)
491
492
493 icf.addFlagsCategory("Tracking.MainPass",
494 createTrackingPassFlags, prefix=True)
495 icf.addFlagsCategory("Tracking.HighPileupPass",
496 createHighPileupTrackingPassFlags, prefix=True)
497 icf.addFlagsCategory("Tracking.UPCPass",
498 createUPCTrackingPassFlags, prefix=True)
499 icf.addFlagsCategory("Tracking.HIPPass",
500 createHIPTrackingPassFlags, prefix=True)
501 icf.addFlagsCategory("Tracking.MinBiasPass",
502 createMinBiasTrackingPassFlags, prefix=True)
503 icf.addFlagsCategory("Tracking.R3LargeD0Pass",
504 createR3LargeD0TrackingPassFlags, prefix=True)
505 icf.addFlagsCategory("Tracking.LowPtLargeD0Pass",
506 createLowPtLargeD0TrackingPassFlags, prefix=True)
507 icf.addFlagsCategory("Tracking.LowPtPass",
508 createLowPtTrackingPassFlags, prefix=True)
509 icf.addFlagsCategory("Tracking.VeryLowPtPass",
510 createVeryLowPtTrackingPassFlags, prefix=True)
511 icf.addFlagsCategory("Tracking.LowPtRoIPass",
512 createLowPtRoITrackingPassFlags, prefix=True)
513 icf.addFlagsCategory("Tracking.ForwardPass",
514 createForwardTracksTrackingPassFlags, prefix=True)
515 icf.addFlagsCategory("Tracking.BeamGasPass",
516 createBeamGasTrackingPassFlags, prefix=True)
517 icf.addFlagsCategory("Tracking.VtxLumiPass",
518 createVtxLumiTrackingPassFlags, prefix=True)
519 icf.addFlagsCategory("Tracking.VtxLumiHeavyIonPass",
520 createVtxLumiHeavyIonTrackingPassFlags, prefix=True)
521 icf.addFlagsCategory("Tracking.VtxBeamSpotPass",
522 createVtxBeamSpotTrackingPassFlags, prefix=True)
523 icf.addFlagsCategory("Tracking.CosmicsPass",
524 createCosmicsTrackingPassFlags, prefix=True)
525 icf.addFlagsCategory("Tracking.HeavyIonPass",
526 createHeavyIonTrackingPassFlags, prefix=True)
527 icf.addFlagsCategory("Tracking.PixelPass",
528 createPixelTrackingPassFlags, prefix=True)
529 icf.addFlagsCategory("Tracking.DisappearingPass",
530 createDisappearingTrackingPassFlags, prefix=True)
531 icf.addFlagsCategory("Tracking.SCTPass",
532 createSCTTrackingPassFlags, prefix=True)
533 icf.addFlagsCategory("Tracking.TRTPass",
534 createTRTTrackingPassFlags, prefix=True)
535 icf.addFlagsCategory("Tracking.TRTStandalonePass",
536 createTRTStandaloneTrackingPassFlags, prefix=True)
537
538
539
540 from TrkConfig.TrackingPassFlags import (
541 createITkTrackingPassFlags, createITkLargeD0TrackingPassFlags,
542 createITkConversionTrackingPassFlags,
543 createITkFastTrackingPassFlags, createITkLargeD0FastTrackingPassFlags,
544 createITkFTFPassFlags, createITkFTFLargeD0PassFlags, createITkLowPtTrackingPassFlags,
545 createITkHeavyIonTrackingPassFlags)
546
547 def itkPrimaryPass(flags):
548 if flags.Tracking.useITkFTF:
549 return ITkPrimaryPassConfig.FTF
550 elif TrackingComponent.ActsChain in flags.Tracking.recoChain:
551 return ITkPrimaryPassConfig.Acts
552 elif TrackingComponent.ActsLegacyChain in flags.Tracking.recoChain:
553 return ITkPrimaryPassConfig.ActsLegacy
554 elif TrackingComponent.ActsHeavyIon in flags.Tracking.recoChain:
555 return ITkPrimaryPassConfig.ActsHeavyIon
556 elif flags.Tracking.doITkFastTracking:
557 return ITkPrimaryPassConfig.FastTracking
558 elif flags.Reco.EnableHI:
559 return ITkPrimaryPassConfig.HeavyIon
560 else:
561 return ITkPrimaryPassConfig.Default
562
563 icf.addFlag("Tracking.ITkPrimaryPassConfig", lambda prevFlags:
564 itkPrimaryPass(prevFlags), type=ITkPrimaryPassConfig)
565
566 icf.addFlagsCategory ("Tracking.ITkMainPass",
567 createITkTrackingPassFlags, prefix=True)
568 icf.addFlagsCategory ("Tracking.ITkLargeD0Pass",
569 createITkLargeD0TrackingPassFlags, prefix=True)
570 icf.addFlagsCategory ("Tracking.ITkConversionPass",
571 createITkConversionTrackingPassFlags, prefix=True)
572 icf.addFlagsCategory ("Tracking.ITkLowPtPass",
573 createITkLowPtTrackingPassFlags, prefix=True)
574 icf.addFlagsCategory ("Tracking.ITkFastPass",
575 createITkFastTrackingPassFlags, prefix=True)
576 icf.addFlagsCategory ("Tracking.ITkLargeD0FastPass",
577 createITkLargeD0FastTrackingPassFlags, prefix=True)
578 icf.addFlagsCategory ("Tracking.ITkFTFPass",
579 createITkFTFPassFlags, prefix=True)
580 icf.addFlagsCategory ("Tracking.ITkFTFLargeD0Pass",
581 createITkFTFLargeD0PassFlags, prefix=True)
582 icf.addFlagsCategory ("Tracking.ITkHeavyIonPass",
583 createITkHeavyIonTrackingPassFlags, prefix=True)
584
585
586 from ActsConfig.ActsTrackingPassFlags import (
587 createActsTrackingPassFlags,
588 createActsLegacyTrackingPassFlags,
589 createActsLargeRadiusTrackingPassFlags,
590 createActsConversionTrackingPassFlags,
591 createActsLowPtTrackingPassFlags,
592 createActsValidateClustersTrackingPassFlags,
593 createActsValidateLargeRadiusStandaloneTrackingPassFlags,
594 createActsValidateTracksTrackingPassFlags,
595 createActsValidateAmbiguityResolutionTrackingPassFlags,
596 createActsHeavyIonTrackingPassFlags,
597 createEFValidateF100TrackingPassFlags,
598 createEFValidateF150TrackingPassFlags
599 )
600
601 icf.addFlagsCategory ("Tracking.ITkActsPass",
602 createActsTrackingPassFlags, prefix=True)
603 icf.addFlagsCategory ("Tracking.ITkActsLegacyPass",
604 createActsLegacyTrackingPassFlags, prefix=True)
605 icf.addFlagsCategory ("Tracking.ITkActsLargeRadiusPass",
606 createActsLargeRadiusTrackingPassFlags, prefix=True)
607 icf.addFlagsCategory ('Tracking.ITkActsConversionPass',
608 createActsConversionTrackingPassFlags, prefix=True)
609 icf.addFlagsCategory ('Tracking.ITkActsLowPtPass',
610 createActsLowPtTrackingPassFlags, prefix=True)
611 icf.addFlagsCategory ("Tracking.ITkActsValidateClustersPass",
612 createActsValidateClustersTrackingPassFlags, prefix=True)
613 icf.addFlagsCategory ("Tracking.ITkActsValidateLargeRadiusStandalonePass",
614 createActsValidateLargeRadiusStandaloneTrackingPassFlags, prefix=True)
615 icf.addFlagsCategory ("Tracking.ITkActsValidateTracksPass",
616 createActsValidateTracksTrackingPassFlags, prefix=True)
617 icf.addFlagsCategory ("Tracking.ITkActsValidateAmbiguityResolutionPass",
618 createActsValidateAmbiguityResolutionTrackingPassFlags, prefix=True)
619 icf.addFlagsCategory ("Tracking.ITkActsHeavyIonPass",
620 createActsHeavyIonTrackingPassFlags, prefix=True)
621
622
623 icf.addFlagsCategory ("Tracking.ITkActsValidateF100Pass",
624 createEFValidateF100TrackingPassFlags, prefix=True)
625
626
627 icf.addFlagsCategory ("Tracking.ITkActsValidateF150Pass",
628 createEFValidateF150TrackingPassFlags, prefix=True)
629
630
631 from InDetGNNTracking.InDetGNNTrackingFlags import createGNNTrackingPassFlags
632 icf.addFlagsCategory ("Tracking.ITkGNNPass",
633 createGNNTrackingPassFlags, prefix=True)
634
635 from TrkConfig.InDetFPGATrackingFlags import createFPGATrackingPassFlags
636 icf.addFlagsCategory ("Tracking.ITkFPGAPass",
637 createFPGATrackingPassFlags, prefix=True)
638
639
640
641
642
643 from TrkConfig.VertexFindingFlags import createPriVertexingFlags
644 icf.addFlagsCategory("Tracking.PriVertex",
645 createPriVertexingFlags, prefix=True)
646
647
648 icf.addFlag("Tracking.doVertexFinding",
649 lambda prevFlags: prevFlags.Beam.Type is not BeamType.Cosmics)
650
651 icf.addFlag("Tracking.doV0Finder", False)
652
653 icf.addFlag('Tracking.TruthClusterSplittingEff', 0.9)
654
655
656 icf.addFlag("Tracking.dumpGBTSTrainingData", 0)
657
658 return icf