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