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