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