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(
"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,
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):
287def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
289 flags.input_name = instanceName
290 flags.name =
"electron"
291 flags.suffix =
"Electron"
292 flags.roi =
"HLT_Roi_Electron"
293 flags.etaHalfWidth = 0.05
294 flags.phiHalfWidth = 0.1
295 flags.doCloneRemoval =
True
296 flags.doSeedRedundancyCheck =
True
297 if recoMode==
"InDet":
299 flags.keepTrackParameters =
True
300 flags.electronPID =
True
304def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
306 flags.input_name = instanceName
308 flags.suffix =
"Muon"
309 flags.roi =
"HLT_Roi_L2SAMuon"
310 flags.Triplet_D0Max = 10.0
311 flags.doResMon =
True
312 flags.DoPhiFiltering =
False
313 flags.doSeedRedundancyCheck =
True
314 flags.monPtMin = 12*Units.GeV
318def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
320 flags.input_name = instanceName
321 flags.name =
"muonIso"
322 flags.suffix =
"MuonIso"
323 flags.roi =
"HLT_Roi_MuonIso"
324 flags.etaHalfWidth = 0.35
325 flags.phiHalfWidth = 0.35
326 flags.zedHalfWidth = 10.0
330def tauHitsHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
333 flags.input_name = instanceName
334 flags.name =
"tauHitsHitZ"
335 flags.suffix =
"TauHits"
336 flags.roi =
"HLT_Roi_TauHitsHitZ"
340def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
342 flags.input_name = instanceName
343 flags.name =
"tauCore"
344 flags.suffix =
"TauCore"
345 flags.roi =
"HLT_Roi_TauCore"
346 flags.pTmin = 0.8*Units.GeV
347 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
349 flags.holeSearch_FTF =
True
353def tauCoreHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
354 flags =
tauCore(flags, instanceName, recoMode)
355 flags.name =
"tauCoreHitZ"
356 flags.roi =
"HLT_Roi_TauCoreHitZ"
357 flags.zedHalfWidth = 30.0
361def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
363 flags.input_name = instanceName
364 flags.name =
"tauIso"
365 flags.suffix =
"TauIso"
366 flags.roi =
"HLT_Roi_TauIso"
367 flags.etaHalfWidth = 0.4
368 flags.phiHalfWidth = 0.4
369 flags.zedHalfWidth = 7.0
370 flags.adaptiveVertex =
True
371 flags.addSingleTrackVertices =
True
372 flags.vertex =
"HLT_IDVertex_Tau"
373 flags.electronPID =
False
374 flags.pTmin = 0.8*Units.GeV
375 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
379def tauIsoHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
380 flags =
tauIso(flags, instanceName, recoMode)
381 flags.name =
"tauIsoHitZ"
382 flags.roi =
"HLT_Roi_TauIsoHitZ"
386def diTau(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
388 flags.input_name = instanceName
390 flags.suffix =
"DiTau"
391 flags.roi =
"HLT_Roi_DiTau"
392 flags.etaHalfWidth = 1.0
393 flags.phiHalfWidth = 1.0
394 flags.zedHalfWidth = 7.0
395 flags.adaptiveVertex =
True
396 flags.addSingleTrackVertices =
True
397 flags.vertex =
"HLT_IDVertex_DiTau"
398 flags.electronPID =
False
399 flags.pTmin = 0.8*Units.GeV
400 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
404def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
406 flags.input_name = instanceName
408 flags.suffix =
"Bjet"
409 flags.roi =
"HLT_Roi_Bjet"
410 flags.etaHalfWidth = 0.4
411 flags.phiHalfWidth = 0.4
412 flags.zedHalfWidth = 10.0
413 flags.pTmin = 0.8*Units.GeV
414 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
415 flags.Xi2max =
tsetter(flags.Xi2max,12.)
419def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
421 flags.input_name = instanceName
422 flags.name =
"jetSuper"
423 flags.suffix =
"JetSuper"
424 flags.vertex =
"HLT_IDVertex_JetSuper"
425 flags.adaptiveVertex =
True
426 flags.addSingleTrackVertices =
True
427 flags.roi =
"HLT_Roi_JetSuper"
428 flags.etaHalfWidth = 0.3
429 flags.phiHalfWidth = 0.3
430 flags.doFullScan =
True
431 flags.pTmin = 1*Units.GeV
432 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
435 flags.DoubletDR_Max = 200
436 flags.SeedRadBinWidth = 10
437 flags.doSeedRedundancyCheck =
True
438 flags.TripletDoPPS =
False
439 flags.nClustersMin = 8
440 flags.UseTrigSeedML = 4
445def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
447 flags.input_name = instanceName
448 flags.name =
"minBias"
449 flags.suffix =
"MinBias"
450 flags.roi =
"HLT_Roi_MinBias"
451 flags.doFullScan =
True
452 flags.pTmin = 0.1*Units.GeV
453 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
456 flags.etaHalfWidth = 3
457 flags.phiHalfWidth = math.pi
458 flags.doZFinder =
True
459 flags.doZFinderOnly =
True
461 flags.nClustersMin = 5
462 flags.useSeedFilter =
True
463 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
464 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
466 flags.usePrdAssociationTool =
False
471def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
473 flags.input_name = instanceName
474 flags.name =
"minBiasPixel"
475 flags.suffix =
"MinBiasPixel"
476 flags.roi =
"HLT_Roi_MinBias"
477 flags.doFullScan =
True
478 flags.pTmin = 0.1*Units.GeV
479 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
483 flags.maxPixelHoles = 0
484 flags.maxSctHoles = 0
485 flags.maxDoubleHoles = 0
486 flags.minSiNotShared = 3
489 flags.nHolesGapMax = 0
490 if recoMode==
"InDet":
492 flags.useSCTSeeding =
False
495 flags.roadWidth = 12.0
497 flags.Xi2maxNoAdd = 35.0
498 flags.nWeightedClustersMin = 6
499 flags.doBremRecoverySi =
False
500 flags.RunPixelPID =
False
503 flags.etaHalfWidth = 3
504 flags.phiHalfWidth = math.pi
505 flags.doZFinder =
False
506 flags.doZFinderOnly =
True
508 flags.minClusters = 3
509 flags.nClustersMin = 3
510 flags.useSeedFilter =
True
511 flags.maxPrimaryImpact = 10.*Units.mm
512 flags.maxZImpact = 150.*Units.mm
514 flags.usePrdAssociationTool =
False
520def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
522 flags.input_name = instanceName
523 flags.name =
"beamSpot"
524 flags.suffix =
"BeamSpot"
525 flags.roi =
"HLT_Roi_FS"
526 flags.doFullScan =
True
527 flags.doZFinder =
True
528 flags.DoubletDR_Max = 200
529 flags.SeedRadBinWidth = 10
530 flags.etaHalfWidth = 3
531 flags.phiHalfWidth = math.pi
533 flags.doSeedRedundancyCheck =
True
534 flags.doRecord =
False
539def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
541 flags.input_name = instanceName
542 flags.name =
"fullScan"
544 flags.roi =
"HLT_Roi_FS"
545 flags.vertex =
"HLT_IDVertex_FS"
546 flags.adaptiveVertex =
True
550 flags.vertex_jet =
"HLT_IDVertex_FS"
551 flags.adaptiveVertex_jet =
True
552 flags.doFullScan =
True
553 flags.etaHalfWidth = 3.
554 flags.phiHalfWidth = math.pi
556 flags.DoubletDR_Max = 200
557 flags.SeedRadBinWidth = 10
558 flags.doSeedRedundancyCheck =
True
559 flags.TripletDoPPS =
False
560 flags.nClustersMin = 8
561 flags.UseTrigSeedML = 4
562 flags.dodEdxTrk =
True
564 flags.doDisappearingTrk =
True if recoMode==
"InDet" else False
570def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
572 flags.input_name = instanceName
573 flags.name =
"fullScan"
575 flags.roi =
"HLT_Roi_FS"
576 flags.doFullScan =
True
577 flags.etaHalfWidth = 3.
578 flags.phiHalfWidth = math.pi
580 flags.DoubletDR_Max = 200
581 flags.SeedRadBinWidth = 10
582 flags.TripletDoPPS =
False
583 flags.nClustersMin = 8
584 flags.UseTrigSeedML = 4
585 flags.doRecord =
False
590def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
592 flags.input_name = instanceName
593 flags.name =
"cosmics"
594 flags.suffix =
"Cosmic"
595 flags.roi =
"HLT_Roi_Cosmics"
596 flags.Triplet_D0Max = 1000.0
597 flags.Triplet_D0_PPS_Max = 1000.0
598 flags.TrackInitialD0Max = 1000.
599 flags.TrackZ0Max = 1000.
601 flags.doFullScan =
True
602 flags.etaHalfWidth = 3
603 flags.phiHalfWidth = math.pi
605 flags.minPT =
tsetter(flags.minPT, 0.5*Units.GeV)
607 flags.nClustersMin = 4
608 flags.minSiNotShared = 3
612 flags.maxSCTHoles = 3
613 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
614 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
616 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
617 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
618 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
620 flags.nWeightedClustersMin= 8
621 flags.useSeedFilter =
True
622 flags.usePrdAssociationTool =
False
623 flags.roadWidth = 75.
624 flags.maxZImpact=
tsetter(flags.maxZImpact, 10000.*Units.mm)
625 if recoMode==
"InDet":
626 flags.minTRTonTrk = 20
631def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
633 flags.input_name = instanceName
634 flags.name =
"bphysics"
635 flags.suffix =
"Bmumux"
636 flags.roi =
"HLT_Roi_Bmumux"
637 flags.Triplet_D0Max = 10.
638 flags.DoPhiFiltering =
False
639 flags.etaHalfWidth = 0.75
640 flags.phiHalfWidth = 0.75
641 flags.zedHalfWidth = 50.
642 flags.doSeedRedundancyCheck =
True
643 flags.SuperRoI =
True
647def bhh(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
649 flags.input_name = instanceName
652 flags.roi =
"HLT_Roi_Bhh"
653 flags.Triplet_D0Max = 10.
654 flags.DoPhiFiltering =
False
655 flags.etaHalfWidth = 2.5
656 flags.phiHalfWidth = math.pi-1.e-5
657 flags.zedHalfWidth = 30.
658 flags.pTmin = 2*Units.GeV
659 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
660 flags.doSeedRedundancyCheck =
True
661 flags.SuperRoI =
True
665def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
667 flags.input_name = instanceName
668 flags.name =
"electronLRT"
669 flags.suffix =
"ElecLRT"
670 flags.roi =
"HLT_Roi_Electron"
671 flags.etaHalfWidth = 0.1
672 flags.phiHalfWidth = 0.4
673 flags.UsePixelSpacePoints =
False
674 flags.Triplet_D0Max = 300.
675 flags.TrackInitialD0Max = 300.
676 flags.TrackZ0Max = 500.
677 flags.zedHalfWidth = 225.
678 flags.keepTrackParameters =
True
679 flags.doSeedRedundancyCheck =
True
680 flags.nClustersMin = 8
683 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
684 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
686 flags.doEmCaloSeed =
False
691def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
693 flags.input_name = instanceName
694 flags.name =
"muonLRT"
695 flags.suffix =
"MuonLRT"
696 flags.roi =
"HLT_Roi_Muon"
697 flags.UsePixelSpacePoints =
False
698 flags.etaHalfWidth = 0.2
699 flags.phiHalfWidth = 0.4
700 flags.Triplet_D0Max = 300.
701 flags.TrackInitialD0Max = 300.
702 flags.TrackZ0Max = 500.
703 flags.zedHalfWidth = 225.
704 flags.doSeedRedundancyCheck =
True
705 flags.nClustersMin = 8
707 flags.doResMon =
True
708 flags.DoPhiFiltering =
False
710 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
711 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
713 flags.doEmCaloSeed =
False
720def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
722 flags.input_name = instanceName
723 flags.name =
"tauLRT"
724 flags.suffix =
"TauLRT"
725 flags.roi =
"HLT_Roi_TauLRT"
726 flags.vertex =
"HLT_IDVertex_Tau"
727 flags.pTmin = 0.8*Units.GeV
728 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
729 flags.etaHalfWidth = 0.4
730 flags.phiHalfWidth = 0.4
731 flags.zedHalfWidth = 225.
732 flags.UsePixelSpacePoints =
False
733 flags.Triplet_D0Max = 300.
734 flags.TrackInitialD0Max = 300.
735 flags.TrackZ0Max = 500.
736 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
765 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
766 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
768 flags.doEmCaloSeed =
False
774def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
776 flags.input_name = instanceName
777 flags.name =
"fullScanLRT"
778 flags.suffix =
"FSLRT"
779 flags.roi =
"HLT_Roi_FS"
780 flags.doFullScan =
True
781 flags.etaHalfWidth = 3.
782 flags.phiHalfWidth = math.pi
784 flags.doSeedRedundancyCheck =
True
785 flags.UsePixelSpacePoints =
False
786 flags.Triplet_D0Max = 300.
787 flags.TrackInitialD0Max = 300.
788 flags.TrackZ0Max = 500.
789 flags.Triplet_D0_PPS_Max = 300.
790 flags.DoubletDR_Max = 200
791 flags.nClustersMin = 8
794 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
795 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
797 flags.doEmCaloSeed =
False
803def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
805 flags.input_name = instanceName
806 flags.name =
"DJetLRT"
807 flags.suffix =
"DJLRT"
808 flags.roi =
"HLT_Roi_DJ"
809 flags.doFullScan =
False
810 flags.etaHalfWidth = 0.4
811 flags.phiHalfWidth = 0.4
812 flags.zedHalfWidth = 225.
814 flags.doSeedRedundancyCheck =
True
815 flags.UsePixelSpacePoints =
False
816 flags.Triplet_D0Max = 300.
817 flags.TrackInitialD0Max = 300.
818 flags.TrackZ0Max = 500.
819 flags.Triplet_D0_PPS_Max = 300.
820 flags.DoubletDR_Max = 200
821 flags.nClustersMin = 8
824 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
825 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
827 flags.doEmCaloSeed =
False
833def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
835 flags.input_name = instanceName
836 flags.name =
"DVtxLRT"
837 flags.suffix =
"DVLRT"
838 flags.roi =
"HLT_Roi_DV"
839 flags.doFullScan =
False
840 flags.etaHalfWidth = 0.35
841 flags.phiHalfWidth = 0.35
843 flags.doSeedRedundancyCheck =
True
844 flags.UsePixelSpacePoints =
False
845 flags.Triplet_D0Max = 300.
846 flags.TrackInitialD0Max = 300.
847 flags.TrackZ0Max = 500.
848 flags.Triplet_D0_PPS_Max = 300.
849 flags.DoubletDR_Max = 200
850 flags.nClustersMin = 8
853 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
854 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
856 flags.doEmCaloSeed =
False
863 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
864 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
865 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
868 flags.tracks_IDTrig = \
869 collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".format(flags.suffix
if flags.input_name
not in [
'tauIso',
'tauIsoHitZ']
else "Tau"))
871 if recoMode ==
"Acts":
872 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
873 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
876 flags.minClusters =
tsetter(flags.minClusters , 8)
877 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
878 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
879 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
880 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
881 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
882 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
883 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
886 if recoMode ==
"ITk":
887 flags.extension = flags.input_name
890 flags.UsePixelSpacePoints =
True
897 signature = flags.input_name
898 firstStage =
True if "FTF" in name
else False
901 if signature
in [
"tauHitsHitZ",
"minBias",
"minBiasPixel",
"bjetLRT",
902 "beamSpot",
"BeamSpot"]:
905 if signature
in [
"tauHitsHitZ",
"tauCore",
"tauCoreHitZ",
"tauIso",
"tauIsoHitZ",
"tauIsoBDT",
906 "jet",
"fullScan",
"FS",
"jetSuper",
"bhh",
907 "beamSpot",
"BeamSpot",
"beamSpotFS",
908 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
912 ret = recordable(name)
917 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
918 flags.addFlag(f
'{category}.doGPU',
False)
919 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
920 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
921 flags.addFlag(f
'{category}.UseTracklets',
False)
922 flags.addFlag(f
'{category}.trackletPoints', 1)
923 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
924 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
925 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
926 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
927 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
928 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
929 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
930 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
931 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
932 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
933 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
934 flags.addFlag(f
'{category}.TRT_DriftCircleKey',
"TRT_TrigDriftCircles")
935 flags.addFlag(f
'{category}.PixClustersAmbiMap',
"TrigPixelClusterAmbiguitiesMap")
936 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
942 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
943 flags = initConfigFlags()
944 flags.Trigger.InDetTracking.electron.pTmin=3.
945 self.
newflags = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
947 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.muonLRT',
951 self.assertEqual(self.
newflags.Tracking.ActiveConfig.pTmin, 3., msg=
"Preset value lost")
952 self.assertEqual(self.
newflags.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect config")
953 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect config")
956if __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 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[])