4import AthenaCommon.SystemOfUnits
as Units
5from AthenaConfiguration.Enums
import BeamType, FlagEnum
6from TrkConfig.TrkConfigFlags
import PrimaryPassConfig
9 LeadTracks =
'LeadTracks'
18 from AthenaConfiguration.AthConfigFlags
import AthConfigFlags
19 icf = AthConfigFlags()
21 icf.addFlag(
"extension",
"" )
23 icf.addFlag(
"usePrdAssociationTool",
False)
24 icf.addFlag(
"isLowPt",
False)
25 icf.addFlag(
"useTIDE_Ambi",
lambda pcf: pcf.Tracking.doTIDE_Ambi)
26 icf.addFlag(
"useTRTExtension",
lambda pcf: pcf.Tracking.doTRTExtension)
27 icf.addFlag(
"storeSeparateContainer",
False)
28 icf.addFlag(
"doAmbiguityProcessorTrackFit",
True)
31 icf.addFlag(
"minPT",
lambda pcf: (pcf.BField.configuredSolenoidFieldScale *
32 (0.4 * Units.GeV
if pcf.Tracking.doLowMu
else
34 icf.addFlag(
"maxPT", 1000.0 * Units.TeV)
35 icf.addFlag(
"minEta", -1)
36 icf.addFlag(
"maxEta", 2.7)
40 icf.addFlag(
"minClusters",
lambda pcf:
41 3
if (pcf.Detector.EnablePixel
and not pcf.Detector.EnableSCT)
else
42 6
if (pcf.Detector.EnableSCT
and not pcf.Detector.EnablePixel)
else
43 7
if pcf.Tracking.doLowMu
else
46 icf.addFlag(
"minSiNotShared", 6)
48 icf.addFlag(
"maxShared", 1)
49 icf.addFlag(
"minPixel", 0)
50 icf.addFlag(
"maxHoles",
lambda pcf: 3
if pcf.Tracking.doLowMu
else 2)
51 icf.addFlag(
"maxPixelHoles",
lambda pcf: 2
if pcf.Tracking.doLowMu
else 1)
52 icf.addFlag(
"maxSctHoles", 2)
53 icf.addFlag(
"maxDoubleHoles", 1)
55 icf.addFlag(
"maxPrimaryImpact",
lambda pcf:
56 10.0 * Units.mm
if (pcf.Tracking.doBLS
or pcf.Tracking.doLowMu)
else
58 icf.addFlag(
"maxEMImpact", 50.0 * Units.mm)
59 icf.addFlag(
"maxZImpact",
lambda pcf:
60 320.0 * Units.mm
if pcf.Tracking.doLowMu
else
64 icf.addFlag(
"minTRTonTrk", 9)
65 icf.addFlag(
"minTRTPrecFrac", 0.3)
70 icf.addFlag(
"radMax", 600.0 * Units.mm)
71 icf.addFlag(
"roadWidth",
lambda pcf: 20.
if pcf.Tracking.doLowMu
else 12.)
72 icf.addFlag(
"nHolesMax",
lambda pcf: 3
if pcf.Tracking.doLowMu
else 2)
73 icf.addFlag(
"nHolesGapMax",
lambda pcf: 3
if pcf.Tracking.doLowMu
else 2)
74 icf.addFlag(
"Xi2max",
lambda pcf: 15.
if pcf.Tracking.doLowMu
else 9.)
75 icf.addFlag(
"Xi2maxNoAdd",
lambda pcf: 35.
if pcf.Tracking.doLowMu
else 25.)
76 icf.addFlag(
"nWeightedClustersMin", 6)
79 icf.addFlag(
"useSeedFilter",
True)
80 icf.addFlag(
"maxTracksPerSharedPRD", 0)
81 icf.addFlag(
"maxdImpactPPSSeeds",
lambda pcf: 1.7
if pcf.Tracking.doLowMu
else 2.)
82 icf.addFlag(
"maxdImpactSSSSeeds",
lambda pcf:
83 1000. * Units.mm
if pcf.Tracking.doLowMu
else
84 10. * Units.mm
if pcf.Tracking.doBLS
else
86 icf.addFlag(
"maxSeedsPerSP_Pixels",
lambda pcf: 5
if pcf.Tracking.doLowMu
else 1)
87 icf.addFlag(
"maxSeedsPerSP_Strips", 5)
88 icf.addFlag(
"keepAllConfirmedPixelSeeds",
lambda pcf:
not pcf.Tracking.doLowMu)
89 icf.addFlag(
"keepAllConfirmedStripSeeds",
False)
92 icf.addFlag(
"doBremRecoverySi",
lambda pcf: pcf.Tracking.doBremRecovery)
93 icf.addFlag(
"minPTBrem",
lambda pcf: (
94 1. * Units.GeV * pcf.BField.configuredSolenoidFieldScale))
97 icf.addFlag(
"doZBoundary",
lambda pcf:
98 not (pcf.Beam.Type
is BeamType.Cosmics
or pcf.Tracking.doLowMu))
100 icf.addFlag(
"usePixel" ,
lambda pcf : pcf.Detector.EnablePixel )
101 icf.addFlag(
"useSCT" ,
lambda pcf : pcf.Detector.EnableSCT )
102 icf.addFlag(
"usePixelSeeding" ,
lambda pcf : pcf.Detector.EnablePixel )
103 icf.addFlag(
"useSCTSeeding" ,
lambda pcf : pcf.Detector.EnableSCT )
106 icf.addFlag(
"RunPixelPID",
True)
107 icf.addFlag(
"RunTRTPID",
True)
112 icf.addFlag(
"storeTrackSeeds",
False)
113 icf.addFlag(
"storeSiSPSeededTracks",
False)
121 icf.doAthenaCluster =
True
122 icf.doAthenaSpacePoint =
True
123 icf.doAthenaSeed =
True
124 icf.doAthenaTrack =
True
125 icf.doAthenaAmbiguityResolution =
True
128 icf.doActsCluster =
False
129 icf.doActsSpacePoint =
False
130 icf.doActsSeed =
False
131 icf.doActsTrack =
False
132 icf.doActsAmbiguityResolution =
False
135 from ActsConfig.ActsTrackingPassFlags
import createActsLegacyTrackingPassFlags
136 icf = createActsLegacyTrackingPassFlags()
142 icf.Xi2maxNoAdd = [25.]
146 from ActsConfig.ActsTrackingPassFlags
import createActsTrackingPassFlags
147 icf = createActsTrackingPassFlags()
152 icf.Xi2maxNoAdd = [25.]
158 from ActsConfig.ActsTrackingPassFlags
import createActsHeavyIonTrackingPassFlags
159 icf = createActsHeavyIonTrackingPassFlags()
160 icf.extension =
"HeavyIon"
168 icf.addFlag(
"doHitDV" ,
False)
169 icf.addFlag(
"doDisappearingTrk" ,
False)
170 icf.addFlag(
"useTrigTrackFollowing",
False)
171 icf.addFlag(
"useTrigRoadPredictor",
False)
172 icf.addFlag(
"useTracklets",
False)
173 icf.useSeedFilter =
False
174 icf.minPT =
lambda pcf : (
175 [0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale,
176 0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale,
177 0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
178 icf.minPTSeed =
lambda pcf : (
179 0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
185 icf.addFlag(
"doHitDV" ,
False)
186 icf.addFlag(
"doDisappearingTrk" ,
False)
187 icf.addFlag(
"useTrigTrackFollowing",
False)
188 icf.addFlag(
"useTrigRoadPredictor",
False)
189 icf.addFlag(
"useTracklets",
False)
190 icf.useSeedFilter =
False
191 icf.minPT =
lambda pcf : (
192 [1.0 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
194 icf.maxPrimaryImpact = [400.0 * Units.mm]
195 icf.maxPrimaryImpactSeed = 400.0 * Units.mm
196 icf.maxdImpactSSSSeeds = [400.0 * Units.mm]
204 from ActsConfig.ActsTrackingPassFlags
import createActsLargeRadiusTrackingPassFlags
205 icf = createActsLargeRadiusTrackingPassFlags()
208 icf.extension =
"LargeD0"
210 icf.Xi2maxNoAdd = [25.0]
215 icf.useITkPixelSeeding =
False
216 icf.useITkStripSeeding =
True
219 icf.etaBins = [-1.0, 2.4]
220 icf.minPT =
lambda pcf : (
221 [5.0 * Units.GeV * pcf.BField.configuredSolenoidFieldScale])
222 icf.minPTSeed =
lambda pcf : (
223 5.0 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
224 icf.nWeightedClustersMin = [8]
225 icf.maxPrimaryImpact = [150 * Units.mm]
226 icf.maxPrimaryImpactSeed = 150. * Units.mm
227 icf.maxdImpactSSSSeeds = [150.0 * Units.mm]
228 icf.maxZImpact = [200 * Units.mm]
229 icf.maxZImpactSeed = 200. * Units.mm
230 icf.radMax = 400. * Units.mm
235 from ActsConfig.ActsTrackingPassFlags
import createActsLowPtTrackingPassFlags
236 icf = createActsLowPtTrackingPassFlags()
239 icf.extension =
"LowPt"
245 icf.extension =
"HighPileup"
246 icf.minPT =
lambda pcf : (
247 0.900 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
249 icf.maxPixelHoles = 0
250 icf.doBremRecoverySi =
False
257 icf.extension =
"MinBias"
258 icf.minPT =
lambda pcf: (
259 0.1 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
260 icf.maxPrimaryImpact = 10. * Units.mm
261 icf.maxZImpact = 250. * Units.mm
263 icf.maxdImpactSSSSeeds = 20.0 * Units.mm
265 icf.doBremRecoverySi =
False
266 icf.maxSeedsPerSP_Pixels = 5
267 icf.keepAllConfirmedPixelSeeds =
False
274 icf.extension =
"UPC"
276 icf.minPTBrem =
lambda pcf: (
277 0.75 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
279 icf.doBremRecoverySi =
lambda pcf: pcf.Tracking.doBremRecovery
285 icf.extension =
"HIP"
292 icf.extension =
"LowPtRoI"
293 icf.usePrdAssociationTool =
True
294 icf.storeSeparateContainer =
True
295 icf.maxPT =
lambda pcf: (
296 0.850 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
297 icf.minPT =
lambda pcf: (
298 0.050 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
300 icf.minSiNotShared = 4
304 icf.maxPixelHoles = 1
306 icf.maxDoubleHoles = 1
307 icf.radMax = 600. * Units.mm
308 icf.nHolesMax = icf.maxHoles
309 icf.nHolesGapMax = icf.maxHoles
310 icf.doBremRecoverySi =
False
312 icf.addFlag(
"z0WindowRoI", 30.0)
313 icf.addFlag(
"doRandomSpot",
False)
314 icf.addFlag(
"RoIStrategy", RoIStrategy.LeadTracks)
315 icf.addFlag(
"inputLowPtRoIfile",
"")
323 icf.extension =
"R3LargeD0"
324 icf.usePrdAssociationTool =
True
325 icf.usePixelSeeding =
False
326 icf.storeSeparateContainer =
lambda pcf : pcf.Tracking.storeSeparateLargeD0Container
327 icf.maxPT =
lambda pcf : (
328 1.0 * Units.TeV * pcf.BField.configuredSolenoidFieldScale)
329 icf.minPT =
lambda pcf : (
330 1.0 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
332 icf.maxPrimaryImpact = 300.0 * Units.mm
333 icf.maxEMImpact = 300 * Units.mm
334 icf.maxZImpact = 500 * Units.mm
336 icf.minSiNotShared = 6
340 icf.maxPixelHoles = 1
342 icf.maxDoubleHoles = 0
343 icf.radMax = 600. * Units.mm
344 icf.nHolesMax = icf.maxHoles
346 icf.maxTracksPerSharedPRD = 2
348 icf.Xi2maxNoAdd = 25.0
350 icf.nWeightedClustersMin = 8
351 icf.maxdImpactSSSSeeds = 300.0
352 icf.doZBoundary =
True
353 icf.keepAllConfirmedStripSeeds =
True
354 icf.maxSeedsPerSP_Strips = 1
355 icf.doBremRecoverySi =
False
357 icf.RunPixelPID =
False
358 icf.RunTRTPID =
False
365 icf.extension =
"LowPtLargeD0"
366 icf.usePrdAssociationTool =
True
367 icf.storeSeparateContainer =
lambda pcf : pcf.Tracking.storeSeparateLargeD0Container
368 icf.maxPT =
lambda pcf: (
369 1.0 * Units.TeV * pcf.BField.configuredSolenoidFieldScale)
370 icf.minPT =
lambda pcf: (
371 100 * Units.MeV * pcf.BField.configuredSolenoidFieldScale)
373 icf.maxPrimaryImpact = 300.0 * Units.mm
374 icf.maxZImpact = 1500.0 * Units.mm
376 icf.minSiNotShared = 5
380 icf.maxPixelHoles = 1
382 icf.maxDoubleHoles = 1
383 icf.radMax = 600. * Units.mm
384 icf.nHolesMax = icf.maxHoles
385 icf.nHolesGapMax = icf.maxHoles
386 icf.maxTracksPerSharedPRD = 2
387 icf.doBremRecoverySi =
False
389 icf.RunPixelPID =
False
390 icf.RunTRTPID =
False
397 icf.extension =
"LowPt"
398 icf.usePrdAssociationTool =
True
400 icf.maxPT =
lambda pcf: (
401 pcf.BField.configuredSolenoidFieldScale *
402 (1e6
if pcf.Tracking.doMinBias
else
403 pcf.Tracking.MainPass.minPT + 0.3) * Units.GeV)
404 icf.minPT =
lambda pcf: (
405 0.05 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
407 icf.minSiNotShared = 4
411 icf.maxPixelHoles = 1
413 icf.maxDoubleHoles = 1
414 icf.radMax = 600. * Units.mm
415 icf.nHolesMax = icf.maxHoles
416 icf.nHolesGapMax = icf.maxHoles
417 icf.maxPrimaryImpact =
lambda pcf: (
418 100. * Units.mm
if pcf.Tracking.doMinBias
else 10. * Units.mm)
419 icf.doBremRecoverySi =
False
425 from ActsConfig.ActsTrackingPassFlags
import createActsConversionTrackingPassFlags
426 icf = createActsConversionTrackingPassFlags()
429 icf.extension =
"Conversion"
431 icf.Xi2maxNoAdd = [25.0]
437 icf.extension =
"VeryLowPt"
438 icf.usePrdAssociationTool =
True
440 icf.useTRTExtension =
False
441 icf.maxPT =
lambda pcf : (
442 pcf.BField.configuredSolenoidFieldScale *
443 (1e6
if pcf.Tracking.doMinBias
else
444 pcf.Tracking.MainPass.minPT + 0.3) * Units.GeV)
445 icf.minPT =
lambda pcf : (
446 0.050 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
448 icf.minSiNotShared = 3
452 icf.maxPixelHoles = 1
454 icf.maxDoubleHoles = 0
457 icf.radMax = 600. * Units.mm
458 icf.doBremRecoverySi =
False
465 icf.extension =
"Forward"
466 icf.usePrdAssociationTool =
True
467 icf.useTIDE_Ambi =
False
468 icf.useTRTExtension =
False
469 icf.storeSeparateContainer =
True
472 icf.minPT =
lambda pcf: (
473 2 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
475 icf.minSiNotShared = 3
479 icf.maxPixelHoles = 1
481 icf.maxDoubleHoles = 0
482 icf.nHolesMax = icf.maxHoles
483 icf.nHolesGapMax = icf.maxHoles
484 icf.radMax = 600. * Units.mm
485 icf.doBremRecoverySi =
False
486 icf.doZBoundary =
False
488 icf.RunPixelPID =
False
489 icf.RunTRTPID =
False
496 icf.extension =
"BeamGas"
497 icf.usePrdAssociationTool =
True
498 icf.minPT =
lambda pcf: (
499 0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
500 icf.maxPrimaryImpact = 300. * Units.mm
501 icf.maxZImpact = 2000. * Units.mm
504 icf.maxPixelHoles = 3
506 icf.maxDoubleHoles = 1
509 icf.doBremRecoverySi =
False
516 icf.extension =
"VtxLumi"
517 icf.minPT =
lambda pcf: (
518 0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
520 icf.maxPixelHoles = 1
521 icf.radMax = 600. * Units.mm
524 icf.doBremRecoverySi =
False
531 icf.extension =
"VtxLumiHeavyIon"
532 icf.minPT =
lambda pcf: (
533 0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
534 icf.maxPrimaryImpact = 10. * Units.mm
535 icf.maxZImpact = 250.0 * Units.mm
537 icf.maxPixelHoles = 1
538 icf.radMax = 600. * Units.mm
541 icf.maxdImpactSSSSeeds = 20.
543 icf.keepAllConfirmedPixelSeeds =
False
544 icf.maxSeedsPerSP_Pixels = 5
545 icf.doBremRecoverySi =
False
552 icf.extension =
"VtxBeamSpot"
553 icf.minPT =
lambda pcf: (
554 0.9 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
556 icf.maxPixelHoles = 0
557 icf.radMax = 320. * Units.mm
560 icf.doBremRecoverySi =
False
567 icf.extension =
"Cosmics"
568 icf.minPT =
lambda pcf: (
569 0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
570 icf.maxPrimaryImpact = 1000. * Units.mm
571 icf.maxZImpact = 10000. * Units.mm
573 icf.minSiNotShared = 4
575 icf.maxPixelHoles = 3
577 icf.maxDoubleHoles = 1
581 icf.Xi2maxNoAdd = 100.
582 icf.nWeightedClustersMin = 8
585 icf.maxdImpactSSSSeeds = 20. * Units.mm
586 icf.doBremRecoverySi =
False
587 icf.doZBoundary =
False
588 icf.maxSeedsPerSP_Pixels = 5
589 icf.keepAllConfirmedPixelSeeds =
False
596 icf.extension =
"HeavyIon"
597 icf.maxPrimaryImpact = 10. * Units.mm
598 icf.maxZImpact = 200. * Units.mm
600 icf.minSiNotShared = 7
606 icf.Xi2maxNoAdd = 10.
608 icf.minPT =
lambda pcf: (
609 0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
611 icf.maxdImpactSSSSeeds = 20. * Units.mm
612 icf.maxdImpactPPSSeeds = 1.7
615 icf.maxPixelHoles = 1
617 icf.maxDoubleHoles = 0
619 icf.Xi2maxNoAdd = 25.
620 icf.radMax = 600. * Units.mm
622 icf.doBremRecoverySi =
False
623 icf.doZBoundary =
False
624 icf.maxSeedsPerSP_Pixels = 5
625 icf.keepAllConfirmedPixelSeeds =
False
632 icf.extension =
"Pixel"
633 icf.isLowPt =
lambda pcf : pcf.Tracking.doMinBias
636 if pcf.Beam.Type
is BeamType.Cosmics:
637 return 0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
638 if pcf.Tracking.PrimaryPassConfig
is PrimaryPassConfig.UPC:
639 return 0.05 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
640 if pcf.Tracking.PrimaryPassConfig
is PrimaryPassConfig.HIP:
641 return 0.05 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
642 if pcf.Tracking.doMinBias:
643 return 0.05 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
644 return 0.1 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
649 def _pick( default, hion, cosmics):
650 def _internal( pcf ):
651 if pcf.Tracking.PrimaryPassConfig
is PrimaryPassConfig.HeavyIon:
653 if pcf.Beam.Type
is BeamType.Cosmics:
658 icf.maxHoles = _pick( default = 1, hion = 0, cosmics = 3 )
659 icf.maxPixelHoles = _pick( default = 1, hion = 0, cosmics = 3 )
661 icf.maxDoubleHoles = 0
662 icf.minSiNotShared = 3
664 icf.nHolesMax = _pick( default = 1, hion = 0, cosmics = 3 )
665 icf.nHolesGapMax = _pick( default = 1, hion = 0, cosmics = 3 )
667 icf.useSCTSeeding =
False
668 icf.maxPrimaryImpact =
lambda pcf: (
669 1000. * Units.mm
if pcf.Beam.Type
is BeamType.Cosmics
else
670 10. * Units.mm
if pcf.Tracking.doUPC
else
672 icf.roadWidth =
lambda pcf: (
673 60.0
if pcf.Beam.Type
is BeamType.Cosmics
else
675 icf.maxZImpact =
lambda pcf: (
676 10000. * Units.mm
if pcf.Beam.Type
is BeamType.Cosmics
else
677 320. * Units.mm
if pcf.Tracking.doLowMu
else
678 250. * Units.mm
if pcf.Tracking.doMinBias
else
680 icf.Xi2max =
lambda pcf: (
681 60.
if pcf.Beam.Type
is BeamType.Cosmics
else
682 15.
if pcf.Tracking.doLowMu
else
684 icf.Xi2maxNoAdd =
lambda pcf: (
685 100.0
if pcf.Beam.Type
is BeamType.Cosmics
else
686 35.
if pcf.Tracking.doLowMu
else
688 icf.nWeightedClustersMin = 6
689 icf.doBremRecoverySi =
False
691 icf.RunPixelPID =
lambda pcf: (
692 pcf.Tracking.PrimaryPassConfig
is PrimaryPassConfig.UPC)
693 icf.RunTRTPID =
False
699 icf.extension =
"Disappearing"
700 icf.usePrdAssociationTool =
True
701 icf.storeSeparateContainer =
True
702 icf.minPT =
lambda pcf: (
703 5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
706 icf.maxPixelHoles = 0
708 icf.maxDoubleHoles = 0
709 icf.minSiNotShared = 3
714 icf.useSCTSeeding =
False
716 icf.doBremRecoverySi =
False
717 def MainPassFlags(pcf):
718 return pcf.Tracking.__getattr__(pcf.Tracking.PrimaryPassConfig.value+
'Pass')
719 icf.maxPrimaryImpact =
lambda pcf: MainPassFlags(pcf).maxPrimaryImpact
720 icf.maxZImpact =
lambda pcf: MainPassFlags(pcf).maxZImpact
721 icf.roadWidth =
lambda pcf: MainPassFlags(pcf).roadWidth
727 icf.extension =
"SCT"
729 icf.maxDoubleHoles = 1
730 icf.minSiNotShared = 5
732 icf.usePixelSeeding =
False
735 if pcf.Beam.Type
is BeamType.Cosmics:
736 return 0.5 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
737 if pcf.Tracking.doMinBias:
738 return 0.1 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
739 return 0.1 * Units.GeV * pcf.BField.configuredSolenoidFieldScale
743 icf.maxPrimaryImpact =
lambda pcf: (
744 1000. * Units.mm
if pcf.Beam.Type
is BeamType.Cosmics
else
745 10. * Units.mm
if pcf.Tracking.doLowMu
else
747 icf.maxZImpact =
lambda pcf: (
748 10000. * Units.mm
if pcf.Beam.Type
is BeamType.Cosmics
else
749 320. * Units.mm
if pcf.Tracking.doLowMu
else
752 icf.maxHoles =
lambda pcf: 3
if pcf.Beam.Type
is BeamType.Cosmics
else 2
753 icf.nHolesMax =
lambda pcf: 3
if pcf.Beam.Type
is BeamType.Cosmics
else 2
754 icf.nHolesGapMax =
lambda pcf: 3
if pcf.Beam.Type
is BeamType.Cosmics
else 2
755 icf.maxPixelHoles =
lambda pcf: 0
if pcf.Beam.Type
is BeamType.Cosmics
else 0
756 icf.maxSctHoles =
lambda pcf: 3
if pcf.Beam.Type
is BeamType.Cosmics
else 2
758 icf.roadWidth =
lambda pcf: (
759 60.
if pcf.Beam.Type
is BeamType.Cosmics
else
760 20.
if pcf.Tracking.doLowMu
else
762 icf.Xi2max =
lambda pcf: (
763 60.
if pcf.Beam.Type
is BeamType.Cosmics
else
764 15.
if pcf.Tracking.doLowMu
else
766 icf.Xi2maxNoAdd =
lambda pcf: (
767 100.0
if pcf.Beam.Type
is BeamType.Cosmics
else
768 35.
if pcf.Tracking.doLowMu
else
770 icf.nWeightedClustersMin =
lambda pcf: 4
if pcf.Beam.Type
is BeamType.Cosmics
else 6
771 icf.minClusters =
lambda pcf: (
772 4
if pcf.Beam.Type
is BeamType.Cosmics
else
773 7
if pcf.Tracking.doLowMu
else
775 icf.minSiNotShared =
lambda pcf: 4
if pcf.Beam.Type
is BeamType.Cosmics
else 5
776 icf.doBremRecoverySi =
False
778 icf.RunPixelPID =
False
779 icf.RunTRTPID =
False
785 icf.extension =
"TRT"
786 icf.useTIDE_Ambi =
False
787 icf.usePrdAssociationTool =
True
788 icf.minPT =
lambda pcf: (
789 0.4 * Units.GeV * pcf.BField.configuredSolenoidFieldScale)
790 icf.doBremRecoverySi =
False
792 icf.RunPixelPID =
False
793 icf.RunTRTPID =
False
800 icf.extension =
"TRTStandalone"
801 icf.useTIDE_Ambi =
False
802 icf.usePrdAssociationTool =
True
803 icf.doBremRecoverySi =
False
812 print(
"************************************************************************")
814 print(
"******************** Tracking reconstruction Config ********************")
815 print(
" Primary Config is",flags.Tracking[flags.Tracking.PrimaryPassConfig.value+
"Pass"].extension)
816 flags.dump(pattern=
"Tracking."+flags.Tracking.PrimaryPassConfig.value+
"Pass.*", evaluate=
True)
817 print(
"************************************************************************")
823 print(
"************************************************************************")
825 print(
"******************** Tracking reconstruction Config ********************")
826 print(
" Active Config is",flags.Tracking.ActiveConfig.extension)
827 flags.dump(pattern=
"Tracking.ActiveConfig.*", evaluate=
True)
828 print(
"************************************************************************")
835if __name__ ==
"__main__":
837 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
838 flags = initConfigFlags()
840 from AthenaConfiguration.TestDefaults
import defaultTestFiles
841 flags.Input.Files=defaultTestFiles.RAW_RUN2
843 from AthenaCommon.Logging
import logging
844 l = logging.getLogger(
'TrackingPassFlags')
848 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.MainPass")
850 assert flags.Tracking.ActiveConfig.maxPrimaryImpact == 5.0 * Units.mm,
"wrong cut value {} ".format(flags.Tracking.ActiveConfig.maxPrimaryImpact)
851 assert flags.Tracking.HeavyIonPass.maxPrimaryImpact == 10.0 * Units.mm,
"wrong cut value {} ".format(flags.Tracking.HeavyIonPass.maxPrimaryImpact)
852 flags.Tracking.doBLS =
True
853 assert flags.Tracking.ActiveConfig.maxPrimaryImpact == 10.0 * Units.mm,
"wrong cut value {} ".format(flags.Tracking.ActiveConfig.maxPrimaryImpact)
855 assert flags.Tracking.ActiveConfig.minPT == 0.5 * Units.GeV,
"wrong cut value {} ".format(flags.Tracking.ActiveConfig.minPT)
856 flags.BField.configuredSolenoidFieldScale = 0.1
857 assert flags.Tracking.ActiveConfig.minPT == 0.05 * Units.GeV,
"wrong cut value {} ".format(flags.Tracking.ActiveConfig.minPT)
859 l.info(
"flags.Tracking.ActiveConfig.minPT %f", flags.Tracking.ActiveConfig.minPT * 1.0)
860 l.info(
"type(flags.Tracking.ActiveConfig.minPT) " + str(
type(flags.Tracking.ActiveConfig.minPT)))
void print(char *figname, TCanvas *c1)
createITkLowPtTrackingPassFlags()
ITk LowPt mode ####################.
createR3LargeD0TrackingPassFlags()
R3LargeD0 mode ########################.
deactivateActsComponents(icf)
createITkConversionTrackingPassFlags()
ITkConversion mode ########################.
createHeavyIonTrackingPassFlags()
Heavyion mode #######################.
createUPCTrackingPassFlags()
UPC mode ########################.
createITkFTFPassFlags()
ITk with FTF standalone mode ####.
createHIPTrackingPassFlags()
HIP mode ########################.
createITkLargeD0FastTrackingPassFlags()
createVtxBeamSpotTrackingPassFlags()
VtxBeamSpot mode ########################.
createITkLargeD0TrackingPassFlags()
ITk LRT mode ####################.
createVtxLumiTrackingPassFlags()
VtxLumi mode ########################.
createITkFastTrackingPassFlags()
printPrimaryConfig(flags)
activateAthenaComponents(icf)
ITk mode ####################.
createCosmicsTrackingPassFlags()
Cosmics mode ########################.
createLowPtRoITrackingPassFlags()
LowPtRoI mode ########################.
createLowPtLargeD0TrackingPassFlags()
LowPtLargeD0 mode ########################.
createLowPtTrackingPassFlags()
LowPt mode ########################.
createITkFTFLargeD0PassFlags()
createBeamGasTrackingPassFlags()
BeamGas mode ########################.
createITkTrackingPassFlags()
createSCTTrackingPassFlags()
SCT mode ######################.
createHighPileupTrackingPassFlags()
HighPileUP mode ####################.
createForwardTracksTrackingPassFlags()
ForwardTracks mode ########################.
createTrackingPassFlags()
createPixelTrackingPassFlags()
Pixel mode ###############################################.
createTRTTrackingPassFlags()
TRT subdetector tracklet cuts ##########.
createVeryLowPtTrackingPassFlags()
VeryLowPt mode ########################.
createDisappearingTrackingPassFlags()
Disappearing mode ######################.
createMinBiasTrackingPassFlags()
MinBias mode ########################.
createTRTStandaloneTrackingPassFlags()
TRT standalone tracklet cuts ##########.
createITkHeavyIonTrackingPassFlags()
Heavyion mode #######################.
createVtxLumiHeavyIonTrackingPassFlags()
VtxLumiHeavyIon mode ################.