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 icf.addFlag("Tracking.pixelClusterSplitProb1",
120 lambda prevFlags: (
121 0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.55))
122
123 icf.addFlag("Tracking.pixelClusterSplitProb2",
124 lambda prevFlags: (
125 0.5 if prevFlags.GeoModel.Run is LHCPeriod.Run1 else 0.45))
126
127 icf.addFlag("Tracking.doSkipAmbiROI", False)
128
129
130 icf.addFlag("Tracking.TopoClusters", "CaloTopoClusters")
131 icf.addFlag("Tracking.EgammaTopoClusters", "egammaTopoClusters")
132 icf.addFlag("Tracking.ForwardTopoClusters",
133 lambda prevFlags: (
134 prevFlags.Egamma.Keys.Internal.EgammaTopoClusters + 'Fwd'))
135
136
137 icf.addFlag("Tracking.perigeeExpression", lambda prevFlags:
138 "Vertex" if (prevFlags.Tracking.PrimaryPassConfig in [
139 PrimaryPassConfig.HeavyIon, PrimaryPassConfig.VtxLumiHeavyIon] or
140 prevFlags.Tracking.ITkPrimaryPassConfig in [
141 ITkPrimaryPassConfig.HeavyIon, ITkPrimaryPassConfig.ActsHeavyIon]
142 )
143 else "BeamLine")
144
145
146 icf.addFlag("Tracking.doEndcapEtaOverlapSpacePoint", lambda prevFlags: prevFlags.ITk.doEndcapEtaNeighbour)
147
148
149
150 def doLargeD0(flags):
151 if flags.GeoModel.Run <= LHCPeriod.Run3:
152 return not ((flags.Beam.Type in
153 [BeamType.SingleBeam, BeamType.Cosmics]) or
154 flags.Tracking.PrimaryPassConfig in [
155 PrimaryPassConfig.HeavyIon,
156 PrimaryPassConfig.UPC,
157 PrimaryPassConfig.HIP,
158 PrimaryPassConfig.VtxLumi,
159 PrimaryPassConfig.VtxLumiHeavyIon,
160 PrimaryPassConfig.VtxBeamSpot,
161 PrimaryPassConfig.HighPileup])
162 else:
163 return False
164
165 icf.addFlag("Tracking.doLargeD0", doLargeD0)
166 icf.addFlag("Tracking.storeSeparateLargeD0Container", True)
167
168
169 icf.addFlag("Tracking.storeBeamLineTrackParticles", lambda prevFlags: prevFlags.Overlay.DataOverlay)
170
171
172 icf.addFlag("Tracking.doLowMu", False)
173
174 icf.addFlag("Tracking.doLowPt",
175 lambda prevFlags: prevFlags.Tracking.doLowMu)
176
177
178 icf.addFlag("Tracking.doStoreTrackSeeds", False)
179
180 icf.addFlag("Tracking.doStoreSiSPSeededTracks", False)
181
182 icf.addFlag("Tracking.writeSeedValNtuple", False)
183
184 icf.addFlag("Tracking.writeExtendedSi_PRDInfo", False)
185 icf.addFlag("Tracking.writeExtendedTRT_PRDInfo", False)
186 icf.addFlag("Tracking.PRDInfo.KeepOnlyOnTrackMeasurements", False)
187 icf.addFlag("Tracking.writeExtendedHGTDInfo", 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", True)
440
441
442 icf.addFlag("Tracking.doITkConversion", lambda prevFlags: (
443 not prevFlags.Tracking.doITkFastTracking and prevFlags.Detector.EnableCalo))
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", lambda prevFlags:
455 [TrackingComponent.AthenaChain] if prevFlags.GeoModel.Run <= LHCPeriod.Run3
456 else [TrackingComponent.ActsChain])
457
458
459
460
461
462
463
464 from TrkConfig.TrackingPassFlags import (
465 createTrackingPassFlags, createHighPileupTrackingPassFlags,
466 createMinBiasTrackingPassFlags, createUPCTrackingPassFlags,
467 createHIPTrackingPassFlags, createR3LargeD0TrackingPassFlags,
468 createLowPtLargeD0TrackingPassFlags,
469 createLowPtTrackingPassFlags, createVeryLowPtTrackingPassFlags,
470 createLowPtRoITrackingPassFlags, createForwardTracksTrackingPassFlags,
471 createBeamGasTrackingPassFlags, createVtxLumiTrackingPassFlags, createVtxLumiHeavyIonTrackingPassFlags,
472 createVtxBeamSpotTrackingPassFlags, createCosmicsTrackingPassFlags,
473 createHeavyIonTrackingPassFlags, createPixelTrackingPassFlags,
474 createDisappearingTrackingPassFlags, createSCTTrackingPassFlags,
475 createTRTTrackingPassFlags, createTRTStandaloneTrackingPassFlags)
476
477 def primaryPass(flags):
478 if TrackingComponent.ActsChain in flags.Tracking.recoChain:
479 return PrimaryPassConfig.Acts
480 if flags.Beam.Type is BeamType.Cosmics:
481 return PrimaryPassConfig.Cosmics
482 elif flags.Reco.EnableHI:
483 if flags.Tracking.doUPC:
484 return PrimaryPassConfig.UPC
485 elif flags.Tracking.doHIP:
486 return PrimaryPassConfig.HIP
487 else:
488 return PrimaryPassConfig.HeavyIon
489 elif flags.Tracking.doMinBias:
490 return PrimaryPassConfig.MinBias
491 else:
492 return PrimaryPassConfig.Default
493
494 icf.addFlag("Tracking.PrimaryPassConfig", lambda prevFlags:
495 primaryPass(prevFlags), type=PrimaryPassConfig)
496
497
498 icf.addFlagsCategory("Tracking.MainPass",
499 createTrackingPassFlags, prefix=True)
500 icf.addFlagsCategory("Tracking.HighPileupPass",
501 createHighPileupTrackingPassFlags, prefix=True)
502 icf.addFlagsCategory("Tracking.UPCPass",
503 createUPCTrackingPassFlags, prefix=True)
504 icf.addFlagsCategory("Tracking.HIPPass",
505 createHIPTrackingPassFlags, prefix=True)
506 icf.addFlagsCategory("Tracking.MinBiasPass",
507 createMinBiasTrackingPassFlags, prefix=True)
508 icf.addFlagsCategory("Tracking.R3LargeD0Pass",
509 createR3LargeD0TrackingPassFlags, prefix=True)
510 icf.addFlagsCategory("Tracking.LowPtLargeD0Pass",
511 createLowPtLargeD0TrackingPassFlags, prefix=True)
512 icf.addFlagsCategory("Tracking.LowPtPass",
513 createLowPtTrackingPassFlags, prefix=True)
514 icf.addFlagsCategory("Tracking.VeryLowPtPass",
515 createVeryLowPtTrackingPassFlags, prefix=True)
516 icf.addFlagsCategory("Tracking.LowPtRoIPass",
517 createLowPtRoITrackingPassFlags, prefix=True)
518 icf.addFlagsCategory("Tracking.ForwardPass",
519 createForwardTracksTrackingPassFlags, prefix=True)
520 icf.addFlagsCategory("Tracking.BeamGasPass",
521 createBeamGasTrackingPassFlags, prefix=True)
522 icf.addFlagsCategory("Tracking.VtxLumiPass",
523 createVtxLumiTrackingPassFlags, prefix=True)
524 icf.addFlagsCategory("Tracking.VtxLumiHeavyIonPass",
525 createVtxLumiHeavyIonTrackingPassFlags, prefix=True)
526 icf.addFlagsCategory("Tracking.VtxBeamSpotPass",
527 createVtxBeamSpotTrackingPassFlags, prefix=True)
528 icf.addFlagsCategory("Tracking.CosmicsPass",
529 createCosmicsTrackingPassFlags, prefix=True)
530 icf.addFlagsCategory("Tracking.HeavyIonPass",
531 createHeavyIonTrackingPassFlags, prefix=True)
532 icf.addFlagsCategory("Tracking.PixelPass",
533 createPixelTrackingPassFlags, prefix=True)
534 icf.addFlagsCategory("Tracking.DisappearingPass",
535 createDisappearingTrackingPassFlags, prefix=True)
536 icf.addFlagsCategory("Tracking.SCTPass",
537 createSCTTrackingPassFlags, prefix=True)
538 icf.addFlagsCategory("Tracking.TRTPass",
539 createTRTTrackingPassFlags, prefix=True)
540 icf.addFlagsCategory("Tracking.TRTStandalonePass",
541 createTRTStandaloneTrackingPassFlags, prefix=True)
542
543
544
545 from TrkConfig.TrackingPassFlags import (
546 createITkTrackingPassFlags, createITkLargeD0TrackingPassFlags,
547 createITkConversionTrackingPassFlags,
548 createITkFastTrackingPassFlags, createITkLargeD0FastTrackingPassFlags,
549 createITkFTFPassFlags, createITkFTFLargeD0PassFlags, createITkLowPtTrackingPassFlags,
550 createITkHeavyIonTrackingPassFlags)
551
552 def itkPrimaryPass(flags):
553 if flags.Tracking.useITkFTF:
554 return ITkPrimaryPassConfig.FTF
555 elif TrackingComponent.ActsChain in flags.Tracking.recoChain:
556 return ITkPrimaryPassConfig.Acts
557 elif TrackingComponent.ActsLegacyChain in flags.Tracking.recoChain:
558 return ITkPrimaryPassConfig.ActsLegacy
559 elif TrackingComponent.ActsHeavyIon in flags.Tracking.recoChain:
560 return ITkPrimaryPassConfig.ActsHeavyIon
561 elif flags.Tracking.doITkFastTracking:
562 return ITkPrimaryPassConfig.FastTracking
563 elif flags.Reco.EnableHI:
564 return ITkPrimaryPassConfig.HeavyIon
565 else:
566 return ITkPrimaryPassConfig.Default
567
568 icf.addFlag("Tracking.ITkPrimaryPassConfig", lambda prevFlags:
569 itkPrimaryPass(prevFlags), type=ITkPrimaryPassConfig)
570
571 icf.addFlagsCategory ("Tracking.ITkMainPass",
572 createITkTrackingPassFlags, prefix=True)
573 icf.addFlagsCategory ("Tracking.ITkLargeD0Pass",
574 createITkLargeD0TrackingPassFlags, prefix=True)
575 icf.addFlagsCategory ("Tracking.ITkConversionPass",
576 createITkConversionTrackingPassFlags, prefix=True)
577 icf.addFlagsCategory ("Tracking.ITkLowPtPass",
578 createITkLowPtTrackingPassFlags, prefix=True)
579 icf.addFlagsCategory ("Tracking.ITkFastPass",
580 createITkFastTrackingPassFlags, prefix=True)
581 icf.addFlagsCategory ("Tracking.ITkLargeD0FastPass",
582 createITkLargeD0FastTrackingPassFlags, prefix=True)
583 icf.addFlagsCategory ("Tracking.ITkFTFPass",
584 createITkFTFPassFlags, prefix=True)
585 icf.addFlagsCategory ("Tracking.ITkFTFLargeD0Pass",
586 createITkFTFLargeD0PassFlags, prefix=True)
587 icf.addFlagsCategory ("Tracking.ITkHeavyIonPass",
588 createITkHeavyIonTrackingPassFlags, prefix=True)
589
590
591 from ActsConfig.ActsTrackingPassFlags import (
592 createActsTrackingPassFlags,
593 createActsLegacyTrackingPassFlags,
594 createActsLargeRadiusTrackingPassFlags,
595 createActsConversionTrackingPassFlags,
596 createActsLowPtTrackingPassFlags,
597 createActsHeavyIonTrackingPassFlags,
598 createEFValidateF100TrackingPassFlags,
599 createEFValidateF150TrackingPassFlags,
600 createACTSInnerDetectorTrackingPassFlags
601 )
602
603 icf.addFlagsCategory ("Tracking.ITkActsPass",
604 createActsTrackingPassFlags, prefix=True)
605 icf.addFlagsCategory ("Tracking.ActsPass",
606 createACTSInnerDetectorTrackingPassFlags, prefix=True)
607 icf.addFlagsCategory ("Tracking.ITkActsLegacyPass",
608 createActsLegacyTrackingPassFlags, prefix=True)
609 icf.addFlagsCategory ("Tracking.ITkActsLargeRadiusPass",
610 createActsLargeRadiusTrackingPassFlags, prefix=True)
611 icf.addFlagsCategory ('Tracking.ITkActsConversionPass',
612 createActsConversionTrackingPassFlags, prefix=True)
613 icf.addFlagsCategory ('Tracking.ITkActsLowPtPass',
614 createActsLowPtTrackingPassFlags, prefix=True)
615 icf.addFlagsCategory ("Tracking.ITkActsHeavyIonPass",
616 createActsHeavyIonTrackingPassFlags, prefix=True)
617
618
619 icf.addFlagsCategory ("Tracking.ITkActsValidateF100Pass",
620 createEFValidateF100TrackingPassFlags, prefix=True)
621
622
623 icf.addFlagsCategory ("Tracking.ITkActsValidateF150Pass",
624 createEFValidateF150TrackingPassFlags, prefix=True)
625
626
627 from InDetGNNTracking.InDetGNNTrackingFlags import createGNNTrackingPassFlags
628 icf.addFlagsCategory ("Tracking.ITkGNNPass",
629 createGNNTrackingPassFlags, prefix=True)
630
631 from TrkConfig.InDetFPGATrackingFlags import createFPGATrackingPassFlags
632 icf.addFlagsCategory ("Tracking.ITkFPGAPass",
633 createFPGATrackingPassFlags, prefix=True)
634
635
636 icf.addFlag("Tracking.StoreSlimmedDataPreparation", False)
637
638
639
640
641 from TrkConfig.VertexFindingFlags import createPriVertexingFlags
642 icf.addFlagsCategory("Tracking.PriVertex",
643 createPriVertexingFlags, prefix=True)
644
645
646 icf.addFlag("Tracking.doVertexFinding",
647 lambda prevFlags: prevFlags.Beam.Type is not BeamType.Cosmics)
648
649 icf.addFlag("Tracking.doV0Finder", False)
650
651 icf.addFlag('Tracking.TruthClusterSplittingEff', 0.9)
652
653
654 icf.addFlag("Tracking.dumpGBTSTrainingData", 0)
655
656 return icf