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