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(
"doFullScan",
False)
39 flags.addFlag(
"monPS", 1)
40 flags.addFlag(
"monPtMin", 1*Units.GeV)
41 flags.addFlag(
"doTRT",
True)
42 flags.addFlag(
"keepTrackParameters",
False)
43 flags.addFlag(
"UsePixelSpacePoints",
True)
44 flags.addFlag(
"TrackInitialD0Max", 20.0)
45 flags.addFlag(
"TrackZ0Max", 300.0)
46 flags.addFlag(
"isLRT",
False)
47 flags.addFlag(
"UseTrigSeedML", 0)
48 flags.addFlag(
"nClustersMin", 7)
49 flags.addFlag(
"roi",
"")
50 flags.addFlag(
"LRT_D0Min", 2.0)
51 flags.addFlag(
"LRT_HardPtMin", 1.0*Units.GeV)
52 flags.addFlag(
"doRecord",
True)
53 flags.addFlag(
"vertex",
"")
54 flags.addFlag(
"adaptiveVertex",
False)
55 flags.addFlag(
"addSingleTrackVertices",
False)
56 flags.addFlag(
"TracksMaxZinterval", 1*Units.mm)
57 flags.addFlag(
"minNSiHits_vtx", 10)
58 flags.addFlag(
"vertex_jet",
"")
59 flags.addFlag(
"adaptiveVertex_jet",
False)
60 flags.addFlag(
"dodEdxTrk",
False)
61 flags.addFlag(
"doHitDV",
False)
62 flags.addFlag(
"doDisappearingTrk",
False)
63 flags.addFlag(
"useDynamicRoiZWidth",
False)
72 flags.addFlag(
"minSiClusters", 7)
73 flags.addFlag(
"maxSiHoles", 5)
74 flags.maxPixelHoles = 5
75 flags.addFlag(
"maxSCTHoles", 5)
76 flags.maxDoubleHoles = 2
77 flags.addFlag(
"doEmCaloSeed",
False)
79 flags.useSeedFilter =
False
80 flags.doBremRecoverySi =
False
82 flags.addFlag(
"refitROT",
True)
83 flags.addFlag(
"trtExtensionType",
"xf")
84 flags.addFlag(
"doTruth",
False)
85 flags.addFlag(
"perigeeExpression",
"BeamLine")
86 flags.addFlag(
"SuperRoI",
False)
88 flags.addFlag(
"trkTracks_FTF",
"")
89 flags.addFlag(
"trkTracks_IDTrig",
"")
90 flags.addFlag(
"tracks_FTF",
"")
91 flags.addFlag(
"tracks_IDTrig",
"")
92 flags.addFlag(
"useGBTSeedingTool",
False)
96 flags = createTrackingPassFlags()
99 flags.minPT = 1.0*Units.GeV
100 flags.minClusters = 7
101 flags.minSiNotShared = 5
104 flags.Xi2maxNoAdd = 25.
106 flags.nHolesGapMax = 2
107 flags.nWeightedClustersMin= 6
111 flags.maxPrimaryImpact = 10.
112 flags.maxEMImpact = 50.
113 flags.maxZImpact = 250.
118 flags.useTIDE_Ambi =
False
122 flags.maxSCTHoles = 5
128 flags = createITkTrackingPassFlags()
131 flags.minPT = [1.0*Units.GeV,0.45*Units.GeV,0.45*Units.GeV]
132 flags.minClusters = [9,8,7]
134 flags.Xi2maxNoAdd = [25.]
135 flags.nHolesMax = [2]
136 flags.nHolesGapMax = [2]
137 flags.nWeightedClustersMin= [6]
138 flags.maxDoubleHoles = [2]
139 flags.maxPixelHoles = [5]
140 flags.maxZImpact = [250.0]
142 flags.doZFinder =
False
143 flags.DoPhiFiltering =
True
144 flags.UsePixelSpacePoints =
True
145 flags.doDisappearingTrk =
False
146 flags.doCaloSeededBremSi =
False
147 flags.doCaloSeededAmbiSi =
False
148 flags.DoubletDR_Max = 150.0
149 flags.useTIDE_Ambi =
False
155 flags = createActsTrackingPassFlags()
158 flags.minPT = [0.9*Units.GeV, 0.4*Units.GeV, 0.4*Units.GeV]
159 flags.minClusters = [9, 8, 7]
162 flags.maxShared = [2]
164 flags.maxPixelHoles = [2]
165 flags.maxSctHoles = [2]
166 flags.maxShared = [2]
167 flags.maxDoubleHoles = [1]
177 "electron" : electron,
182 "muonIsoMS" : muonIso,
189 "tauHitsHitZ" : tauHitsHitZ,
190 "tauCoreHitZ" : tauCoreHitZ,
191 "tauIsoHitZ" : tauIsoHitZ,
197 "fullScan" : fullScan,
199 "jetSuper" : jetSuper,
201 "beamSpot" : beamSpot,
202 "BeamSpot" : beamSpot,
203 "beamSpotFS" : beamSpotFS,
210 "minBiasPixel" : minBiasPixel,
212 "electronLRT" : electronLRT,
216 "fullScanLRT" : fullScanLRT,
221 flags = AthConfigFlags()
224 category =
'Trigger.InDetTracking'
225 defaults = defaultInDetTrigTrackingFlags
227 category =
'Trigger.ITkTracking'
228 defaults = defaultITkTrigTrackingFlags
230 category =
"Trigger.ActsTracking"
231 defaults = defaultITkActsTrigTrackingFlags
233 log.error(
"Unsupported reconstruction mode %s", mode)
236 class categoryGeneratorWrapper():
237 """ wrap function which can be consumed by addFlagsCategory and provide its args """
238 def __init__(self, fun : Callable[[AthConfigFlags, str, str], AthConfigFlags],
239 flags : AthConfigFlags, signatureInstance : str, recoMode : str):
241 self.sig = signatureInstance
245 return self.fun(self.flags,self.sig,self.mode)
247 for i
in signatureSet.keys():
248 trackingflags = deepcopy(
defaults())
249 a = categoryGeneratorWrapper(signatureSet[i],trackingflags,i,mode)
250 signatureCategory =
"{}.{}".format(category,i)
251 flags.addFlagsCategory(signatureCategory,a.run,prefix=
True)
259 """ convenience decorator to automate config steps """
260 def invokeSteps(*args, **kwargs):
261 flagsSig = func(*args, **kwargs)
269 """ use previous type of the var and convert value to it
270 for the moment just makes list of a value if needed
273 typeOfValue =
type(value)
274 if type2set == typeOfValue:
277 basic = (bool, str, int, float,
type(
None))
278 if isinstance(var,basic):
286 """ depending on the destination flag type either keep list of values or flatten to a single value
289 typeOfValue =
type(settings)
290 if type2set == typeOfValue:
293 if isinstance(settings, list):
294 var = settings[0]
if settings
else None
301def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
303 flags.input_name = instanceName
304 flags.name =
"electron"
305 flags.suffix =
"Electron"
306 flags.roi =
"HLT_Roi_Electron"
307 flags.etaHalfWidth = 0.05
308 flags.phiHalfWidth = 0.1
309 flags.doCloneRemoval =
True
310 flags.doSeedRedundancyCheck =
True
311 if recoMode==
"InDet":
313 flags.keepTrackParameters =
True
314 flags.electronPID =
True
318def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
320 flags.input_name = instanceName
322 flags.suffix =
"Muon"
323 flags.roi =
"HLT_Roi_L2SAMuon"
324 flags.Triplet_D0Max = 10.0
325 flags.doResMon =
True
326 flags.DoPhiFiltering =
False
327 flags.doSeedRedundancyCheck =
True
328 flags.monPtMin = 12*Units.GeV
332def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
334 flags.input_name = instanceName
335 flags.name =
"muonIso"
336 flags.suffix =
"MuonIso"
337 flags.roi =
"HLT_Roi_MuonIso"
338 flags.etaHalfWidth = 0.35
339 flags.phiHalfWidth = 0.35
340 flags.zedHalfWidth = 10.0
344def tauHitsHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
347 flags.input_name = instanceName
348 flags.name =
"tauHitsHitZ"
349 flags.suffix =
"TauHits"
350 flags.roi =
"HLT_Roi_TauHitsHitZ"
354def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
356 flags.input_name = instanceName
357 flags.name =
"tauCore"
358 flags.suffix =
"TauCore"
359 flags.roi =
"HLT_Roi_TauCore"
361 flags.holeSearch_FTF =
True
365def tauCoreHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
366 flags =
tauCore(flags, instanceName, recoMode)
367 flags.name =
"tauCoreHitZ"
368 flags.roi =
"HLT_Roi_TauCoreHitZ"
369 flags.zedHalfWidth = 30.0
373def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
375 flags.input_name = instanceName
376 flags.name =
"tauIso"
377 flags.suffix =
"TauIso"
378 flags.roi =
"HLT_Roi_TauIso"
379 flags.etaHalfWidth = 0.4
380 flags.phiHalfWidth = 0.4
381 flags.zedHalfWidth = 7.0
382 flags.adaptiveVertex =
True
383 flags.addSingleTrackVertices =
True
384 flags.vertex =
"HLT_IDVertex_Tau"
385 flags.electronPID =
False
390def tauIsoHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
391 flags =
tauIso(flags, instanceName, recoMode)
392 flags.name =
"tauIsoHitZ"
393 flags.roi =
"HLT_Roi_TauIsoHitZ"
397def diTau(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
399 flags.input_name = instanceName
401 flags.suffix =
"DiTau"
402 flags.roi =
"HLT_Roi_DiTau"
403 flags.etaHalfWidth = 1.0
404 flags.phiHalfWidth = 1.0
405 flags.zedHalfWidth = 7.0
406 flags.adaptiveVertex =
True
407 flags.addSingleTrackVertices =
True
408 flags.vertex =
"HLT_IDVertex_DiTau"
409 flags.electronPID =
False
414def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
416 flags.input_name = instanceName
418 flags.suffix =
"Bjet"
419 flags.roi =
"HLT_Roi_Bjet"
420 flags.etaHalfWidth = 0.4
421 flags.phiHalfWidth = 0.4
422 flags.zedHalfWidth = 10.0
424 flags.Xi2max =
tsetter(flags.Xi2max,12.)
428def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
430 flags.input_name = instanceName
431 flags.name =
"jetSuper"
432 flags.suffix =
"JetSuper"
433 flags.vertex =
"HLT_IDVertex_JetSuper"
434 flags.adaptiveVertex =
True
435 flags.addSingleTrackVertices =
True
436 flags.roi =
"HLT_Roi_JetSuper"
437 flags.etaHalfWidth = 0.3
438 flags.phiHalfWidth = 0.3
439 flags.doFullScan =
True
444 flags.DoubletDR_Max = 200
445 flags.SeedRadBinWidth = 10
446 flags.doSeedRedundancyCheck =
True
447 flags.TripletDoPPS =
False
448 flags.nClustersMin = 8
449 flags.UseTrigSeedML = 4
454def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
456 flags.input_name = instanceName
457 flags.name =
"minBias"
458 flags.suffix =
"MinBias"
459 flags.roi =
"HLT_Roi_MinBias"
460 flags.doFullScan =
True
464 flags.etaHalfWidth = 3
465 flags.phiHalfWidth = math.pi
466 flags.doZFinder =
True
467 flags.doZFinderOnly =
True
469 flags.nClustersMin = 5
470 flags.useSeedFilter =
True
471 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
472 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
474 flags.usePrdAssociationTool =
False
479def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
481 flags.input_name = instanceName
482 flags.name =
"minBiasPixel"
483 flags.suffix =
"MinBiasPixel"
484 flags.roi =
"HLT_Roi_MinBias"
485 flags.doFullScan =
True
490 flags.maxPixelHoles = 0
491 flags.maxSctHoles = 0
492 flags.maxDoubleHoles = 0
493 flags.minSiNotShared = 3
496 flags.nHolesGapMax = 0
497 if recoMode==
"InDet":
499 flags.useSCTSeeding =
False
501 flags.roadWidth = 12.0
503 flags.Xi2maxNoAdd = 35.0
504 flags.nWeightedClustersMin = 6
505 flags.doBremRecoverySi =
False
506 flags.RunPixelPID =
False
509 flags.etaHalfWidth = 3
510 flags.phiHalfWidth = math.pi
511 flags.doZFinder =
False
512 flags.doZFinderOnly =
True
514 flags.minClusters = 3
515 flags.nClustersMin = 3
516 flags.useSeedFilter =
True
517 flags.maxPrimaryImpact = 10.*Units.mm
518 flags.maxZImpact = 150.*Units.mm
520 flags.usePrdAssociationTool =
False
526def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
528 flags.input_name = instanceName
529 flags.name =
"beamSpot"
530 flags.suffix =
"BeamSpot"
531 flags.roi =
"HLT_Roi_FS"
532 flags.doFullScan =
True
533 flags.doZFinder =
True
534 flags.DoubletDR_Max = 200
535 flags.SeedRadBinWidth = 10
536 flags.etaHalfWidth = 3
537 flags.phiHalfWidth = math.pi
539 flags.doSeedRedundancyCheck =
True
540 flags.doRecord =
False
545def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
547 flags.input_name = instanceName
548 flags.name =
"fullScan"
550 flags.roi =
"HLT_Roi_FS"
551 flags.vertex =
"HLT_IDVertex_FS"
552 flags.adaptiveVertex =
True
556 flags.vertex_jet =
"HLT_IDVertex_FS"
557 flags.adaptiveVertex_jet =
True
558 flags.doFullScan =
True
559 flags.etaHalfWidth = 3.
560 flags.phiHalfWidth = math.pi
562 flags.DoubletDR_Max = 200
563 flags.SeedRadBinWidth = 10
564 flags.doSeedRedundancyCheck =
True
565 flags.TripletDoPPS =
False
566 flags.nClustersMin = 8
567 flags.UseTrigSeedML = 4
568 flags.dodEdxTrk =
True
570 flags.doDisappearingTrk =
True if recoMode==
"InDet" else False
576def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
578 flags.input_name = instanceName
579 flags.name =
"fullScan"
581 flags.roi =
"HLT_Roi_FS"
582 flags.doFullScan =
True
583 flags.etaHalfWidth = 3.
584 flags.phiHalfWidth = math.pi
586 flags.DoubletDR_Max = 200
587 flags.SeedRadBinWidth = 10
588 flags.TripletDoPPS =
False
589 flags.nClustersMin = 8
590 flags.UseTrigSeedML = 4
591 flags.doRecord =
False
596def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
598 flags.input_name = instanceName
599 flags.name =
"cosmics"
600 flags.suffix =
"Cosmic"
601 flags.roi =
"HLT_Roi_Cosmics"
602 flags.Triplet_D0Max = 1000.0
603 flags.Triplet_D0_PPS_Max = 1000.0
604 flags.TrackInitialD0Max = 1000.
605 flags.TrackZ0Max = 1000.
607 flags.doFullScan =
True
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
649 flags.SuperRoI =
True
653def bhh(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
655 flags.input_name = instanceName
658 flags.roi =
"HLT_Roi_Bhh"
659 flags.Triplet_D0Max = 10.
660 flags.DoPhiFiltering =
False
661 flags.etaHalfWidth = 2.5
662 flags.phiHalfWidth = math.pi-1.e-5
663 flags.zedHalfWidth = 30.
666 flags.doSeedRedundancyCheck =
True
667 flags.SuperRoI =
True
671def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
673 flags.input_name = instanceName
674 flags.name =
"electronLRT"
675 flags.suffix =
"ElecLRT"
676 flags.roi =
"HLT_Roi_Electron"
677 flags.etaHalfWidth = 0.1
678 flags.phiHalfWidth = 0.4
679 flags.UsePixelSpacePoints =
False
680 flags.Triplet_D0Max = 300.
681 flags.TrackInitialD0Max = 300.
682 flags.TrackZ0Max = 500.
683 flags.zedHalfWidth = 225.
684 flags.keepTrackParameters =
True
685 flags.doSeedRedundancyCheck =
True
686 flags.nClustersMin = 8
689 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
690 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
692 flags.doEmCaloSeed =
False
697def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
699 flags.input_name = instanceName
700 flags.name =
"muonLRT"
701 flags.suffix =
"MuonLRT"
702 flags.roi =
"HLT_Roi_Muon"
703 flags.UsePixelSpacePoints =
False
704 flags.etaHalfWidth = 0.2
705 flags.phiHalfWidth = 0.4
706 flags.Triplet_D0Max = 300.
707 flags.TrackInitialD0Max = 300.
708 flags.TrackZ0Max = 500.
709 flags.zedHalfWidth = 225.
710 flags.doSeedRedundancyCheck =
True
711 flags.nClustersMin = 8
713 flags.doResMon =
True
714 flags.DoPhiFiltering =
False
716 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
717 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
719 flags.doEmCaloSeed =
False
726def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
728 flags.input_name = instanceName
729 flags.name =
"tauLRT"
730 flags.suffix =
"TauLRT"
731 flags.roi =
"HLT_Roi_TauLRT"
732 flags.vertex =
"HLT_IDVertex_Tau"
735 flags.etaHalfWidth = 0.4
736 flags.phiHalfWidth = 0.4
737 flags.zedHalfWidth = 225.
738 flags.UsePixelSpacePoints =
False
739 flags.Triplet_D0Max = 300.
740 flags.TrackInitialD0Max = 300.
741 flags.TrackZ0Max = 500.
742 flags.nClustersMin = 8
745 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
746 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
748 flags.doEmCaloSeed =
False
749 if recoMode==
"InDet":
756def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
758 flags.input_name = instanceName
759 flags.name =
"bjetLRT"
760 flags.suffix =
"BjetLRT"
761 flags.roi =
"HLT_Roi_Bjet"
762 flags.etaHalfWidth = 0.4
763 flags.phiHalfWidth = 0.4
764 flags.UsePixelSpacePoints =
False
765 flags.Triplet_D0Max = 300.
766 flags.TrackInitialD0Max = 300.
767 flags.TrackZ0Max = 500.
768 flags.nClustersMin = 8
771 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
772 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
774 flags.doEmCaloSeed =
False
780def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
782 flags.input_name = instanceName
783 flags.name =
"fullScanLRT"
784 flags.suffix =
"FSLRT"
785 flags.roi =
"HLT_Roi_FS"
786 flags.doFullScan =
True
787 flags.etaHalfWidth = 3.
788 flags.phiHalfWidth = math.pi
790 flags.doSeedRedundancyCheck =
True
791 flags.UsePixelSpacePoints =
False
792 flags.Triplet_D0Max = 300.
793 flags.TrackInitialD0Max = 300.
794 flags.TrackZ0Max = 500.
795 flags.Triplet_D0_PPS_Max = 300.
796 flags.DoubletDR_Max = 200
797 flags.nClustersMin = 8
800 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
801 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
803 flags.doEmCaloSeed =
False
809def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
811 flags.input_name = instanceName
812 flags.name =
"DJetLRT"
813 flags.suffix =
"DJLRT"
814 flags.roi =
"HLT_Roi_DJ"
815 flags.doFullScan =
False
816 flags.etaHalfWidth = 0.4
817 flags.phiHalfWidth = 0.4
818 flags.zedHalfWidth = 225.
820 flags.doSeedRedundancyCheck =
True
821 flags.UsePixelSpacePoints =
False
822 flags.Triplet_D0Max = 300.
823 flags.TrackInitialD0Max = 300.
824 flags.TrackZ0Max = 500.
825 flags.Triplet_D0_PPS_Max = 300.
826 flags.DoubletDR_Max = 200
827 flags.nClustersMin = 8
830 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
831 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
833 flags.doEmCaloSeed =
False
839def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
841 flags.input_name = instanceName
842 flags.name =
"DVtxLRT"
843 flags.suffix =
"DVLRT"
844 flags.roi =
"HLT_Roi_DV"
845 flags.doFullScan =
False
846 flags.etaHalfWidth = 0.35
847 flags.phiHalfWidth = 0.35
849 flags.doSeedRedundancyCheck =
True
850 flags.UsePixelSpacePoints =
False
851 flags.Triplet_D0Max = 300.
852 flags.TrackInitialD0Max = 300.
853 flags.TrackZ0Max = 500.
854 flags.Triplet_D0_PPS_Max = 300.
855 flags.DoubletDR_Max = 200
856 flags.nClustersMin = 8
859 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
860 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
862 flags.doEmCaloSeed =
False
869 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
870 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
871 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
874 flags.tracks_IDTrig = \
875 collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".format(flags.suffix
if flags.input_name
not in [
'tauIso',
'tauIsoHitZ']
else "Tau"))
877 if recoMode ==
"Acts":
878 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
879 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
882 flags.minClusters =
tsetter(flags.minClusters , 8)
883 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
884 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
885 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
886 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
887 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
888 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
889 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
892 if recoMode ==
"ITk":
893 flags.extension = flags.input_name
896 flags.UsePixelSpacePoints =
True
903 signature = flags.input_name
904 firstStage =
True if "FTF" in name
else False
907 if signature
in [
"tauHitsHitZ",
"minBias",
"minBiasPixel",
"bjetLRT",
908 "beamSpot",
"BeamSpot"]:
911 if signature
in [
"tauHitsHitZ",
"tauCore",
"tauCoreHitZ",
"tauIso",
"tauIsoHitZ",
"tauIsoBDT",
912 "jet",
"fullScan",
"FS",
"jetSuper",
"bhh",
913 "beamSpot",
"BeamSpot",
"beamSpotFS",
914 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
918 ret = recordable(name)
923 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
924 flags.addFlag(f
'{category}.doGPU',
False)
925 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
926 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
927 flags.addFlag(f
'{category}.UseTracklets',
False)
928 flags.addFlag(f
'{category}.trackletPoints', 1)
929 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
930 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
931 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
932 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
933 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
934 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
935 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
936 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
937 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
938 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
939 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
940 flags.addFlag(f
'{category}.TRT_DriftCircleKey',
"TRT_TrigDriftCircles")
941 flags.addFlag(f
'{category}.PixClustersAmbiMap',
"TrigPixelClusterAmbiguitiesMap")
942 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
948 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
949 flags = initConfigFlags()
950 flags.Trigger.InDetTracking.electron.minPT=3.
951 flags.Trigger.ITkTracking.muonLRT.maxEta=5.
952 flags.Trigger.ITkTracking.jetSuper.minPT=[3.,2.,1.]
953 self.
newflags1 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
955 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.muonLRT',
957 self.
newflags3 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.jetSuper',
961 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.minPT, 3., msg=
"Preset value lost")
962 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect version of flags")
963 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect version of flags")
964 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.maxEta, 5., msg=
"Preset value lost")
965 self.assertEqual(self.
newflags3.Tracking.ActiveConfig.minPT, [3.,2.,1.], msg=
"Preset value lost")
968if __name__ ==
"__main__":
AthConfigFlags minBias(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags defaultITkTrigTrackingFlags()
AthConfigFlags tauLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags defaultModeTrigTrackingFlags(AthConfigFlags flags)
AthConfigFlags minBiasPixel(AthConfigFlags flags, str instanceName, str recoMode)
processEtaDepSettings(var, settings)
AthConfigFlags tauIso(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags fullScanLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags diTau(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags defaultITkActsTrigTrackingFlags()
defaultTrigTrackingFlags(AthConfigFlags flags)
AthConfigFlags tauIsoHitZ(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags bmumux(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags beamSpotFS(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags tauCoreHitZ(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags DVtxLRT(AthConfigFlags flags, str instanceName, str recoMode)
collToRecordable(flags, name)
AthConfigFlags beamSpot(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags muonIso(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags jetSuper(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags electronLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags signatureTrigTrackingFlags(str mode)
AthConfigFlags tauHitsHitZ(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags DJetLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags tauCore(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags muonLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags bjetLRT(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags bjet(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags defaultInDetTrigTrackingFlags()
AthConfigFlags fullScan(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags muon(AthConfigFlags flags, str instanceName, str recoMode)
derivedFromSignatureFlags(AthConfigFlags flags, str recoMode)
AthConfigFlags electron(AthConfigFlags flags, str instanceName, str recoMode)
addGlobalFlags(AthConfigFlags flags, str category)
AthConfigFlags bhh(AthConfigFlags flags, str instanceName, str recoMode)
int run(int argc, char *argv[])