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