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
11from copy
import deepcopy
14log = logging.getLogger(
"__name__")
18 flags.addFlag(
"input_name",
"")
19 flags.addFlag(
"name",
"")
20 flags.addFlag(
"suffix",
"")
22 flags.addFlag(
"pTmin", 1.*Units.GeV)
23 flags.addFlag(
"TripletDoPPS",
True)
24 flags.addFlag(
"Triplet_D0Max", 4.0)
25 flags.addFlag(
"Triplet_D0_PPS_Max", 1.7)
26 flags.addFlag(
"DoPhiFiltering",
True)
27 flags.addFlag(
"doZFinder",
False)
28 flags.addFlag(
"doZFinderOnly",
False)
29 flags.addFlag(
"doResMon",
False)
30 flags.addFlag(
"doCloneRemoval",
True)
31 flags.addFlag(
"doSeedRedundancyCheck",
False)
32 flags.addFlag(
"DoubletDR_Max", 270)
33 flags.addFlag(
"SeedRadBinWidth", 2)
34 flags.addFlag(
"holeSearch_FTF",
False)
35 flags.addFlag(
"electronPID",
False)
36 flags.addFlag(
"etaHalfWidth", 0.1)
37 flags.addFlag(
"phiHalfWidth", 0.1)
38 flags.addFlag(
"zedHalfWidth", -999)
39 flags.addFlag(
"doFullScan",
False)
40 flags.addFlag(
"monPS", 1)
41 flags.addFlag(
"monPtMin", 1*Units.GeV)
42 flags.addFlag(
"doTRT",
True)
43 flags.addFlag(
"keepTrackParameters",
False)
44 flags.addFlag(
"UsePixelSpacePoints",
True)
45 flags.addFlag(
"TrackInitialD0Max", 20.0)
46 flags.addFlag(
"TrackZ0Max", 300.0)
47 flags.addFlag(
"isLRT",
False)
48 flags.addFlag(
"UseTrigSeedML", 0)
49 flags.addFlag(
"nClustersMin", 7)
50 flags.addFlag(
"roi",
"")
51 flags.addFlag(
"LRT_D0Min", 2.0)
52 flags.addFlag(
"LRT_HardPtMin", 1.0*Units.GeV)
53 flags.addFlag(
"doRecord",
True)
54 flags.addFlag(
"vertex",
"")
55 flags.addFlag(
"adaptiveVertex",
False)
56 flags.addFlag(
"addSingleTrackVertices",
False)
57 flags.addFlag(
"TracksMaxZinterval", 1)
58 flags.addFlag(
"minNSiHits_vtx", 10)
59 flags.addFlag(
"vertex_jet",
"")
60 flags.addFlag(
"adaptiveVertex_jet",
False)
61 flags.addFlag(
"dodEdxTrk",
False)
62 flags.addFlag(
"doHitDV",
False)
63 flags.addFlag(
"doDisappearingTrk",
False)
64 flags.addFlag(
"useDynamicRoiZWidth",
False)
73 flags.addFlag(
"minSiClusters", 7)
74 flags.addFlag(
"maxSiHoles", 5)
75 flags.maxPixelHoles = 5
76 flags.addFlag(
"maxSCTHoles", 5)
77 flags.maxDoubleHoles = 2
78 flags.addFlag(
"doEmCaloSeed",
False)
80 flags.useSeedFilter =
False
81 flags.doBremRecoverySi =
False
83 flags.addFlag(
"refitROT",
True)
84 flags.addFlag(
"trtExtensionType",
"xf")
85 flags.addFlag(
"doTruth",
False)
86 flags.addFlag(
"perigeeExpression",
"BeamLine")
87 flags.addFlag(
"SuperRoI",
False)
89 flags.addFlag(
"trkTracks_FTF",
"")
90 flags.addFlag(
"trkTracks_IDTrig",
"")
91 flags.addFlag(
"tracks_FTF",
"")
92 flags.addFlag(
"tracks_IDTrig",
"")
93 flags.addFlag(
"useGBTSeedingTool",
False)
97 flags = createTrackingPassFlags()
100 flags.minPT = flags.pTmin
102 flags.minClusters = 7
103 flags.minSiNotShared = 5
106 flags.Xi2maxNoAdd = 25.
108 flags.nHolesGapMax = 2
109 flags.nWeightedClustersMin= 6
113 flags.maxPrimaryImpact = 10.
114 flags.maxEMImpact = 50.
115 flags.maxZImpact = 250.
120 flags.useTIDE_Ambi =
False
124 flags.maxSCTHoles = 5
130 flags = createITkTrackingPassFlags()
133 flags.minPT = [1.0*Units.GeV,0.45*Units.GeV,0.45*Units.GeV]
134 flags.minClusters = [9,8,7]
136 flags.Xi2maxNoAdd = [25.]
137 flags.nHolesMax = [2]
138 flags.nHolesGapMax = [2]
139 flags.nWeightedClustersMin= [6]
140 flags.maxDoubleHoles = [2]
141 flags.maxPixelHoles = [5]
142 flags.maxZImpact = [250.0]
144 flags.doZFinder =
False
145 flags.DoPhiFiltering =
True
146 flags.UsePixelSpacePoints =
True
147 flags.doDisappearingTrk =
False
148 flags.doCaloSeededBremSi =
False
149 flags.doCaloSeededAmbiSi =
False
150 flags.DoubletDR_Max = 150.0
151 flags.useTIDE_Ambi =
False
156 flags = createActsTrackingPassFlags()
159 flags.minPT = [0.9*Units.GeV, 0.4*Units.GeV, 0.4*Units.GeV]
160 flags.minClusters = [9, 8, 7]
163 flags.maxShared = [2]
165 flags.maxPixelHoles = [2]
166 flags.maxSctHoles = [2]
167 flags.maxShared = [2]
168 flags.maxDoubleHoles = [1]
177 "electron" : electron,
182 "muonIsoMS" : muonIso,
194 "fullScan" : fullScan,
196 "jetSuper" : jetSuper,
198 "beamSpot" : beamSpot,
199 "BeamSpot" : beamSpot,
200 "beamSpotFS" : beamSpotFS,
207 "minBiasPixel" : minBiasPixel,
209 "electronLRT" : electronLRT,
213 "fullScanLRT" : fullScanLRT,
218 flags = AthConfigFlags()
221 category =
'Trigger.InDetTracking'
222 defaults = defaultInDetTrigTrackingFlags
224 category =
'Trigger.ITkTracking'
225 defaults = defaultITkTrigTrackingFlags
227 category =
"Trigger.ActsTracking"
228 defaults = defaultITkActsTrigTrackingFlags
230 log.error(
"Unsupported reconstruction mode %s", mode)
233 class categoryGeneratorWrapper():
234 """ wrap function which can be consumed by addFlagsCategory and provide its args """
235 def __init__(self, fun : Callable[[AthConfigFlags, str, str], AthConfigFlags],
236 flags : AthConfigFlags, signatureInstance : str, recoMode : str):
238 self.sig = signatureInstance
242 return self.fun(self.flags,self.sig,self.mode)
244 for i
in signatureSet.keys():
245 trackingflags = deepcopy(
defaults())
246 a = categoryGeneratorWrapper(signatureSet[i],trackingflags,i,mode)
247 signatureCategory =
"{}.{}".format(category,i)
248 flags.addFlagsCategory(signatureCategory,a.run,prefix=
True)
256 """ convenience decorator to automate config steps """
257 def invokeSteps(*args, **kwargs):
258 flagsSig = func(*args, **kwargs)
266 """ use previous type of the var and convert value to it
267 for the moment just makes list of a value if needed
270 typeOfValue =
type(value)
271 if type2set == typeOfValue:
274 basic = (bool, str, int, float,
type(
None))
275 if isinstance(var,basic):
284def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
286 flags.input_name = instanceName
287 flags.name =
"electron"
288 flags.suffix =
"Electron"
289 flags.roi =
"HLT_Roi_Electron"
290 flags.etaHalfWidth = 0.05
291 flags.phiHalfWidth = 0.1
292 flags.doCloneRemoval =
True
293 flags.doSeedRedundancyCheck =
True
294 if recoMode==
"InDet":
296 flags.keepTrackParameters =
True
297 flags.electronPID =
True
301def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
303 flags.input_name = instanceName
305 flags.suffix =
"Muon"
306 flags.roi =
"HLT_Roi_L2SAMuon"
307 flags.Triplet_D0Max = 10.0
308 flags.doResMon =
True
309 flags.DoPhiFiltering =
False
310 flags.doSeedRedundancyCheck =
True
311 flags.monPtMin = 12*Units.GeV
315def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
317 flags.input_name = instanceName
318 flags.name =
"muonIso"
319 flags.suffix =
"MuonIso"
320 flags.roi =
"HLT_Roi_MuonIso"
321 flags.etaHalfWidth = 0.35
322 flags.phiHalfWidth = 0.35
323 flags.zedHalfWidth = 10.0
327def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
329 flags.input_name = instanceName
330 flags.name =
"tauCore"
331 flags.suffix =
"TauCore"
332 flags.roi =
"HLT_Roi_TauCore"
333 flags.pTmin = 0.8*Units.GeV
334 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
336 flags.holeSearch_FTF =
True
340def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
342 flags.input_name = instanceName
343 flags.name =
"tauIso"
344 flags.suffix =
"TauIso"
345 flags.roi =
"HLT_Roi_TauIso"
346 flags.etaHalfWidth = 0.4
347 flags.phiHalfWidth = 0.4
348 flags.zedHalfWidth = 7.0
349 flags.adaptiveVertex =
True
350 flags.addSingleTrackVertices =
True
351 flags.vertex =
"HLT_IDVertex_Tau"
352 flags.electronPID =
False
353 flags.pTmin = 0.8*Units.GeV
354 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
358def diTau(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
360 flags.input_name = instanceName
362 flags.suffix =
"DiTau"
363 flags.roi =
"HLT_Roi_DiTau"
364 flags.etaHalfWidth = 1.0
365 flags.phiHalfWidth = 1.0
366 flags.zedHalfWidth = 7.0
367 flags.adaptiveVertex =
True
368 flags.addSingleTrackVertices =
True
369 flags.vertex =
"HLT_IDVertex_DiTau"
370 flags.electronPID =
False
371 flags.pTmin = 0.8*Units.GeV
372 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
376def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
378 flags.input_name = instanceName
380 flags.suffix =
"Bjet"
381 flags.roi =
"HLT_Roi_Bjet"
382 flags.etaHalfWidth = 0.4
383 flags.phiHalfWidth = 0.4
384 flags.zedHalfWidth = 10.0
385 flags.pTmin = 0.8*Units.GeV
386 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
387 flags.Xi2max =
tsetter(flags.Xi2max,12.)
391def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
393 flags.input_name = instanceName
394 flags.name =
"jetSuper"
395 flags.suffix =
"JetSuper"
396 flags.vertex =
"HLT_IDVertex_JetSuper"
397 flags.adaptiveVertex =
True
398 flags.addSingleTrackVertices =
True
399 flags.roi =
"HLT_Roi_JetSuper"
400 flags.etaHalfWidth = 0.3
401 flags.phiHalfWidth = 0.3
402 flags.doFullScan =
True
403 flags.pTmin = 1*Units.GeV
404 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
407 flags.DoubletDR_Max = 200
408 flags.SeedRadBinWidth = 10
409 flags.doSeedRedundancyCheck =
True
410 flags.TripletDoPPS =
False
411 flags.nClustersMin = 8
412 flags.UseTrigSeedML = 4
417def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
419 flags.input_name = instanceName
420 flags.name =
"minBias"
421 flags.suffix =
"MinBias"
422 flags.roi =
"HLT_Roi_MinBias"
423 flags.doFullScan =
True
424 flags.pTmin = 0.1*Units.GeV
425 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
428 flags.etaHalfWidth = 3
429 flags.phiHalfWidth = math.pi
430 flags.doZFinder =
True
431 flags.doZFinderOnly =
True
433 flags.nClustersMin = 5
434 flags.useSeedFilter =
True
435 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
436 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
438 flags.usePrdAssociationTool =
False
443def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
445 flags.input_name = instanceName
446 flags.name =
"minBiasPixel"
447 flags.suffix =
"MinBiasPixel"
448 flags.roi =
"HLT_Roi_MinBias"
449 flags.doFullScan =
True
450 flags.pTmin = 0.1*Units.GeV
451 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
455 flags.maxPixelHoles = 0
456 flags.maxSctHoles = 0
457 flags.maxDoubleHoles = 0
458 flags.minSiNotShared = 3
461 flags.nHolesGapMax = 0
462 if recoMode==
"InDet":
464 flags.useSCTSeeding =
False
467 flags.roadWidth = 12.0
469 flags.Xi2maxNoAdd = 35.0
470 flags.nWeightedClustersMin = 6
471 flags.doBremRecoverySi =
False
472 flags.RunPixelPID =
False
475 flags.etaHalfWidth = 3
476 flags.phiHalfWidth = math.pi
477 flags.doZFinder =
False
478 flags.doZFinderOnly =
True
480 flags.minClusters = 3
481 flags.nClustersMin = 3
482 flags.useSeedFilter =
True
483 flags.maxPrimaryImpact = 10.*Units.mm
484 flags.maxZImpact = 150.*Units.mm
486 flags.usePrdAssociationTool =
False
492def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
494 flags.input_name = instanceName
495 flags.name =
"beamSpot"
496 flags.suffix =
"BeamSpot"
497 flags.roi =
"HLT_Roi_FS"
498 flags.doFullScan =
True
499 flags.doZFinder =
True
500 flags.DoubletDR_Max = 200
501 flags.SeedRadBinWidth = 10
502 flags.etaHalfWidth = 3
503 flags.phiHalfWidth = math.pi
505 flags.doSeedRedundancyCheck =
True
506 flags.doRecord =
False
511def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
513 flags.input_name = instanceName
514 flags.name =
"fullScan"
516 flags.roi =
"HLT_Roi_FS"
517 flags.vertex =
"HLT_IDVertex_FS"
518 flags.adaptiveVertex =
True
522 flags.vertex_jet =
"HLT_IDVertex_FS"
523 flags.adaptiveVertex_jet =
True
524 flags.doFullScan =
True
525 flags.etaHalfWidth = 3.
526 flags.phiHalfWidth = math.pi
528 flags.DoubletDR_Max = 200
529 flags.SeedRadBinWidth = 10
530 flags.doSeedRedundancyCheck =
True
531 flags.TripletDoPPS =
False
532 flags.nClustersMin = 8
533 flags.UseTrigSeedML = 4
534 flags.dodEdxTrk =
True
536 flags.doDisappearingTrk =
True if recoMode==
"InDet" else False
542def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
544 flags.input_name = instanceName
545 flags.name =
"fullScan"
547 flags.roi =
"HLT_Roi_FS"
548 flags.doFullScan =
True
549 flags.etaHalfWidth = 3.
550 flags.phiHalfWidth = math.pi
552 flags.DoubletDR_Max = 200
553 flags.SeedRadBinWidth = 10
554 flags.TripletDoPPS =
False
555 flags.nClustersMin = 8
556 flags.UseTrigSeedML = 4
557 flags.doRecord =
False
562def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
564 flags.input_name = instanceName
565 flags.name =
"cosmics"
566 flags.suffix =
"Cosmic"
567 flags.roi =
"HLT_Roi_Cosmics"
568 flags.Triplet_D0Max = 1000.0
569 flags.Triplet_D0_PPS_Max = 1000.0
570 flags.TrackInitialD0Max = 1000.
571 flags.TrackZ0Max = 1000.
573 flags.doFullScan =
True
574 flags.etaHalfWidth = 3
575 flags.phiHalfWidth = math.pi
577 flags.minPT =
tsetter(flags.minPT, 0.5*Units.GeV)
579 flags.nClustersMin = 4
580 flags.minSiNotShared = 3
584 flags.maxSCTHoles = 3
585 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
586 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
588 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
589 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
590 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
592 flags.nWeightedClustersMin= 8
593 flags.useSeedFilter =
True
594 flags.usePrdAssociationTool =
False
595 flags.roadWidth = 75.
596 flags.maxZImpact=
tsetter(flags.maxZImpact, 10000.*Units.mm)
597 if recoMode==
"InDet":
598 flags.minTRTonTrk = 20
603def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
605 flags.input_name = instanceName
606 flags.name =
"bphysics"
607 flags.suffix =
"Bmumux"
608 flags.roi =
"HLT_Roi_Bmumux"
609 flags.Triplet_D0Max = 10.
610 flags.DoPhiFiltering =
False
611 flags.etaHalfWidth = 0.75
612 flags.phiHalfWidth = 0.75
613 flags.zedHalfWidth = 50.
614 flags.doSeedRedundancyCheck =
True
615 flags.SuperRoI =
True
619def bhh(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
621 flags.input_name = instanceName
624 flags.roi =
"HLT_Roi_Bhh"
625 flags.Triplet_D0Max = 10.
626 flags.DoPhiFiltering =
False
627 flags.etaHalfWidth = 2.5
628 flags.phiHalfWidth = math.pi-1.e-5
629 flags.zedHalfWidth = 30.
630 flags.pTmin = 2*Units.GeV
631 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
632 flags.doSeedRedundancyCheck =
True
633 flags.SuperRoI =
True
637def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
639 flags.input_name = instanceName
640 flags.name =
"electronLRT"
641 flags.suffix =
"ElecLRT"
642 flags.roi =
"HLT_Roi_Electron"
643 flags.etaHalfWidth = 0.1
644 flags.phiHalfWidth = 0.4
645 flags.UsePixelSpacePoints =
False
646 flags.Triplet_D0Max = 300.
647 flags.TrackInitialD0Max = 300.
648 flags.TrackZ0Max = 500.
649 flags.zedHalfWidth = 225.
650 flags.keepTrackParameters =
True
651 flags.doSeedRedundancyCheck =
True
652 flags.nClustersMin = 8
655 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
656 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
658 flags.doEmCaloSeed =
False
663def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
665 flags.input_name = instanceName
666 flags.name =
"muonLRT"
667 flags.suffix =
"MuonLRT"
668 flags.roi =
"HLT_Roi_Muon"
669 flags.UsePixelSpacePoints =
False
670 flags.etaHalfWidth = 0.2
671 flags.phiHalfWidth = 0.4
672 flags.Triplet_D0Max = 300.
673 flags.TrackInitialD0Max = 300.
674 flags.TrackZ0Max = 500.
675 flags.zedHalfWidth = 225.
676 flags.doSeedRedundancyCheck =
True
677 flags.nClustersMin = 8
679 flags.doResMon =
True
680 flags.DoPhiFiltering =
False
682 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
683 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
685 flags.doEmCaloSeed =
False
692def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
694 flags.input_name = instanceName
695 flags.name =
"tauLRT"
696 flags.suffix =
"TauLRT"
697 flags.roi =
"HLT_Roi_TauLRT"
698 flags.vertex =
"HLT_IDVertex_Tau"
699 flags.pTmin = 0.8*Units.GeV
700 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
701 flags.etaHalfWidth = 0.4
702 flags.phiHalfWidth = 0.4
703 flags.zedHalfWidth = 225.
704 flags.UsePixelSpacePoints =
False
705 flags.Triplet_D0Max = 300.
706 flags.TrackInitialD0Max = 300.
707 flags.TrackZ0Max = 500.
708 flags.nClustersMin = 8
711 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
712 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
714 flags.doEmCaloSeed =
False
715 if recoMode==
"InDet":
722def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
724 flags.input_name = instanceName
725 flags.name =
"bjetLRT"
726 flags.suffix =
"BjetLRT"
727 flags.roi =
"HLT_Roi_Bjet"
728 flags.etaHalfWidth = 0.4
729 flags.phiHalfWidth = 0.4
730 flags.UsePixelSpacePoints =
False
731 flags.Triplet_D0Max = 300.
732 flags.TrackInitialD0Max = 300.
733 flags.TrackZ0Max = 500.
734 flags.nClustersMin = 8
737 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
738 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
740 flags.doEmCaloSeed =
False
746def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
748 flags.input_name = instanceName
749 flags.name =
"fullScanLRT"
750 flags.suffix =
"FSLRT"
751 flags.roi =
"HLT_Roi_FS"
752 flags.doFullScan =
True
753 flags.etaHalfWidth = 3.
754 flags.phiHalfWidth = math.pi
756 flags.doSeedRedundancyCheck =
True
757 flags.UsePixelSpacePoints =
False
758 flags.Triplet_D0Max = 300.
759 flags.TrackInitialD0Max = 300.
760 flags.TrackZ0Max = 500.
761 flags.Triplet_D0_PPS_Max = 300.
762 flags.DoubletDR_Max = 200
763 flags.nClustersMin = 8
766 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
767 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
769 flags.doEmCaloSeed =
False
775def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
777 flags.input_name = instanceName
778 flags.name =
"DJetLRT"
779 flags.suffix =
"DJLRT"
780 flags.roi =
"HLT_Roi_DJ"
781 flags.doFullScan =
False
782 flags.etaHalfWidth = 0.4
783 flags.phiHalfWidth = 0.4
784 flags.zedHalfWidth = 225.
786 flags.doSeedRedundancyCheck =
True
787 flags.UsePixelSpacePoints =
False
788 flags.Triplet_D0Max = 300.
789 flags.TrackInitialD0Max = 300.
790 flags.TrackZ0Max = 500.
791 flags.Triplet_D0_PPS_Max = 300.
792 flags.DoubletDR_Max = 200
793 flags.nClustersMin = 8
796 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
797 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
799 flags.doEmCaloSeed =
False
805def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
807 flags.input_name = instanceName
808 flags.name =
"DVtxLRT"
809 flags.suffix =
"DVLRT"
810 flags.roi =
"HLT_Roi_DV"
811 flags.doFullScan =
False
812 flags.etaHalfWidth = 0.35
813 flags.phiHalfWidth = 0.35
815 flags.doSeedRedundancyCheck =
True
816 flags.UsePixelSpacePoints =
False
817 flags.Triplet_D0Max = 300.
818 flags.TrackInitialD0Max = 300.
819 flags.TrackZ0Max = 500.
820 flags.Triplet_D0_PPS_Max = 300.
821 flags.DoubletDR_Max = 200
822 flags.nClustersMin = 8
825 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
826 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
828 flags.doEmCaloSeed =
False
835 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
836 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
837 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
840 flags.tracks_IDTrig =
collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".format(flags.suffix
if flags.input_name !=
"tauIso" else "Tau"))
842 if recoMode ==
"Acts":
843 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
844 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
847 flags.minClusters =
tsetter(flags.minClusters , 8)
848 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
849 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
850 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
851 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
852 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
853 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
854 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
857 if recoMode ==
"ITk":
858 flags.extension = flags.input_name
861 flags.UsePixelSpacePoints =
True
868 signature = flags.input_name
869 firstStage =
True if "FTF" in name
else False
872 if signature
in [
"minBias",
"minBiasPixel",
"bjetLRT",
873 "beamSpot",
"BeamSpot"]:
876 if signature
in [
"tauCore",
"tauIso",
"tauIsoBDT",
877 "jet",
"fullScan",
"FS",
"jetSuper",
"bhh",
878 "beamSpot",
"BeamSpot",
"beamSpotFS",
879 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
883 ret = recordable(name)
888 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
889 flags.addFlag(f
'{category}.doGPU',
False)
890 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
891 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
892 flags.addFlag(f
'{category}.UseTracklets',
False)
893 flags.addFlag(f
'{category}.trackletPoints', 1)
894 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
895 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
896 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
897 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
898 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
899 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
900 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
901 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
902 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
903 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
904 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
905 flags.addFlag(f
'{category}.TRT_DriftCircleKey',
"TRT_TrigDriftCircles")
906 flags.addFlag(f
'{category}.PixClustersAmbiMap',
"TrigPixelClusterAmbiguitiesMap")
907 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
913 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
914 flags = initConfigFlags()
915 flags.Trigger.InDetTracking.electron.pTmin=3.
916 self.
newflags = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
918 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.muonLRT',
922 self.assertEqual(self.
newflags.Tracking.ActiveConfig.pTmin, 3., msg=
"Preset value lost")
923 self.assertEqual(self.
newflags.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect config")
924 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect config")
927if __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)
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 bmumux(AthConfigFlags flags, str instanceName, str recoMode)
AthConfigFlags beamSpotFS(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 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[])