3from AthenaConfiguration.AthConfigFlags
import AthConfigFlags
4from TrkConfig.TrackingPassFlags
import createTrackingPassFlags,createITkTrackingPassFlags
5from ActsConfig.ActsTrackingPassFlags
import createActsTrackingPassFlags
6from TrigEDMConfig.TriggerEDM
import recordable
8from AthenaCommon.Logging
import logging
9import AthenaCommon.SystemOfUnits
as Units
11from copy
import deepcopy
14log = logging.getLogger(
"__name__")
18 flags.addFlag(
"input_name",
"")
19 flags.addFlag(
"name",
"")
20 flags.addFlag(
"suffix",
"")
22 flags.addFlag(
"TripletDoPPS",
True)
23 flags.addFlag(
"Triplet_D0Max", 4.0)
24 flags.addFlag(
"Triplet_D0_PPS_Max", 1.7)
25 flags.addFlag(
"DoPhiFiltering",
True)
26 flags.addFlag(
"doZFinder",
False)
27 flags.addFlag(
"doZFinderOnly",
False)
28 flags.addFlag(
"doResMon",
False)
29 flags.addFlag(
"doCloneRemoval",
True)
30 flags.addFlag(
"doSeedRedundancyCheck",
False)
31 flags.addFlag(
"DoubletDR_Max", 270)
32 flags.addFlag(
"SeedRadBinWidth", 2)
33 flags.addFlag(
"holeSearch_FTF",
False)
34 flags.addFlag(
"electronPID",
False)
35 flags.addFlag(
"etaHalfWidth", 0.1)
36 flags.addFlag(
"phiHalfWidth", 0.1)
37 flags.addFlag(
"zedHalfWidth", -999)
38 flags.addFlag(
"doTRT",
True)
40 flags.addFlag(
"UsePixelSpacePoints",
True)
41 flags.addFlag(
"TrackInitialD0Max", 20.0)
42 flags.addFlag(
"TrackZ0Max", 300.0)
43 flags.addFlag(
"isLRT",
False)
44 flags.addFlag(
"UseTrigSeedML", 0)
45 flags.addFlag(
"nClustersMin", 7)
46 flags.addFlag(
"roi",
"")
47 flags.addFlag(
"LRT_D0Min", 2.0)
48 flags.addFlag(
"LRT_HardPtMin", 1.0*Units.GeV)
49 flags.addFlag(
"vertex",
"")
50 flags.addFlag(
"adaptiveVertex",
False)
51 flags.addFlag(
"addSingleTrackVertices",
False)
52 flags.addFlag(
"TracksMaxZinterval", 1*Units.mm)
53 flags.addFlag(
"minNSiHits_vtx", 10)
54 flags.addFlag(
"vertex_jet",
"")
55 flags.addFlag(
"dodEdxTrk",
False)
56 flags.addFlag(
"doHitDV",
False)
57 flags.addFlag(
"doDisappearingTrk",
False)
58 flags.addFlag(
"useDynamicRoiZWidth",
False)
67 flags.addFlag(
"minSiClusters", 7)
68 flags.addFlag(
"maxSiHoles", 5)
69 flags.maxPixelHoles = 5
70 flags.addFlag(
"maxSCTHoles", 5)
71 flags.maxDoubleHoles = 2
72 flags.addFlag(
"doEmCaloSeed",
False)
74 flags.useSeedFilter =
False
75 flags.doBremRecoverySi =
False
77 flags.addFlag(
"refitROT",
True)
78 flags.addFlag(
"doTruth",
False)
79 flags.addFlag(
"perigeeExpression",
"BeamLine")
81 flags.addFlag(
"trkTracks_FTF",
"")
82 flags.addFlag(
"trkTracks_IDTrig",
"")
83 flags.addFlag(
"tracks_FTF",
"")
84 flags.addFlag(
"tracks_IDTrig",
"")
85 flags.addFlag(
"useGBTSeedingTool",
False)
89 flags = createTrackingPassFlags()
92 flags.minPT = 1.0*Units.GeV
94 flags.minSiNotShared = 5
97 flags.Xi2maxNoAdd = 25.
99 flags.nHolesGapMax = 2
100 flags.nWeightedClustersMin= 6
104 flags.maxPrimaryImpact = 10.
105 flags.maxEMImpact = 50.
106 flags.maxZImpact = 250.
111 flags.useTIDE_Ambi =
False
115 flags.maxSCTHoles = 5
121 flags = createITkTrackingPassFlags()
124 flags.minPT = [1.0*Units.GeV,0.45*Units.GeV,0.45*Units.GeV]
125 flags.minClusters = [9,8,7]
127 flags.Xi2maxNoAdd = [25.]
128 flags.nHolesMax = [2]
129 flags.nHolesGapMax = [2]
130 flags.nWeightedClustersMin= [6]
131 flags.maxDoubleHoles = [2]
132 flags.maxPixelHoles = [5]
133 flags.maxZImpact = [250.0]
135 flags.doZFinder =
False
136 flags.DoPhiFiltering =
True
137 flags.UsePixelSpacePoints =
True
138 flags.doDisappearingTrk =
False
139 flags.doCaloSeededBremSi =
False
140 flags.doCaloSeededAmbiSi =
False
141 flags.DoubletDR_Max = 150.0
142 flags.useTIDE_Ambi =
False
148 flags = createActsTrackingPassFlags()
151 flags.minPT = [0.9*Units.GeV, 0.4*Units.GeV, 0.4*Units.GeV]
152 flags.minClusters = [9, 8, 7]
155 flags.maxShared = [2]
157 flags.maxPixelHoles = [2]
158 flags.maxSctHoles = [2]
159 flags.maxShared = [2]
160 flags.maxDoubleHoles = [1]
165 """Apply the Acts-specific steering and cuts needed by trigger LRT."""
166 flags.isLargeD0 =
True
167 flags.etaBins = [-1.0, 2.7]
168 flags.minPT = [1.0 * Units.GeV]
169 flags.minPTSeed = 1.0 * Units.GeV
170 flags.maxPrimaryImpactSeed = 300.0 * Units.mm
171 flags.maxZImpactSeed = 500.0 * Units.mm
180 "electron" : electron,
185 "muonIsoMS" : muonIso,
191 "tauCoreEM" : tauCoreEM,
193 "tauIsoEM" : tauIsoEM,
194 "tauHitsHitZ" : tauHitsHitZ,
195 "tauCoreHitZ" : tauCoreHitZ,
196 "tauIsoHitZ" : tauIsoHitZ,
202 "fullScan" : fullScan,
203 "jetSuper" : jetSuper,
205 "beamSpot" : beamSpot,
206 "beamSpotFS" : beamSpotFS,
213 "minBiasPixel" : minBiasPixel,
215 "electronLRT" : electronLRT,
219 "fullScanLRT" : fullScanLRT,
224 flags = AthConfigFlags()
227 category =
'Trigger.InDetTracking'
228 defaults = defaultInDetTrigTrackingFlags
230 category =
'Trigger.ITkTracking'
231 defaults = defaultITkTrigTrackingFlags
233 category =
"Trigger.ActsTracking"
234 defaults = defaultITkActsTrigTrackingFlags
236 log.error(
"Unsupported reconstruction mode %s", mode)
239 class categoryGeneratorWrapper():
240 """ wrap function which can be consumed by addFlagsCategory and provide its args """
241 def __init__(self, fun : Callable[[AthConfigFlags, str, str], AthConfigFlags],
242 flags : AthConfigFlags, signatureInstance : str, recoMode : str):
244 self.sig = signatureInstance
248 return self.fun(self.flags,self.sig,self.mode)
250 for i
in signatureSet:
251 trackingflags = deepcopy(
defaults())
252 a = categoryGeneratorWrapper(signatureSet[i],trackingflags,i,mode)
253 signatureCategory =
"{}.{}".format(category,i)
254 flags.addFlagsCategory(signatureCategory,a.run,prefix=
True)
262 """ convenience decorator to automate config steps """
263 def invokeSteps(*args, **kwargs):
264 flagsSig = func(*args, **kwargs)
272 """Set common LRT flags before applying per-signature overrides."""
274 def invokeSteps(flags: AthConfigFlags, instanceName: str, recoMode: str):
276 if recoMode ==
"Acts":
278 return func(flags, instanceName, recoMode)
283 """ use previous type of the var and convert value to it
284 for the moment just makes list of a value if needed
287 typeOfValue =
type(value)
288 if type2set == typeOfValue:
291 basic = (bool, str, int, float,
type(
None))
292 var = value
if isinstance(var, basic)
else [value]
297 """ depending on the destination flag type either keep list of values or flatten to a single value
300 typeOfValue =
type(settings)
301 if type2set == typeOfValue:
304 if isinstance(settings, list):
305 var = settings[0]
if settings
else None
312def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
314 flags.input_name = instanceName
315 flags.name =
"electron"
316 flags.suffix =
"Electron"
317 flags.roi =
"HLT_Roi_Electron"
318 flags.etaHalfWidth = 0.05
319 flags.phiHalfWidth = 0.1
320 flags.doCloneRemoval =
True
321 flags.doSeedRedundancyCheck =
True
322 if recoMode==
"InDet":
324 flags.electronPID =
True
328def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
330 flags.input_name = instanceName
332 flags.suffix =
"Muon"
333 flags.roi =
"HLT_Roi_L2SAMuon"
334 flags.Triplet_D0Max = 10.0
335 flags.doResMon =
True
336 flags.DoPhiFiltering =
False
337 flags.doSeedRedundancyCheck =
True
341def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
343 flags.input_name = instanceName
344 flags.name =
"muonIso"
345 flags.suffix =
"MuonIso"
346 flags.roi =
"HLT_Roi_MuonIso"
347 flags.etaHalfWidth = 0.35
348 flags.phiHalfWidth = 0.35
349 flags.zedHalfWidth = 10.0
353def tauHitsHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
356 flags.input_name = instanceName
357 flags.name =
"tauHitsHitZ"
358 flags.suffix =
"TauHits"
359 flags.roi =
"HLT_Roi_TauHitsHitZ"
363def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
365 flags.input_name = instanceName
366 flags.name =
"tauCore"
367 flags.suffix =
"TauCore"
368 flags.roi =
"HLT_Roi_TauCore"
370 flags.holeSearch_FTF =
True
374def tauCoreEM(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
375 flags =
tauCore(flags, instanceName, recoMode)
376 flags.name =
"tauCoreEM"
377 flags.suffix =
"TauCoreEM"
378 flags.roi =
"HLT_Roi_TauCoreEM"
382def tauCoreHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
383 flags =
tauCore(flags, instanceName, recoMode)
384 flags.name =
"tauCoreHitZ"
385 flags.roi =
"HLT_Roi_TauCoreHitZ"
386 flags.zedHalfWidth = 30.0
390def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
392 flags.input_name = instanceName
393 flags.name =
"tauIso"
394 flags.suffix =
"TauIso"
395 flags.roi =
"HLT_Roi_TauIso"
396 flags.etaHalfWidth = 0.4
397 flags.phiHalfWidth = 0.4
398 flags.zedHalfWidth = 7.0
399 flags.adaptiveVertex =
True
400 flags.addSingleTrackVertices =
True
401 flags.vertex =
"HLT_IDVertex_Tau"
402 flags.electronPID =
False
407def tauIsoEM(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
408 flags =
tauIso(flags, instanceName, recoMode)
409 flags.name =
"tauIsoEM"
410 flags.suffix =
"TauIsoEM"
411 flags.roi =
"HLT_Roi_TauIsoEM"
415def tauIsoHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
416 flags =
tauIso(flags, instanceName, recoMode)
417 flags.name =
"tauIsoHitZ"
418 flags.roi =
"HLT_Roi_TauIsoHitZ"
422def diTau(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
424 flags.input_name = instanceName
426 flags.suffix =
"DiTau"
427 flags.roi =
"HLT_Roi_DiTau"
428 flags.etaHalfWidth = 1.0
429 flags.phiHalfWidth = 1.0
430 flags.zedHalfWidth = 7.0
431 flags.adaptiveVertex =
True
432 flags.addSingleTrackVertices =
True
433 flags.vertex =
"HLT_IDVertex_DiTau"
434 flags.electronPID =
False
439def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
441 flags.input_name = instanceName
443 flags.suffix =
"Bjet"
444 flags.roi =
"HLT_Roi_Bjet"
445 flags.etaHalfWidth = 0.4
446 flags.phiHalfWidth = 0.4
447 flags.zedHalfWidth = 10.0
449 flags.Xi2max =
tsetter(flags.Xi2max,12.)
450 if recoMode ==
"Acts":
451 flags.Xi2maxSigma = [math.sqrt(12.)]
455def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
457 flags.input_name = instanceName
458 flags.name =
"jetSuper"
459 flags.suffix =
"JetSuper"
460 flags.vertex =
"HLT_IDVertex_JetSuper"
461 flags.adaptiveVertex =
True
462 flags.addSingleTrackVertices =
True
463 flags.roi =
"HLT_Roi_JetSuper"
464 flags.etaHalfWidth = 0.3
465 flags.phiHalfWidth = 0.3
470 flags.DoubletDR_Max = 200
471 flags.SeedRadBinWidth = 10
472 flags.doSeedRedundancyCheck =
True
473 flags.TripletDoPPS =
False
474 flags.nClustersMin = 8
475 flags.UseTrigSeedML = 4
480def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
482 flags.input_name = instanceName
483 flags.name =
"minBias"
484 flags.suffix =
"MinBias"
485 flags.roi =
"HLT_Roi_MinBias"
489 flags.etaHalfWidth = 3
490 flags.phiHalfWidth = math.pi
491 flags.doZFinder =
True
492 flags.doZFinderOnly =
True
494 flags.nClustersMin = 5
495 flags.useSeedFilter =
True
496 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
497 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
499 flags.usePrdAssociationTool =
False
504def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
506 flags.input_name = instanceName
507 flags.name =
"minBiasPixel"
508 flags.suffix =
"MinBiasPixel"
509 flags.roi =
"HLT_Roi_MinBias"
514 flags.maxPixelHoles = 0
515 flags.maxSctHoles = 0
516 flags.maxDoubleHoles = 0
517 flags.minSiNotShared = 3
519 if recoMode !=
"Acts":
521 flags.nHolesGapMax = 0
522 if recoMode==
"InDet":
524 flags.useSCTSeeding =
False
526 flags.roadWidth = 12.0
528 flags.Xi2maxNoAdd = 35.0
529 flags.nWeightedClustersMin = 6
530 flags.doBremRecoverySi =
False
531 flags.RunPixelPID =
False
534 flags.etaHalfWidth = 3
535 flags.phiHalfWidth = math.pi
536 flags.doZFinder =
False
537 flags.doZFinderOnly =
True
539 flags.minClusters = 3
540 flags.nClustersMin = 3
541 flags.useSeedFilter =
True
542 flags.maxPrimaryImpact = 10.*Units.mm
543 flags.maxZImpact = 150.*Units.mm
545 flags.usePrdAssociationTool =
False
551def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
553 flags.input_name = instanceName
554 flags.name =
"beamSpot"
555 flags.suffix =
"BeamSpot"
556 flags.roi =
"HLT_Roi_FS"
557 flags.doZFinder =
True
558 flags.DoubletDR_Max = 200
559 flags.SeedRadBinWidth = 10
560 flags.etaHalfWidth = 3
561 flags.phiHalfWidth = math.pi
563 flags.doSeedRedundancyCheck =
True
568def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
570 flags.input_name = instanceName
571 flags.name =
"fullScan"
573 flags.roi =
"HLT_Roi_FS"
574 flags.vertex =
"HLT_IDVertex_FS"
575 flags.adaptiveVertex =
True
579 flags.vertex_jet =
"HLT_IDVertex_FS"
580 flags.etaHalfWidth = 3.
581 flags.phiHalfWidth = math.pi
583 flags.DoubletDR_Max = 200
584 flags.SeedRadBinWidth = 10
585 flags.doSeedRedundancyCheck =
True
586 flags.TripletDoPPS =
False
587 flags.nClustersMin = 8
588 flags.UseTrigSeedML = 4
589 flags.dodEdxTrk =
True
591 flags.doDisappearingTrk = recoMode==
"InDet"
597def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
599 flags.input_name = instanceName
600 flags.name =
"fullScan"
602 flags.roi =
"HLT_Roi_FS"
603 flags.etaHalfWidth = 3.
604 flags.phiHalfWidth = math.pi
606 flags.DoubletDR_Max = 200
607 flags.SeedRadBinWidth = 10
608 flags.TripletDoPPS =
False
609 flags.nClustersMin = 8
610 flags.UseTrigSeedML = 4
615def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
617 flags.input_name = instanceName
618 flags.name =
"cosmics"
619 flags.suffix =
"Cosmic"
620 flags.roi =
"HLT_Roi_Cosmics"
621 flags.Triplet_D0Max = 1000.0
622 flags.Triplet_D0_PPS_Max = 1000.0
623 flags.TrackInitialD0Max = 1000.
624 flags.TrackZ0Max = 1000.
626 flags.etaHalfWidth = 3
627 flags.phiHalfWidth = math.pi
631 flags.nClustersMin = 4
632 flags.minSiNotShared = 3
634 if recoMode !=
"Acts":
637 flags.maxSCTHoles = 3
638 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
639 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
641 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
642 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
643 if recoMode ==
"Acts":
644 flags.Xi2maxSigma = [math.sqrt(60.)]
645 flags.Xi2maxNoAddSigma = [10.]
646 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
648 flags.nWeightedClustersMin = 8
649 flags.useSeedFilter =
True
650 flags.usePrdAssociationTool=
False
651 flags.roadWidth = 75.
652 flags.maxZImpact =
tsetter(flags.maxZImpact, 10000.*Units.mm)
653 if recoMode==
"InDet":
654 flags.minTRTonTrk = 20
659def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
661 flags.input_name = instanceName
662 flags.name =
"bphysics"
663 flags.suffix =
"Bmumux"
664 flags.roi =
"HLT_Roi_Bmumux"
665 flags.Triplet_D0Max = 10.
666 flags.DoPhiFiltering =
False
667 flags.etaHalfWidth = 0.75
668 flags.phiHalfWidth = 0.75
669 flags.zedHalfWidth = 50.
670 flags.doSeedRedundancyCheck =
True
674def bhh(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
676 flags.input_name = instanceName
679 flags.roi =
"HLT_Roi_Bhh"
680 flags.Triplet_D0Max = 10.
681 flags.DoPhiFiltering =
False
682 flags.etaHalfWidth = 2.5
683 flags.phiHalfWidth = math.pi-1.e-5
684 flags.zedHalfWidth = 30.
687 flags.doSeedRedundancyCheck =
True
691def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
693 flags.input_name = instanceName
694 flags.name =
"electronLRT"
695 flags.suffix =
"ElecLRT"
696 flags.roi =
"HLT_Roi_Electron"
697 flags.etaHalfWidth = 0.1
698 flags.phiHalfWidth = 0.4
699 flags.UsePixelSpacePoints =
False
700 flags.Triplet_D0Max = 300.
701 flags.TrackInitialD0Max = 300.
702 flags.TrackZ0Max = 500.
703 flags.zedHalfWidth = 225.
704 flags.doSeedRedundancyCheck =
True
705 flags.nClustersMin = 8
707 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
708 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
710 flags.doEmCaloSeed =
False
715def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
717 flags.input_name = instanceName
718 flags.name =
"muonLRT"
719 flags.suffix =
"MuonLRT"
720 flags.roi =
"HLT_Roi_Muon"
721 flags.UsePixelSpacePoints =
False
722 flags.etaHalfWidth = 0.2
723 flags.phiHalfWidth = 0.4
724 flags.Triplet_D0Max = 300.
725 flags.TrackInitialD0Max = 300.
726 flags.TrackZ0Max = 500.
727 flags.zedHalfWidth = 225.
728 flags.doSeedRedundancyCheck =
True
729 flags.nClustersMin = 8
730 flags.doResMon =
True
731 flags.DoPhiFiltering =
False
733 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
734 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
736 flags.doEmCaloSeed =
False
743def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
745 flags.input_name = instanceName
746 flags.name =
"tauLRT"
747 flags.suffix =
"TauLRT"
748 flags.roi =
"HLT_Roi_TauLRT"
749 flags.vertex =
"HLT_IDVertex_Tau"
752 flags.etaHalfWidth = 0.4
753 flags.phiHalfWidth = 0.4
754 flags.zedHalfWidth = 225.
755 flags.UsePixelSpacePoints =
False
756 flags.Triplet_D0Max = 300.
757 flags.TrackInitialD0Max = 300.
758 flags.TrackZ0Max = 500.
759 flags.nClustersMin = 8
761 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
762 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
764 flags.doEmCaloSeed =
False
765 if recoMode==
"InDet":
772def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
774 flags.input_name = instanceName
775 flags.name =
"bjetLRT"
776 flags.suffix =
"BjetLRT"
777 flags.roi =
"HLT_Roi_Bjet"
778 flags.etaHalfWidth = 0.4
779 flags.phiHalfWidth = 0.4
780 flags.UsePixelSpacePoints =
False
781 flags.Triplet_D0Max = 300.
782 flags.TrackInitialD0Max = 300.
783 flags.TrackZ0Max = 500.
784 flags.nClustersMin = 8
786 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
787 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
789 flags.doEmCaloSeed =
False
795def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
797 flags.input_name = instanceName
798 flags.name =
"fullScanLRT"
799 flags.suffix =
"FSLRT"
800 flags.roi =
"HLT_Roi_FS"
801 flags.etaHalfWidth = 3.
802 flags.phiHalfWidth = math.pi
804 flags.doSeedRedundancyCheck =
True
805 flags.UsePixelSpacePoints =
False
806 flags.Triplet_D0Max = 300.
807 flags.TrackInitialD0Max = 300.
808 flags.TrackZ0Max = 500.
809 flags.Triplet_D0_PPS_Max = 300.
810 flags.DoubletDR_Max = 200
811 flags.nClustersMin = 8
813 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
814 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
816 flags.doEmCaloSeed =
False
822def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
824 flags.input_name = instanceName
825 flags.name =
"DJetLRT"
826 flags.suffix =
"DJLRT"
827 flags.roi =
"HLT_Roi_DJ"
828 flags.etaHalfWidth = 0.4
829 flags.phiHalfWidth = 0.4
830 flags.zedHalfWidth = 225.
832 flags.doSeedRedundancyCheck =
True
833 flags.UsePixelSpacePoints =
False
834 flags.Triplet_D0Max = 300.
835 flags.TrackInitialD0Max = 300.
836 flags.TrackZ0Max = 500.
837 flags.Triplet_D0_PPS_Max = 300.
838 flags.DoubletDR_Max = 200
839 flags.nClustersMin = 8
841 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
842 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
844 flags.doEmCaloSeed =
False
850def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
852 flags.input_name = instanceName
853 flags.name =
"DVtxLRT"
854 flags.suffix =
"DVLRT"
855 flags.roi =
"HLT_Roi_DV"
856 flags.etaHalfWidth = 0.35
857 flags.phiHalfWidth = 0.35
859 flags.doSeedRedundancyCheck =
True
860 flags.UsePixelSpacePoints =
False
861 flags.Triplet_D0Max = 300.
862 flags.TrackInitialD0Max = 300.
863 flags.TrackZ0Max = 500.
864 flags.Triplet_D0_PPS_Max = 300.
865 flags.DoubletDR_Max = 200
866 flags.nClustersMin = 8
868 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
869 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
871 flags.doEmCaloSeed =
False
878 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
879 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
880 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
884 flags.tracks_IDTrig = \
885 collToRecordable(flags, f
"HLT_IDTrack_{flags.suffix if flags.input_name not in ['tauIso', 'tauIsoHitZ'] else "Tau
"}_IDTrig")
887 if recoMode ==
"Acts":
888 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
889 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
892 flags.minClusters =
tsetter(flags.minClusters , 8)
893 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
894 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
895 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
896 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
897 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
898 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
899 if recoMode !=
"Acts":
900 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
903 if recoMode ==
"ITk":
904 flags.extension = flags.input_name
907 flags.UsePixelSpacePoints =
True
914 signature = flags.input_name
915 firstStage =
"FTF" in name
918 if signature
in [
"tauHitsHitZ",
"minBias",
"minBiasPixel",
"bjetLRT",
922 if signature
in [
"tauHitsHitZ",
"tauCore",
"tauCoreEM",
"tauCoreHitZ",
"tauIso",
"tauIsoEM",
"tauIsoHitZ",
"tauIsoBDT",
923 "jet",
"fullScan",
"jetSuper",
"bhh",
924 "beamSpot",
"beamSpotFS",
925 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
929 ret = recordable(name)
934 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
935 flags.addFlag(f
'{category}.doGPU',
False)
936 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
937 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
938 flags.addFlag(f
'{category}.UseTracklets',
False)
939 flags.addFlag(f
'{category}.trackletPoints', 1)
940 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
941 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
942 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
943 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
944 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
945 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
946 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
947 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
948 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
949 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
950 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
951 flags.addFlag(f
'{category}.TRT_DriftCircleKey',
"TRT_TrigDriftCircles")
952 flags.addFlag(f
'{category}.PixClustersAmbiMap',
"TrigPixelClusterAmbiguitiesMap")
953 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
959 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
960 flags = initConfigFlags()
961 flags.Trigger.InDetTracking.electron.minPT=3.
962 flags.Trigger.ITkTracking.muonLRT.maxEta=5.
963 flags.Trigger.ITkTracking.jetSuper.minPT=[3.,2.,1.]
964 self.
newflags1 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
966 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.muonLRT',
968 self.
newflags3 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.jetSuper',
972 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.minPT, 3., msg=
"Preset value lost")
973 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect version of flags")
974 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect version of flags")
975 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.maxEta, 5., msg=
"Preset value lost")
976 self.assertEqual(self.
newflags3.Tracking.ActiveConfig.minPT, [3.,2.,1.], msg=
"Preset value lost")
979if __name__ ==
"__main__":
derivedFromSignatureFlags(AthConfigFlags flags, str recoMode)
AthConfigFlags electron(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags DJetLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags tauIso(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags tauCoreEM(AthConfigFlags flags, str instanceName, str recoMode)
lrtSignatureActions(func)
addGlobalFlags(AthConfigFlags flags, str category)
AthConfigFlags bjetLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags defaultITkActsTrigTrackingFlags()
AthConfigFlags tauLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags muon(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags minBias(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags tauCore(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags tauCoreHitZ(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags jetSuper(AthConfigFlags flags, str instanceName, str recoMode)
processEtaDepSettings(var, settings)
defaultTrigTrackingFlags(AthConfigFlags flags)
AthConfigFlags fullScanLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags defaultITkTrigTrackingFlags()
AthConfigFlags bmumux(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags tauHitsHitZ(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags diTau(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags bjet(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags defaultModeTrigTrackingFlags(AthConfigFlags flags)
AthConfigFlags DVtxLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags electronLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags minBiasPixel(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags tauIsoEM(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags beamSpotFS(AthConfigFlags flags, str instanceName, str recoMode)
None actsLRTTrigTrackingFlags(AthConfigFlags flags)
AthConfigFlags muonIso(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags fullScan(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags bhh(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags muonLRT(AthConfigFlags flags, str instanceName, str recoMode)
collToRecordable(flags, name)
AthConfigFlags tauIsoHitZ(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags beamSpot(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags defaultInDetTrigTrackingFlags()
AthConfigFlags signatureTrigTrackingFlags(str mode)
int run(int argc, char *argv[])