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,
206 "minBiasPixel" : minBiasPixel,
208 "electronLRT" : electronLRT,
212 "fullScanLRT" : fullScanLRT,
217 flags = AthConfigFlags()
220 category =
'Trigger.InDetTracking'
221 defaults = defaultInDetTrigTrackingFlags
223 category =
'Trigger.ITkTracking'
224 defaults = defaultITkTrigTrackingFlags
226 category =
"Trigger.ActsTracking"
227 defaults = defaultITkActsTrigTrackingFlags
229 log.error(
"Unsupported reconstruction mode %s", mode)
232 class categoryGeneratorWrapper():
233 """ wrap function which can be consumed by addFlagsCategory and provide its args """
234 def __init__(self, fun : Callable[[AthConfigFlags, str, str], AthConfigFlags],
235 flags : AthConfigFlags, signatureInstance : str, recoMode : str):
237 self.sig = signatureInstance
241 return self.fun(self.flags,self.sig,self.mode)
243 for i
in signatureSet.keys():
244 trackingflags = deepcopy(
defaults())
245 a = categoryGeneratorWrapper(signatureSet[i],trackingflags,i,mode)
246 signatureCategory =
"{}.{}".format(category,i)
247 flags.addFlagsCategory(signatureCategory,a.run,prefix=
True)
255 """ convenience decorator to automate config steps """
256 def invokeSteps(*args, **kwargs):
257 flagsSig = func(*args, **kwargs)
265 """ use previous type of the var and convert value to it
266 for the moment just makes list of a value if needed
269 typeOfValue =
type(value)
270 if type2set == typeOfValue:
273 basic = (bool, str, int, float,
type(
None))
274 if isinstance(var,basic):
283def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
285 flags.input_name = instanceName
286 flags.name =
"electron"
287 flags.suffix =
"Electron"
288 flags.roi =
"HLT_Roi_Electron"
289 flags.etaHalfWidth = 0.05
290 flags.phiHalfWidth = 0.1
291 flags.doCloneRemoval =
True
292 flags.doSeedRedundancyCheck =
True
293 if recoMode==
"InDet":
295 flags.keepTrackParameters =
True
296 flags.electronPID =
True
300def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
302 flags.input_name = instanceName
304 flags.suffix =
"Muon"
305 flags.roi =
"HLT_Roi_L2SAMuon"
306 flags.Triplet_D0Max = 10.0
307 flags.doResMon =
True
308 flags.DoPhiFiltering =
False
309 flags.doSeedRedundancyCheck =
True
310 flags.monPtMin = 12*Units.GeV
314def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
316 flags.input_name = instanceName
317 flags.name =
"muonIso"
318 flags.suffix =
"MuonIso"
319 flags.roi =
"HLT_Roi_MuonIso"
320 flags.etaHalfWidth = 0.35
321 flags.phiHalfWidth = 0.35
322 flags.zedHalfWidth = 10.0
326def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
328 flags.input_name = instanceName
329 flags.name =
"tauCore"
330 flags.suffix =
"TauCore"
331 flags.roi =
"HLT_Roi_TauCore"
332 flags.pTmin = 0.8*Units.GeV
333 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
335 flags.holeSearch_FTF =
True
339def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
341 flags.input_name = instanceName
342 flags.name =
"tauIso"
343 flags.suffix =
"TauIso"
344 flags.roi =
"HLT_Roi_TauIso"
345 flags.etaHalfWidth = 0.4
346 flags.phiHalfWidth = 0.4
347 flags.zedHalfWidth = 7.0
348 flags.adaptiveVertex =
True
349 flags.addSingleTrackVertices =
True
350 flags.vertex =
"HLT_IDVertex_Tau"
351 flags.electronPID =
False
352 flags.pTmin = 0.8*Units.GeV
353 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
357def diTau(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
359 flags.input_name = instanceName
361 flags.suffix =
"DiTau"
362 flags.roi =
"HLT_Roi_DiTau"
363 flags.etaHalfWidth = 1.0
364 flags.phiHalfWidth = 1.0
365 flags.zedHalfWidth = 7.0
366 flags.adaptiveVertex =
True
367 flags.addSingleTrackVertices =
True
368 flags.vertex =
"HLT_IDVertex_DiTau"
369 flags.electronPID =
False
370 flags.pTmin = 0.8*Units.GeV
371 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
375def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
377 flags.input_name = instanceName
379 flags.suffix =
"Bjet"
380 flags.roi =
"HLT_Roi_Bjet"
381 flags.etaHalfWidth = 0.4
382 flags.phiHalfWidth = 0.4
383 flags.zedHalfWidth = 10.0
384 flags.pTmin = 0.8*Units.GeV
385 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
386 flags.Xi2max =
tsetter(flags.Xi2max,12.)
390def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
392 flags.input_name = instanceName
393 flags.name =
"jetSuper"
394 flags.suffix =
"JetSuper"
395 flags.vertex =
"HLT_IDVertex_JetSuper"
396 flags.adaptiveVertex =
True
397 flags.addSingleTrackVertices =
True
398 flags.roi =
"HLT_Roi_JetSuper"
399 flags.etaHalfWidth = 0.3
400 flags.phiHalfWidth = 0.3
401 flags.doFullScan =
True
402 flags.pTmin = 1*Units.GeV
403 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
406 flags.DoubletDR_Max = 200
407 flags.SeedRadBinWidth = 10
408 flags.doSeedRedundancyCheck =
True
409 flags.TripletDoPPS =
False
410 flags.nClustersMin = 8
411 flags.UseTrigSeedML = 4
416def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
418 flags.input_name = instanceName
419 flags.name =
"minBias"
420 flags.suffix =
"MinBias"
421 flags.roi =
"HLT_Roi_MinBias"
422 flags.doFullScan =
True
423 flags.pTmin = 0.1*Units.GeV
424 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
427 flags.etaHalfWidth = 3
428 flags.phiHalfWidth = math.pi
429 flags.doZFinder =
True
430 flags.doZFinderOnly =
True
432 flags.nClustersMin = 5
433 flags.useSeedFilter =
True
434 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
435 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
437 flags.usePrdAssociationTool =
False
442def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
444 flags.input_name = instanceName
445 flags.name =
"minBiasPixel"
446 flags.suffix =
"MinBiasPixel"
447 flags.roi =
"HLT_Roi_MinBias"
448 flags.doFullScan =
True
449 flags.pTmin = 0.1*Units.GeV
450 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
454 flags.maxPixelHoles = 0
455 flags.maxSctHoles = 0
456 flags.maxDoubleHoles = 0
457 flags.minSiNotShared = 3
460 flags.nHolesGapMax = 0
461 if recoMode==
"InDet":
463 flags.useSCTSeeding =
False
466 flags.roadWidth = 12.0
468 flags.Xi2maxNoAdd = 35.0
469 flags.nWeightedClustersMin = 6
470 flags.doBremRecoverySi =
False
471 flags.RunPixelPID =
False
474 flags.etaHalfWidth = 3
475 flags.phiHalfWidth = math.pi
476 flags.doZFinder =
False
477 flags.doZFinderOnly =
True
479 flags.minClusters = 3
480 flags.nClustersMin = 3
481 flags.useSeedFilter =
True
482 flags.maxPrimaryImpact = 10.*Units.mm
483 flags.maxZImpact = 150.*Units.mm
485 flags.usePrdAssociationTool =
False
491def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
493 flags.input_name = instanceName
494 flags.name =
"beamSpot"
495 flags.suffix =
"BeamSpot"
496 flags.roi =
"HLT_Roi_FS"
497 flags.doFullScan =
True
498 flags.doZFinder =
True
499 flags.DoubletDR_Max = 200
500 flags.SeedRadBinWidth = 10
501 flags.etaHalfWidth = 3
502 flags.phiHalfWidth = math.pi
504 flags.doSeedRedundancyCheck =
True
505 flags.doRecord =
False
510def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
512 flags.input_name = instanceName
513 flags.name =
"fullScan"
515 flags.roi =
"HLT_Roi_FS"
516 flags.vertex =
"HLT_IDVertex_FS"
517 flags.adaptiveVertex =
True
521 flags.vertex_jet =
"HLT_IDVertex_FS"
522 flags.adaptiveVertex_jet =
True
523 flags.doFullScan =
True
524 flags.etaHalfWidth = 3.
525 flags.phiHalfWidth = math.pi
527 flags.DoubletDR_Max = 200
528 flags.SeedRadBinWidth = 10
529 flags.doSeedRedundancyCheck =
True
530 flags.TripletDoPPS =
False
531 flags.nClustersMin = 8
532 flags.UseTrigSeedML = 4
533 flags.dodEdxTrk =
True
535 flags.doDisappearingTrk =
True if recoMode==
"InDet" else False
541def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
543 flags.input_name = instanceName
544 flags.name =
"fullScan"
546 flags.roi =
"HLT_Roi_FS"
547 flags.doFullScan =
True
548 flags.etaHalfWidth = 3.
549 flags.phiHalfWidth = math.pi
551 flags.DoubletDR_Max = 200
552 flags.SeedRadBinWidth = 10
553 flags.TripletDoPPS =
False
554 flags.nClustersMin = 8
555 flags.UseTrigSeedML = 4
556 flags.doRecord =
False
561def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
563 flags.input_name = instanceName
564 flags.name =
"cosmics"
565 flags.suffix =
"Cosmic"
566 flags.roi =
"HLT_Roi_Cosmics"
567 flags.Triplet_D0Max = 1000.0
568 flags.Triplet_D0_PPS_Max = 1000.0
569 flags.TrackInitialD0Max = 1000.
570 flags.TrackZ0Max = 1000.
572 flags.doFullScan =
True
573 flags.etaHalfWidth = 3
574 flags.phiHalfWidth = math.pi
576 flags.minPT =
tsetter(flags.minPT, 0.5*Units.GeV)
578 flags.nClustersMin = 4
579 flags.minSiNotShared = 3
583 flags.maxSCTHoles = 3
584 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
585 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
587 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
588 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
589 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
591 flags.nWeightedClustersMin= 8
592 flags.useSeedFilter =
True
593 flags.usePrdAssociationTool =
False
594 flags.roadWidth = 75.
595 flags.maxZImpact=
tsetter(flags.maxZImpact, 10000.*Units.mm)
596 if recoMode==
"InDet":
597 flags.minTRTonTrk = 20
602def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
604 flags.input_name = instanceName
605 flags.name =
"bphysics"
606 flags.suffix =
"Bmumux"
607 flags.roi =
"HLT_Roi_Bmumux"
608 flags.Triplet_D0Max = 10.
609 flags.DoPhiFiltering =
False
610 flags.etaHalfWidth = 0.75
611 flags.phiHalfWidth = 0.75
612 flags.zedHalfWidth = 50.
613 flags.doSeedRedundancyCheck =
True
614 flags.SuperRoI =
True
618def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
620 flags.input_name = instanceName
621 flags.name =
"electronLRT"
622 flags.suffix =
"ElecLRT"
623 flags.roi =
"HLT_Roi_Electron"
624 flags.etaHalfWidth = 0.1
625 flags.phiHalfWidth = 0.4
626 flags.UsePixelSpacePoints =
False
627 flags.Triplet_D0Max = 300.
628 flags.TrackInitialD0Max = 300.
629 flags.TrackZ0Max = 500.
630 flags.zedHalfWidth = 225.
631 flags.keepTrackParameters =
True
632 flags.doSeedRedundancyCheck =
True
633 flags.nClustersMin = 8
636 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
637 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
639 flags.doEmCaloSeed =
False
644def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
646 flags.input_name = instanceName
647 flags.name =
"muonLRT"
648 flags.suffix =
"MuonLRT"
649 flags.roi =
"HLT_Roi_Muon"
650 flags.UsePixelSpacePoints =
False
651 flags.etaHalfWidth = 0.2
652 flags.phiHalfWidth = 0.4
653 flags.Triplet_D0Max = 300.
654 flags.TrackInitialD0Max = 300.
655 flags.TrackZ0Max = 500.
656 flags.zedHalfWidth = 225.
657 flags.doSeedRedundancyCheck =
True
658 flags.nClustersMin = 8
660 flags.doResMon =
True
661 flags.DoPhiFiltering =
False
663 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
664 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
666 flags.doEmCaloSeed =
False
673def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
675 flags.input_name = instanceName
676 flags.name =
"tauLRT"
677 flags.suffix =
"TauLRT"
678 flags.roi =
"HLT_Roi_TauLRT"
679 flags.vertex =
"HLT_IDVertex_Tau"
680 flags.pTmin = 0.8*Units.GeV
681 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
682 flags.etaHalfWidth = 0.4
683 flags.phiHalfWidth = 0.4
684 flags.zedHalfWidth = 225.
685 flags.UsePixelSpacePoints =
False
686 flags.Triplet_D0Max = 300.
687 flags.TrackInitialD0Max = 300.
688 flags.TrackZ0Max = 500.
689 flags.nClustersMin = 8
692 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
693 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
695 flags.doEmCaloSeed =
False
696 if recoMode==
"InDet":
703def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
705 flags.input_name = instanceName
706 flags.name =
"bjetLRT"
707 flags.suffix =
"BjetLRT"
708 flags.roi =
"HLT_Roi_Bjet"
709 flags.etaHalfWidth = 0.4
710 flags.phiHalfWidth = 0.4
711 flags.UsePixelSpacePoints =
False
712 flags.Triplet_D0Max = 300.
713 flags.TrackInitialD0Max = 300.
714 flags.TrackZ0Max = 500.
715 flags.nClustersMin = 8
718 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
719 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
721 flags.doEmCaloSeed =
False
727def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
729 flags.input_name = instanceName
730 flags.name =
"fullScanLRT"
731 flags.suffix =
"FSLRT"
732 flags.roi =
"HLT_Roi_FS"
733 flags.doFullScan =
True
734 flags.etaHalfWidth = 3.
735 flags.phiHalfWidth = math.pi
737 flags.doSeedRedundancyCheck =
True
738 flags.UsePixelSpacePoints =
False
739 flags.Triplet_D0Max = 300.
740 flags.TrackInitialD0Max = 300.
741 flags.TrackZ0Max = 500.
742 flags.Triplet_D0_PPS_Max = 300.
743 flags.DoubletDR_Max = 200
744 flags.nClustersMin = 8
747 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
748 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
750 flags.doEmCaloSeed =
False
756def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
758 flags.input_name = instanceName
759 flags.name =
"DJetLRT"
760 flags.suffix =
"DJLRT"
761 flags.roi =
"HLT_Roi_DJ"
762 flags.doFullScan =
False
763 flags.etaHalfWidth = 0.4
764 flags.phiHalfWidth = 0.4
765 flags.zedHalfWidth = 225.
767 flags.doSeedRedundancyCheck =
True
768 flags.UsePixelSpacePoints =
False
769 flags.Triplet_D0Max = 300.
770 flags.TrackInitialD0Max = 300.
771 flags.TrackZ0Max = 500.
772 flags.Triplet_D0_PPS_Max = 300.
773 flags.DoubletDR_Max = 200
774 flags.nClustersMin = 8
777 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
778 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
780 flags.doEmCaloSeed =
False
786def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
788 flags.input_name = instanceName
789 flags.name =
"DVtxLRT"
790 flags.suffix =
"DVLRT"
791 flags.roi =
"HLT_Roi_DV"
792 flags.doFullScan =
False
793 flags.etaHalfWidth = 0.35
794 flags.phiHalfWidth = 0.35
796 flags.doSeedRedundancyCheck =
True
797 flags.UsePixelSpacePoints =
False
798 flags.Triplet_D0Max = 300.
799 flags.TrackInitialD0Max = 300.
800 flags.TrackZ0Max = 500.
801 flags.Triplet_D0_PPS_Max = 300.
802 flags.DoubletDR_Max = 200
803 flags.nClustersMin = 8
806 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
807 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
809 flags.doEmCaloSeed =
False
816 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
817 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
818 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
821 flags.tracks_IDTrig =
collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".format(flags.suffix
if flags.input_name !=
"tauIso" else "Tau"))
823 if recoMode ==
"Acts":
824 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
825 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
828 flags.minClusters =
tsetter(flags.minClusters , 8)
829 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
830 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
831 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
832 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
833 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
834 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
835 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
838 if recoMode ==
"ITk":
839 flags.extension = flags.input_name
842 flags.UsePixelSpacePoints =
True
849 signature = flags.input_name
850 firstStage =
True if "FTF" in name
else False
853 if signature
in [
"minBias",
"minBiasPixel",
"bjetLRT",
854 "beamSpot",
"BeamSpot"]:
857 if signature
in [
"tauCore",
"tauIso",
"tauIsoBDT",
858 "jet",
"fullScan",
"FS",
"jetSuper",
859 "beamSpot",
"BeamSpot",
"beamSpotFS",
860 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
864 ret = recordable(name)
869 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
870 flags.addFlag(f
'{category}.doGPU',
False)
871 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
872 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
873 flags.addFlag(f
'{category}.UseTracklets',
False)
874 flags.addFlag(f
'{category}.trackletPoints', 1)
875 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
876 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
877 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
878 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
879 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
880 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
881 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
882 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
883 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
884 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
885 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
886 flags.addFlag(f
'{category}.TRT_DriftCircleKey',
"TRT_TrigDriftCircles")
887 flags.addFlag(f
'{category}.PixClustersAmbiMap',
"TrigPixelClusterAmbiguitiesMap")
888 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
894 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
895 flags = initConfigFlags()
896 flags.Trigger.InDetTracking.electron.pTmin=3.
897 self.
newflags = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
899 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.muonLRT',
903 self.assertEqual(self.
newflags.Tracking.ActiveConfig.pTmin, 3., msg=
"Preset value lost")
904 self.assertEqual(self.
newflags.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect config")
905 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect config")
908if __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)