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
502 flags.roadWidth = 12.0
504 flags.Xi2maxNoAdd = 35.0
505 flags.nWeightedClustersMin = 6
506 flags.doBremRecoverySi =
False
507 flags.RunPixelPID =
False
510 flags.etaHalfWidth = 3
511 flags.phiHalfWidth = math.pi
512 flags.doZFinder =
False
513 flags.doZFinderOnly =
True
515 flags.minClusters = 3
516 flags.nClustersMin = 3
517 flags.useSeedFilter =
True
518 flags.maxPrimaryImpact = 10.*Units.mm
519 flags.maxZImpact = 150.*Units.mm
521 flags.usePrdAssociationTool =
False
527def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
529 flags.input_name = instanceName
530 flags.name =
"beamSpot"
531 flags.suffix =
"BeamSpot"
532 flags.roi =
"HLT_Roi_FS"
533 flags.doFullScan =
True
534 flags.doZFinder =
True
535 flags.DoubletDR_Max = 200
536 flags.SeedRadBinWidth = 10
537 flags.etaHalfWidth = 3
538 flags.phiHalfWidth = math.pi
540 flags.doSeedRedundancyCheck =
True
541 flags.doRecord =
False
546def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
548 flags.input_name = instanceName
549 flags.name =
"fullScan"
551 flags.roi =
"HLT_Roi_FS"
552 flags.vertex =
"HLT_IDVertex_FS"
553 flags.adaptiveVertex =
True
557 flags.vertex_jet =
"HLT_IDVertex_FS"
558 flags.adaptiveVertex_jet =
True
559 flags.doFullScan =
True
560 flags.etaHalfWidth = 3.
561 flags.phiHalfWidth = math.pi
563 flags.DoubletDR_Max = 200
564 flags.SeedRadBinWidth = 10
565 flags.doSeedRedundancyCheck =
True
566 flags.TripletDoPPS =
False
567 flags.nClustersMin = 8
568 flags.UseTrigSeedML = 4
569 flags.dodEdxTrk =
True
571 flags.doDisappearingTrk =
True if recoMode==
"InDet" else False
577def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
579 flags.input_name = instanceName
580 flags.name =
"fullScan"
582 flags.roi =
"HLT_Roi_FS"
583 flags.doFullScan =
True
584 flags.etaHalfWidth = 3.
585 flags.phiHalfWidth = math.pi
587 flags.DoubletDR_Max = 200
588 flags.SeedRadBinWidth = 10
589 flags.TripletDoPPS =
False
590 flags.nClustersMin = 8
591 flags.UseTrigSeedML = 4
592 flags.doRecord =
False
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.doFullScan =
True
609 flags.etaHalfWidth = 3
610 flags.phiHalfWidth = math.pi
614 flags.nClustersMin = 4
615 flags.minSiNotShared = 3
619 flags.maxSCTHoles = 3
620 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
621 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
623 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
624 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
625 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
627 flags.nWeightedClustersMin = 8
628 flags.useSeedFilter =
True
629 flags.usePrdAssociationTool=
False
630 flags.roadWidth = 75.
631 flags.maxZImpact =
tsetter(flags.maxZImpact, 10000.*Units.mm)
632 if recoMode==
"InDet":
633 flags.minTRTonTrk = 20
638def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
640 flags.input_name = instanceName
641 flags.name =
"bphysics"
642 flags.suffix =
"Bmumux"
643 flags.roi =
"HLT_Roi_Bmumux"
644 flags.Triplet_D0Max = 10.
645 flags.DoPhiFiltering =
False
646 flags.etaHalfWidth = 0.75
647 flags.phiHalfWidth = 0.75
648 flags.zedHalfWidth = 50.
649 flags.doSeedRedundancyCheck =
True
650 flags.SuperRoI =
True
654def bhh(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
656 flags.input_name = instanceName
659 flags.roi =
"HLT_Roi_Bhh"
660 flags.Triplet_D0Max = 10.
661 flags.DoPhiFiltering =
False
662 flags.etaHalfWidth = 2.5
663 flags.phiHalfWidth = math.pi-1.e-5
664 flags.zedHalfWidth = 30.
667 flags.doSeedRedundancyCheck =
True
668 flags.SuperRoI =
True
672def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
674 flags.input_name = instanceName
675 flags.name =
"electronLRT"
676 flags.suffix =
"ElecLRT"
677 flags.roi =
"HLT_Roi_Electron"
678 flags.etaHalfWidth = 0.1
679 flags.phiHalfWidth = 0.4
680 flags.UsePixelSpacePoints =
False
681 flags.Triplet_D0Max = 300.
682 flags.TrackInitialD0Max = 300.
683 flags.TrackZ0Max = 500.
684 flags.zedHalfWidth = 225.
685 flags.keepTrackParameters =
True
686 flags.doSeedRedundancyCheck =
True
687 flags.nClustersMin = 8
690 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
691 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
693 flags.doEmCaloSeed =
False
698def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
700 flags.input_name = instanceName
701 flags.name =
"muonLRT"
702 flags.suffix =
"MuonLRT"
703 flags.roi =
"HLT_Roi_Muon"
704 flags.UsePixelSpacePoints =
False
705 flags.etaHalfWidth = 0.2
706 flags.phiHalfWidth = 0.4
707 flags.Triplet_D0Max = 300.
708 flags.TrackInitialD0Max = 300.
709 flags.TrackZ0Max = 500.
710 flags.zedHalfWidth = 225.
711 flags.doSeedRedundancyCheck =
True
712 flags.nClustersMin = 8
714 flags.doResMon =
True
715 flags.DoPhiFiltering =
False
717 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
718 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
720 flags.doEmCaloSeed =
False
727def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
729 flags.input_name = instanceName
730 flags.name =
"tauLRT"
731 flags.suffix =
"TauLRT"
732 flags.roi =
"HLT_Roi_TauLRT"
733 flags.vertex =
"HLT_IDVertex_Tau"
736 flags.etaHalfWidth = 0.4
737 flags.phiHalfWidth = 0.4
738 flags.zedHalfWidth = 225.
739 flags.UsePixelSpacePoints =
False
740 flags.Triplet_D0Max = 300.
741 flags.TrackInitialD0Max = 300.
742 flags.TrackZ0Max = 500.
743 flags.nClustersMin = 8
746 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
747 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
749 flags.doEmCaloSeed =
False
750 if recoMode==
"InDet":
757def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
759 flags.input_name = instanceName
760 flags.name =
"bjetLRT"
761 flags.suffix =
"BjetLRT"
762 flags.roi =
"HLT_Roi_Bjet"
763 flags.etaHalfWidth = 0.4
764 flags.phiHalfWidth = 0.4
765 flags.UsePixelSpacePoints =
False
766 flags.Triplet_D0Max = 300.
767 flags.TrackInitialD0Max = 300.
768 flags.TrackZ0Max = 500.
769 flags.nClustersMin = 8
772 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
773 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
775 flags.doEmCaloSeed =
False
781def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
783 flags.input_name = instanceName
784 flags.name =
"fullScanLRT"
785 flags.suffix =
"FSLRT"
786 flags.roi =
"HLT_Roi_FS"
787 flags.doFullScan =
True
788 flags.etaHalfWidth = 3.
789 flags.phiHalfWidth = math.pi
791 flags.doSeedRedundancyCheck =
True
792 flags.UsePixelSpacePoints =
False
793 flags.Triplet_D0Max = 300.
794 flags.TrackInitialD0Max = 300.
795 flags.TrackZ0Max = 500.
796 flags.Triplet_D0_PPS_Max = 300.
797 flags.DoubletDR_Max = 200
798 flags.nClustersMin = 8
801 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
802 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
804 flags.doEmCaloSeed =
False
810def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
812 flags.input_name = instanceName
813 flags.name =
"DJetLRT"
814 flags.suffix =
"DJLRT"
815 flags.roi =
"HLT_Roi_DJ"
816 flags.doFullScan =
False
817 flags.etaHalfWidth = 0.4
818 flags.phiHalfWidth = 0.4
819 flags.zedHalfWidth = 225.
821 flags.doSeedRedundancyCheck =
True
822 flags.UsePixelSpacePoints =
False
823 flags.Triplet_D0Max = 300.
824 flags.TrackInitialD0Max = 300.
825 flags.TrackZ0Max = 500.
826 flags.Triplet_D0_PPS_Max = 300.
827 flags.DoubletDR_Max = 200
828 flags.nClustersMin = 8
831 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
832 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
834 flags.doEmCaloSeed =
False
840def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
842 flags.input_name = instanceName
843 flags.name =
"DVtxLRT"
844 flags.suffix =
"DVLRT"
845 flags.roi =
"HLT_Roi_DV"
846 flags.doFullScan =
False
847 flags.etaHalfWidth = 0.35
848 flags.phiHalfWidth = 0.35
850 flags.doSeedRedundancyCheck =
True
851 flags.UsePixelSpacePoints =
False
852 flags.Triplet_D0Max = 300.
853 flags.TrackInitialD0Max = 300.
854 flags.TrackZ0Max = 500.
855 flags.Triplet_D0_PPS_Max = 300.
856 flags.DoubletDR_Max = 200
857 flags.nClustersMin = 8
860 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
861 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
863 flags.doEmCaloSeed =
False
870 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
871 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
872 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
875 flags.tracks_IDTrig = \
876 collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".format(flags.suffix
if flags.input_name
not in [
'tauIso',
'tauIsoHitZ']
else "Tau"))
878 if recoMode ==
"Acts":
879 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
880 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
883 flags.minClusters =
tsetter(flags.minClusters , 8)
884 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
885 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
886 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
887 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
888 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
889 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
890 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
893 if recoMode ==
"ITk":
894 flags.extension = flags.input_name
897 flags.UsePixelSpacePoints =
True
904 signature = flags.input_name
905 firstStage =
True if "FTF" in name
else False
908 if signature
in [
"tauHitsHitZ",
"minBias",
"minBiasPixel",
"bjetLRT",
909 "beamSpot",
"BeamSpot"]:
912 if signature
in [
"tauHitsHitZ",
"tauCore",
"tauCoreHitZ",
"tauIso",
"tauIsoHitZ",
"tauIsoBDT",
913 "jet",
"fullScan",
"FS",
"jetSuper",
"bhh",
914 "beamSpot",
"BeamSpot",
"beamSpotFS",
915 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
919 ret = recordable(name)
924 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
925 flags.addFlag(f
'{category}.doGPU',
False)
926 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
927 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
928 flags.addFlag(f
'{category}.UseTracklets',
False)
929 flags.addFlag(f
'{category}.trackletPoints', 1)
930 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
931 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
932 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
933 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
934 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
935 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
936 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
937 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
938 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
939 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
940 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
941 flags.addFlag(f
'{category}.TRT_DriftCircleKey',
"TRT_TrigDriftCircles")
942 flags.addFlag(f
'{category}.PixClustersAmbiMap',
"TrigPixelClusterAmbiguitiesMap")
943 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
949 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
950 flags = initConfigFlags()
951 flags.Trigger.InDetTracking.electron.minPT=3.
952 flags.Trigger.ITkTracking.muonLRT.maxEta=5.
953 flags.Trigger.ITkTracking.jetSuper.minPT=[3.,2.,1.]
954 self.
newflags1 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
956 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.muonLRT',
958 self.
newflags3 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.jetSuper',
962 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.minPT, 3., msg=
"Preset value lost")
963 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect version of flags")
964 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect version of flags")
965 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.maxEta, 5., msg=
"Preset value lost")
966 self.assertEqual(self.
newflags3.Tracking.ActiveConfig.minPT, [3.,2.,1.], msg=
"Preset value lost")
969if __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[])