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.autoReverseSearch =
True
168 flags.etaBins = [-1.0, 2.7]
169 flags.minPT = [1.0 * Units.GeV]
170 flags.minPTSeed = 1.0 * Units.GeV
171 flags.maxPrimaryImpactSeed = 300.0 * Units.mm
172 flags.maxZImpactSeed = 500.0 * Units.mm
174 flags.Xi2max = [25.0]
175 flags.Xi2maxNoAdd = [50.0]
183 "electron" : electron,
188 "muonIsoMS" : muonIso,
195 "tauHitsHitZ" : tauHitsHitZ,
196 "tauCoreHitZ" : tauCoreHitZ,
197 "tauIsoHitZ" : tauIsoHitZ,
203 "fullScan" : fullScan,
204 "jetSuper" : jetSuper,
206 "beamSpot" : beamSpot,
207 "beamSpotFS" : beamSpotFS,
214 "minBiasPixel" : minBiasPixel,
216 "electronLRT" : electronLRT,
220 "fullScanLRT" : fullScanLRT,
225 flags = AthConfigFlags()
228 category =
'Trigger.InDetTracking'
229 defaults = defaultInDetTrigTrackingFlags
231 category =
'Trigger.ITkTracking'
232 defaults = defaultITkTrigTrackingFlags
234 category =
"Trigger.ActsTracking"
235 defaults = defaultITkActsTrigTrackingFlags
237 log.error(
"Unsupported reconstruction mode %s", mode)
240 class categoryGeneratorWrapper():
241 """ wrap function which can be consumed by addFlagsCategory and provide its args """
242 def __init__(self, fun : Callable[[AthConfigFlags, str, str], AthConfigFlags],
243 flags : AthConfigFlags, signatureInstance : str, recoMode : str):
245 self.sig = signatureInstance
249 return self.fun(self.flags,self.sig,self.mode)
251 for i
in signatureSet:
252 trackingflags = deepcopy(
defaults())
253 a = categoryGeneratorWrapper(signatureSet[i],trackingflags,i,mode)
254 signatureCategory =
"{}.{}".format(category,i)
255 flags.addFlagsCategory(signatureCategory,a.run,prefix=
True)
263 """ convenience decorator to automate config steps """
264 def invokeSteps(*args, **kwargs):
265 flagsSig = func(*args, **kwargs)
273 """Set common LRT flags before applying per-signature overrides."""
275 def invokeSteps(flags: AthConfigFlags, instanceName: str, recoMode: str):
277 if recoMode ==
"Acts":
279 return func(flags, instanceName, recoMode)
284 """ use previous type of the var and convert value to it
285 for the moment just makes list of a value if needed
288 typeOfValue =
type(value)
289 if type2set == typeOfValue:
292 basic = (bool, str, int, float,
type(
None))
293 var = value
if isinstance(var, basic)
else [value]
298 """ depending on the destination flag type either keep list of values or flatten to a single value
301 typeOfValue =
type(settings)
302 if type2set == typeOfValue:
305 if isinstance(settings, list):
306 var = settings[0]
if settings
else None
313def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
315 flags.input_name = instanceName
316 flags.name =
"electron"
317 flags.suffix =
"Electron"
318 flags.roi =
"HLT_Roi_Electron"
319 flags.etaHalfWidth = 0.05
320 flags.phiHalfWidth = 0.1
321 flags.doCloneRemoval =
True
322 flags.doSeedRedundancyCheck =
True
323 if recoMode==
"InDet":
325 flags.electronPID =
True
329def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
331 flags.input_name = instanceName
333 flags.suffix =
"Muon"
334 flags.roi =
"HLT_Roi_L2SAMuon"
335 flags.Triplet_D0Max = 10.0
336 flags.doResMon =
True
337 flags.DoPhiFiltering =
False
338 flags.doSeedRedundancyCheck =
True
342def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
344 flags.input_name = instanceName
345 flags.name =
"muonIso"
346 flags.suffix =
"MuonIso"
347 flags.roi =
"HLT_Roi_MuonIso"
348 flags.etaHalfWidth = 0.35
349 flags.phiHalfWidth = 0.35
350 flags.zedHalfWidth = 10.0
354def tauHitsHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
357 flags.input_name = instanceName
358 flags.name =
"tauHitsHitZ"
359 flags.suffix =
"TauHits"
360 flags.roi =
"HLT_Roi_TauHitsHitZ"
364def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
366 flags.input_name = instanceName
367 flags.name =
"tauCore"
368 flags.suffix =
"TauCore"
369 flags.roi =
"HLT_Roi_TauCore"
371 flags.holeSearch_FTF =
True
375def tauCoreHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
376 flags =
tauCore(flags, instanceName, recoMode)
377 flags.name =
"tauCoreHitZ"
378 flags.roi =
"HLT_Roi_TauCoreHitZ"
379 flags.zedHalfWidth = 30.0
383def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
385 flags.input_name = instanceName
386 flags.name =
"tauIso"
387 flags.suffix =
"TauIso"
388 flags.roi =
"HLT_Roi_TauIso"
389 flags.etaHalfWidth = 0.4
390 flags.phiHalfWidth = 0.4
391 flags.zedHalfWidth = 7.0
392 flags.adaptiveVertex =
True
393 flags.addSingleTrackVertices =
True
394 flags.vertex =
"HLT_IDVertex_Tau"
395 flags.electronPID =
False
400def tauIsoHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
401 flags =
tauIso(flags, instanceName, recoMode)
402 flags.name =
"tauIsoHitZ"
403 flags.roi =
"HLT_Roi_TauIsoHitZ"
407def diTau(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
409 flags.input_name = instanceName
411 flags.suffix =
"DiTau"
412 flags.roi =
"HLT_Roi_DiTau"
413 flags.etaHalfWidth = 1.0
414 flags.phiHalfWidth = 1.0
415 flags.zedHalfWidth = 7.0
416 flags.adaptiveVertex =
True
417 flags.addSingleTrackVertices =
True
418 flags.vertex =
"HLT_IDVertex_DiTau"
419 flags.electronPID =
False
424def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
426 flags.input_name = instanceName
428 flags.suffix =
"Bjet"
429 flags.roi =
"HLT_Roi_Bjet"
430 flags.etaHalfWidth = 0.4
431 flags.phiHalfWidth = 0.4
432 flags.zedHalfWidth = 10.0
434 flags.Xi2max =
tsetter(flags.Xi2max,12.)
438def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
440 flags.input_name = instanceName
441 flags.name =
"jetSuper"
442 flags.suffix =
"JetSuper"
443 flags.vertex =
"HLT_IDVertex_JetSuper"
444 flags.adaptiveVertex =
True
445 flags.addSingleTrackVertices =
True
446 flags.roi =
"HLT_Roi_JetSuper"
447 flags.etaHalfWidth = 0.3
448 flags.phiHalfWidth = 0.3
453 flags.DoubletDR_Max = 200
454 flags.SeedRadBinWidth = 10
455 flags.doSeedRedundancyCheck =
True
456 flags.TripletDoPPS =
False
457 flags.nClustersMin = 8
458 flags.UseTrigSeedML = 4
463def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
465 flags.input_name = instanceName
466 flags.name =
"minBias"
467 flags.suffix =
"MinBias"
468 flags.roi =
"HLT_Roi_MinBias"
472 flags.etaHalfWidth = 3
473 flags.phiHalfWidth = math.pi
474 flags.doZFinder =
True
475 flags.doZFinderOnly =
True
477 flags.nClustersMin = 5
478 flags.useSeedFilter =
True
479 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
480 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
482 flags.usePrdAssociationTool =
False
487def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
489 flags.input_name = instanceName
490 flags.name =
"minBiasPixel"
491 flags.suffix =
"MinBiasPixel"
492 flags.roi =
"HLT_Roi_MinBias"
497 flags.maxPixelHoles = 0
498 flags.maxSctHoles = 0
499 flags.maxDoubleHoles = 0
500 flags.minSiNotShared = 3
503 flags.nHolesGapMax = 0
504 if recoMode==
"InDet":
506 flags.useSCTSeeding =
False
508 flags.roadWidth = 12.0
510 flags.Xi2maxNoAdd = 35.0
511 flags.nWeightedClustersMin = 6
512 flags.doBremRecoverySi =
False
513 flags.RunPixelPID =
False
516 flags.etaHalfWidth = 3
517 flags.phiHalfWidth = math.pi
518 flags.doZFinder =
False
519 flags.doZFinderOnly =
True
521 flags.minClusters = 3
522 flags.nClustersMin = 3
523 flags.useSeedFilter =
True
524 flags.maxPrimaryImpact = 10.*Units.mm
525 flags.maxZImpact = 150.*Units.mm
527 flags.usePrdAssociationTool =
False
533def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
535 flags.input_name = instanceName
536 flags.name =
"beamSpot"
537 flags.suffix =
"BeamSpot"
538 flags.roi =
"HLT_Roi_FS"
539 flags.doZFinder =
True
540 flags.DoubletDR_Max = 200
541 flags.SeedRadBinWidth = 10
542 flags.etaHalfWidth = 3
543 flags.phiHalfWidth = math.pi
545 flags.doSeedRedundancyCheck =
True
550def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
552 flags.input_name = instanceName
553 flags.name =
"fullScan"
555 flags.roi =
"HLT_Roi_FS"
556 flags.vertex =
"HLT_IDVertex_FS"
557 flags.adaptiveVertex =
True
561 flags.vertex_jet =
"HLT_IDVertex_FS"
562 flags.etaHalfWidth = 3.
563 flags.phiHalfWidth = math.pi
565 flags.DoubletDR_Max = 200
566 flags.SeedRadBinWidth = 10
567 flags.doSeedRedundancyCheck =
True
568 flags.TripletDoPPS =
False
569 flags.nClustersMin = 8
570 flags.UseTrigSeedML = 4
571 flags.dodEdxTrk =
True
573 flags.doDisappearingTrk = recoMode==
"InDet"
579def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
581 flags.input_name = instanceName
582 flags.name =
"fullScan"
584 flags.roi =
"HLT_Roi_FS"
585 flags.etaHalfWidth = 3.
586 flags.phiHalfWidth = math.pi
588 flags.DoubletDR_Max = 200
589 flags.SeedRadBinWidth = 10
590 flags.TripletDoPPS =
False
591 flags.nClustersMin = 8
592 flags.UseTrigSeedML = 4
597def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
599 flags.input_name = instanceName
600 flags.name =
"cosmics"
601 flags.suffix =
"Cosmic"
602 flags.roi =
"HLT_Roi_Cosmics"
603 flags.Triplet_D0Max = 1000.0
604 flags.Triplet_D0_PPS_Max = 1000.0
605 flags.TrackInitialD0Max = 1000.
606 flags.TrackZ0Max = 1000.
608 flags.etaHalfWidth = 3
609 flags.phiHalfWidth = math.pi
613 flags.nClustersMin = 4
614 flags.minSiNotShared = 3
618 flags.maxSCTHoles = 3
619 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
620 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
622 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
623 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
624 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
626 flags.nWeightedClustersMin = 8
627 flags.useSeedFilter =
True
628 flags.usePrdAssociationTool=
False
629 flags.roadWidth = 75.
630 flags.maxZImpact =
tsetter(flags.maxZImpact, 10000.*Units.mm)
631 if recoMode==
"InDet":
632 flags.minTRTonTrk = 20
637def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
639 flags.input_name = instanceName
640 flags.name =
"bphysics"
641 flags.suffix =
"Bmumux"
642 flags.roi =
"HLT_Roi_Bmumux"
643 flags.Triplet_D0Max = 10.
644 flags.DoPhiFiltering =
False
645 flags.etaHalfWidth = 0.75
646 flags.phiHalfWidth = 0.75
647 flags.zedHalfWidth = 50.
648 flags.doSeedRedundancyCheck =
True
652def bhh(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
654 flags.input_name = instanceName
657 flags.roi =
"HLT_Roi_Bhh"
658 flags.Triplet_D0Max = 10.
659 flags.DoPhiFiltering =
False
660 flags.etaHalfWidth = 2.5
661 flags.phiHalfWidth = math.pi-1.e-5
662 flags.zedHalfWidth = 30.
665 flags.doSeedRedundancyCheck =
True
669def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
671 flags.input_name = instanceName
672 flags.name =
"electronLRT"
673 flags.suffix =
"ElecLRT"
674 flags.roi =
"HLT_Roi_Electron"
675 flags.etaHalfWidth = 0.1
676 flags.phiHalfWidth = 0.4
677 flags.UsePixelSpacePoints =
False
678 flags.Triplet_D0Max = 300.
679 flags.TrackInitialD0Max = 300.
680 flags.TrackZ0Max = 500.
681 flags.zedHalfWidth = 225.
682 flags.doSeedRedundancyCheck =
True
683 flags.nClustersMin = 8
685 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
686 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
688 flags.doEmCaloSeed =
False
693def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
695 flags.input_name = instanceName
696 flags.name =
"muonLRT"
697 flags.suffix =
"MuonLRT"
698 flags.roi =
"HLT_Roi_Muon"
699 flags.UsePixelSpacePoints =
False
700 flags.etaHalfWidth = 0.2
701 flags.phiHalfWidth = 0.4
702 flags.Triplet_D0Max = 300.
703 flags.TrackInitialD0Max = 300.
704 flags.TrackZ0Max = 500.
705 flags.zedHalfWidth = 225.
706 flags.doSeedRedundancyCheck =
True
707 flags.nClustersMin = 8
708 flags.doResMon =
True
709 flags.DoPhiFiltering =
False
711 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
712 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
714 flags.doEmCaloSeed =
False
721def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
723 flags.input_name = instanceName
724 flags.name =
"tauLRT"
725 flags.suffix =
"TauLRT"
726 flags.roi =
"HLT_Roi_TauLRT"
727 flags.vertex =
"HLT_IDVertex_Tau"
730 flags.etaHalfWidth = 0.4
731 flags.phiHalfWidth = 0.4
732 flags.zedHalfWidth = 225.
733 flags.UsePixelSpacePoints =
False
734 flags.Triplet_D0Max = 300.
735 flags.TrackInitialD0Max = 300.
736 flags.TrackZ0Max = 500.
737 flags.nClustersMin = 8
739 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
740 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
742 flags.doEmCaloSeed =
False
743 if recoMode==
"InDet":
750def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
752 flags.input_name = instanceName
753 flags.name =
"bjetLRT"
754 flags.suffix =
"BjetLRT"
755 flags.roi =
"HLT_Roi_Bjet"
756 flags.etaHalfWidth = 0.4
757 flags.phiHalfWidth = 0.4
758 flags.UsePixelSpacePoints =
False
759 flags.Triplet_D0Max = 300.
760 flags.TrackInitialD0Max = 300.
761 flags.TrackZ0Max = 500.
762 flags.nClustersMin = 8
764 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
765 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
767 flags.doEmCaloSeed =
False
773def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
775 flags.input_name = instanceName
776 flags.name =
"fullScanLRT"
777 flags.suffix =
"FSLRT"
778 flags.roi =
"HLT_Roi_FS"
779 flags.etaHalfWidth = 3.
780 flags.phiHalfWidth = math.pi
782 flags.doSeedRedundancyCheck =
True
783 flags.UsePixelSpacePoints =
False
784 flags.Triplet_D0Max = 300.
785 flags.TrackInitialD0Max = 300.
786 flags.TrackZ0Max = 500.
787 flags.Triplet_D0_PPS_Max = 300.
788 flags.DoubletDR_Max = 200
789 flags.nClustersMin = 8
791 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
792 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
794 flags.doEmCaloSeed =
False
800def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
802 flags.input_name = instanceName
803 flags.name =
"DJetLRT"
804 flags.suffix =
"DJLRT"
805 flags.roi =
"HLT_Roi_DJ"
806 flags.etaHalfWidth = 0.4
807 flags.phiHalfWidth = 0.4
808 flags.zedHalfWidth = 225.
810 flags.doSeedRedundancyCheck =
True
811 flags.UsePixelSpacePoints =
False
812 flags.Triplet_D0Max = 300.
813 flags.TrackInitialD0Max = 300.
814 flags.TrackZ0Max = 500.
815 flags.Triplet_D0_PPS_Max = 300.
816 flags.DoubletDR_Max = 200
817 flags.nClustersMin = 8
819 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
820 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
822 flags.doEmCaloSeed =
False
828def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
830 flags.input_name = instanceName
831 flags.name =
"DVtxLRT"
832 flags.suffix =
"DVLRT"
833 flags.roi =
"HLT_Roi_DV"
834 flags.etaHalfWidth = 0.35
835 flags.phiHalfWidth = 0.35
837 flags.doSeedRedundancyCheck =
True
838 flags.UsePixelSpacePoints =
False
839 flags.Triplet_D0Max = 300.
840 flags.TrackInitialD0Max = 300.
841 flags.TrackZ0Max = 500.
842 flags.Triplet_D0_PPS_Max = 300.
843 flags.DoubletDR_Max = 200
844 flags.nClustersMin = 8
846 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
847 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
849 flags.doEmCaloSeed =
False
856 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
857 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
858 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
861 flags.tracks_IDTrig = \
862 collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".format(flags.suffix
if flags.input_name
not in [
'tauIso',
'tauIsoHitZ']
else "Tau"))
864 if recoMode ==
"Acts":
865 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
866 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
869 flags.minClusters =
tsetter(flags.minClusters , 8)
870 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
871 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
872 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
873 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
874 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
875 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
876 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
879 if recoMode ==
"ITk":
880 flags.extension = flags.input_name
883 flags.UsePixelSpacePoints =
True
890 signature = flags.input_name
891 firstStage =
"FTF" in name
894 if signature
in [
"tauHitsHitZ",
"minBias",
"minBiasPixel",
"bjetLRT",
898 if signature
in [
"tauHitsHitZ",
"tauCore",
"tauCoreHitZ",
"tauIso",
"tauIsoHitZ",
"tauIsoBDT",
899 "jet",
"fullScan",
"jetSuper",
"bhh",
900 "beamSpot",
"beamSpotFS",
901 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
905 ret = recordable(name)
910 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
911 flags.addFlag(f
'{category}.doGPU',
False)
912 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
913 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
914 flags.addFlag(f
'{category}.UseTracklets',
False)
915 flags.addFlag(f
'{category}.trackletPoints', 1)
916 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
917 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
918 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
919 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
920 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
921 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
922 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
923 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
924 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
925 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
926 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
927 flags.addFlag(f
'{category}.TRT_DriftCircleKey',
"TRT_TrigDriftCircles")
928 flags.addFlag(f
'{category}.PixClustersAmbiMap',
"TrigPixelClusterAmbiguitiesMap")
929 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
935 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
936 flags = initConfigFlags()
937 flags.Trigger.InDetTracking.electron.minPT=3.
938 flags.Trigger.ITkTracking.muonLRT.maxEta=5.
939 flags.Trigger.ITkTracking.jetSuper.minPT=[3.,2.,1.]
940 self.
newflags1 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
942 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.muonLRT',
944 self.
newflags3 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.jetSuper',
948 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.minPT, 3., msg=
"Preset value lost")
949 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect version of flags")
950 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect version of flags")
951 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.maxEta, 5., msg=
"Preset value lost")
952 self.assertEqual(self.
newflags3.Tracking.ActiveConfig.minPT, [3.,2.,1.], msg=
"Preset value lost")
955if __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)
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 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[])