71def createTrackingConfigFlags():
72 icf = AthConfigFlags()
73
74
75 icf.addFlag("Tracking.doTruth", lambda prevFlags: prevFlags.Input.isMC or
76 (prevFlags.Common.ProductionStep is not ProductionStep.MinbiasPreprocessing and prevFlags.Overlay.DataOverlay))
77
78
79 icf.addFlag("Tracking.trackFitterType",
80 TrackFitterType.GlobalChi2Fitter, type=TrackFitterType)
81
82 icf.addFlag("Tracking.kalmanUpdator",
83 KalmanUpdatorType.KalmanUpdatorSMatrix, type=KalmanUpdatorType)
84
85 icf.addFlag("Tracking.materialInteractions", lambda prevFlags:
86 prevFlags.Beam.Type is not BeamType.SingleBeam)
87
88
89 icf.addFlag("Tracking.materialInteractionsType", lambda prevFlags:
90 2 if prevFlags.Beam.Type is BeamType.Cosmics else 3)
91
92
93 icf.addFlag("Tracking.doBremRecovery", lambda prevFlags: (
94 prevFlags.Detector.EnableCalo and
95 not (prevFlags.Tracking.PrimaryPassConfig in
96 [PrimaryPassConfig.VtxLumi, PrimaryPassConfig.VtxLumiHeavyIon, PrimaryPassConfig.VtxBeamSpot] or
97 prevFlags.Tracking.doLowMu or
98 prevFlags.Beam.Type is not BeamType.Collisions or
99 not prevFlags.BField.solenoidOn)))
100 icf.addFlag("Tracking.doCaloSeededBrem", lambda prevFlags: (
101 prevFlags.Detector.EnableCalo and prevFlags.Tracking.doBremRecovery))
102 icf.addFlag("Tracking.phiWidthBrem", 0.3)
103 icf.addFlag("Tracking.etaWidthBrem", 0.2)
104
105 icf.addFlag("Tracking.doHadCaloSeededSSS", False)
106
107 icf.addFlag("Tracking.doCaloSeededAmbi", lambda prevFlags:
108 prevFlags.Detector.EnableCalo)
109
110 icf.addFlag("Tracking.doSharedHits", True)
111
112 icf.addFlag("Tracking.doTIDE_Ambi", lambda prevFlags:
113 not (prevFlags.Beam.Type is BeamType.Cosmics))
114
115 icf.addFlag("Tracking.doPixelDigitalClustering", False)
116
117 icf.addFlag("Tracking.doPixelClusterSplitting",
118 lambda prevFlags: not (prevFlags.Beam.Type is BeamType.Cosmics))
119
120 icf.addFlag("Tracking.pixelClusterSplittingType", lambda prevFlags:
121 PixelClusterSplittingType.NeuralNet
122 if prevFlags.GeoModel.Run <= LHCPeriod.Run3
123 else PixelClusterSplittingType.Truth,
124 type=PixelClusterSplittingType)
125
126 icf.addFlag("Tracking.pixelClusterSplitProb1",
127 lambda prevFlags: (
128 0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.55))
129
130 icf.addFlag("Tracking.pixelClusterSplitProb2",
131 lambda prevFlags: (
132 0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.45))
133
134 icf.addFlag("Tracking.doSkipAmbiROI", False)
135
136
137 icf.addFlag("Tracking.TopoClusters", "CaloTopoClusters")
138 icf.addFlag("Tracking.EgammaTopoClusters", "egammaTopoClusters")
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",
446 lambda prevFlags: not prevFlags.Tracking.doITkFastTracking)
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 flags.Beam.Type is BeamType.Cosmics:
480 return PrimaryPassConfig.Cosmics
481 elif flags.Reco.EnableHI:
482 if flags.Tracking.doUPC:
483 return PrimaryPassConfig.UPC
484 elif flags.Tracking.doHIP:
485 return PrimaryPassConfig.HIP
486 else:
487 return PrimaryPassConfig.HeavyIon
488 elif flags.Tracking.doMinBias:
489 return PrimaryPassConfig.MinBias
490 else:
491 return PrimaryPassConfig.Default
492
493 icf.addFlag("Tracking.PrimaryPassConfig", lambda prevFlags:
494 primaryPass(prevFlags), type=PrimaryPassConfig)
495
496
497 icf.addFlagsCategory("Tracking.MainPass",
498 createTrackingPassFlags, prefix=True)
499 icf.addFlagsCategory("Tracking.HighPileupPass",
500 createHighPileupTrackingPassFlags, prefix=True)
501 icf.addFlagsCategory("Tracking.UPCPass",
502 createUPCTrackingPassFlags, prefix=True)
503 icf.addFlagsCategory("Tracking.HIPPass",
504 createHIPTrackingPassFlags, prefix=True)
505 icf.addFlagsCategory("Tracking.MinBiasPass",
506 createMinBiasTrackingPassFlags, prefix=True)
507 icf.addFlagsCategory("Tracking.R3LargeD0Pass",
508 createR3LargeD0TrackingPassFlags, prefix=True)
509 icf.addFlagsCategory("Tracking.LowPtLargeD0Pass",
510 createLowPtLargeD0TrackingPassFlags, prefix=True)
511 icf.addFlagsCategory("Tracking.LowPtPass",
512 createLowPtTrackingPassFlags, prefix=True)
513 icf.addFlagsCategory("Tracking.VeryLowPtPass",
514 createVeryLowPtTrackingPassFlags, prefix=True)
515 icf.addFlagsCategory("Tracking.LowPtRoIPass",
516 createLowPtRoITrackingPassFlags, prefix=True)
517 icf.addFlagsCategory("Tracking.ForwardPass",
518 createForwardTracksTrackingPassFlags, prefix=True)
519 icf.addFlagsCategory("Tracking.BeamGasPass",
520 createBeamGasTrackingPassFlags, prefix=True)
521 icf.addFlagsCategory("Tracking.VtxLumiPass",
522 createVtxLumiTrackingPassFlags, prefix=True)
523 icf.addFlagsCategory("Tracking.VtxLumiHeavyIonPass",
524 createVtxLumiHeavyIonTrackingPassFlags, prefix=True)
525 icf.addFlagsCategory("Tracking.VtxBeamSpotPass",
526 createVtxBeamSpotTrackingPassFlags, prefix=True)
527 icf.addFlagsCategory("Tracking.CosmicsPass",
528 createCosmicsTrackingPassFlags, prefix=True)
529 icf.addFlagsCategory("Tracking.HeavyIonPass",
530 createHeavyIonTrackingPassFlags, prefix=True)
531 icf.addFlagsCategory("Tracking.PixelPass",
532 createPixelTrackingPassFlags, prefix=True)
533 icf.addFlagsCategory("Tracking.DisappearingPass",
534 createDisappearingTrackingPassFlags, prefix=True)
535 icf.addFlagsCategory("Tracking.SCTPass",
536 createSCTTrackingPassFlags, prefix=True)
537 icf.addFlagsCategory("Tracking.TRTPass",
538 createTRTTrackingPassFlags, prefix=True)
539 icf.addFlagsCategory("Tracking.TRTStandalonePass",
540 createTRTStandaloneTrackingPassFlags, prefix=True)
541
542
543
544 from TrkConfig.TrackingPassFlags import (
545 createITkTrackingPassFlags, createITkLargeD0TrackingPassFlags,
546 createITkConversionTrackingPassFlags,
547 createITkFastTrackingPassFlags, createITkLargeD0FastTrackingPassFlags,
548 createITkFTFPassFlags, createITkFTFLargeD0PassFlags, createITkLowPtTrackingPassFlags,
549 createITkHeavyIonTrackingPassFlags)
550
551 def itkPrimaryPass(flags):
552 if flags.Tracking.useITkFTF:
553 return ITkPrimaryPassConfig.FTF
554 elif TrackingComponent.ActsChain in flags.Tracking.recoChain:
555 return ITkPrimaryPassConfig.Acts
556 elif TrackingComponent.ActsLegacyChain in flags.Tracking.recoChain:
557 return ITkPrimaryPassConfig.ActsLegacy
558 elif TrackingComponent.ActsHeavyIon in flags.Tracking.recoChain:
559 return ITkPrimaryPassConfig.ActsHeavyIon
560 elif flags.Tracking.doITkFastTracking:
561 return ITkPrimaryPassConfig.FastTracking
562 elif flags.Reco.EnableHI:
563 return ITkPrimaryPassConfig.HeavyIon
564 else:
565 return ITkPrimaryPassConfig.Default
566
567 icf.addFlag("Tracking.ITkPrimaryPassConfig", lambda prevFlags:
568 itkPrimaryPass(prevFlags), type=ITkPrimaryPassConfig)
569
570 icf.addFlagsCategory ("Tracking.ITkMainPass",
571 createITkTrackingPassFlags, prefix=True)
572 icf.addFlagsCategory ("Tracking.ITkLargeD0Pass",
573 createITkLargeD0TrackingPassFlags, prefix=True)
574 icf.addFlagsCategory ("Tracking.ITkConversionPass",
575 createITkConversionTrackingPassFlags, prefix=True)
576 icf.addFlagsCategory ("Tracking.ITkLowPtPass",
577 createITkLowPtTrackingPassFlags, prefix=True)
578 icf.addFlagsCategory ("Tracking.ITkFastPass",
579 createITkFastTrackingPassFlags, prefix=True)
580 icf.addFlagsCategory ("Tracking.ITkLargeD0FastPass",
581 createITkLargeD0FastTrackingPassFlags, prefix=True)
582 icf.addFlagsCategory ("Tracking.ITkFTFPass",
583 createITkFTFPassFlags, prefix=True)
584 icf.addFlagsCategory ("Tracking.ITkFTFLargeD0Pass",
585 createITkFTFLargeD0PassFlags, prefix=True)
586 icf.addFlagsCategory ("Tracking.ITkHeavyIonPass",
587 createITkHeavyIonTrackingPassFlags, prefix=True)
588
589
590 from ActsConfig.ActsTrackingPassFlags import (
591 createActsTrackingPassFlags,
592 createActsLegacyTrackingPassFlags,
593 createActsLargeRadiusTrackingPassFlags,
594 createActsConversionTrackingPassFlags,
595 createActsLowPtTrackingPassFlags,
596 createActsValidateClustersTrackingPassFlags,
597 createActsValidateSpacePointsTrackingPassFlags,
598 createActsValidateSeedsTrackingPassFlags,
599 createActsValidateConversionSeedsTrackingPassFlags,
600 createActsValidateLargeRadiusSeedsTrackingPassFlags,
601 createActsValidateLargeRadiusStandaloneTrackingPassFlags,
602 createActsValidateTracksTrackingPassFlags,
603 createActsValidateAmbiguityResolutionTrackingPassFlags,
604 createActsHeavyIonTrackingPassFlags,
605 createEFValidateF100TrackingPassFlags,
606 createEFValidateF150TrackingPassFlags
607 )
608
609 icf.addFlagsCategory ("Tracking.ITkActsPass",
610 createActsTrackingPassFlags, prefix=True)
611 icf.addFlagsCategory ("Tracking.ITkActsLegacyPass",
612 createActsLegacyTrackingPassFlags, prefix=True)
613 icf.addFlagsCategory ("Tracking.ITkActsLargeRadiusPass",
614 createActsLargeRadiusTrackingPassFlags, prefix=True)
615 icf.addFlagsCategory ('Tracking.ITkActsConversionPass',
616 createActsConversionTrackingPassFlags, prefix=True)
617 icf.addFlagsCategory ('Tracking.ITkActsLowPtPass',
618 createActsLowPtTrackingPassFlags, prefix=True)
619 icf.addFlagsCategory ("Tracking.ITkActsValidateClustersPass",
620 createActsValidateClustersTrackingPassFlags, prefix=True)
621 icf.addFlagsCategory ("Tracking.ITkActsValidateSpacePointsPass",
622 createActsValidateSpacePointsTrackingPassFlags, prefix=True)
623 icf.addFlagsCategory ("Tracking.ITkActsValidateSeedsPass",
624 createActsValidateSeedsTrackingPassFlags, prefix=True)
625 icf.addFlagsCategory ("Tracking.ITkActsValidateConversionSeedsPass",
626 createActsValidateConversionSeedsTrackingPassFlags, prefix=True)
627 icf.addFlagsCategory ("Tracking.ITkActsValidateLargeRadiusSeedsPass",
628 createActsValidateLargeRadiusSeedsTrackingPassFlags, prefix=True)
629 icf.addFlagsCategory ("Tracking.ITkActsValidateLargeRadiusStandalonePass",
630 createActsValidateLargeRadiusStandaloneTrackingPassFlags, prefix=True)
631 icf.addFlagsCategory ("Tracking.ITkActsValidateTracksPass",
632 createActsValidateTracksTrackingPassFlags, prefix=True)
633 icf.addFlagsCategory ("Tracking.ITkActsValidateAmbiguityResolutionPass",
634 createActsValidateAmbiguityResolutionTrackingPassFlags, prefix=True)
635 icf.addFlagsCategory ("Tracking.ITkActsHeavyIonPass",
636 createActsHeavyIonTrackingPassFlags, prefix=True)
637
638
639 icf.addFlagsCategory ("Tracking.ITkActsValidateF100Pass",
640 createEFValidateF100TrackingPassFlags, prefix=True)
641
642
643 icf.addFlagsCategory ("Tracking.ITkActsValidateF150Pass",
644 createEFValidateF150TrackingPassFlags, prefix=True)
645
646
647 from InDetGNNTracking.InDetGNNTrackingFlags import createGNNTrackingPassFlags
648 icf.addFlagsCategory ("Tracking.ITkGNNPass",
649 createGNNTrackingPassFlags, prefix=True)
650
651 from TrkConfig.InDetFPGATrackingFlags import createFPGATrackingPassFlags
652 icf.addFlagsCategory ("Tracking.ITkFPGAPass",
653 createFPGATrackingPassFlags, prefix=True)
654
655
656
657
658
659 from TrkConfig.VertexFindingFlags import createPriVertexingFlags
660 icf.addFlagsCategory("Tracking.PriVertex",
661 createPriVertexingFlags, prefix=True)
662
663
664 icf.addFlag("Tracking.doVertexFinding",
665 lambda prevFlags: prevFlags.Beam.Type is not BeamType.Cosmics)
666
667 icf.addFlag("Tracking.doV0Finder", False)
668
669 icf.addFlag('Tracking.TruthClusterSplittingEff', 0.9)
670
671
672 icf.addFlag("Tracking.dumpGBTSTrainingData", 0)
673
674 return icf