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
157 flags = createActsTrackingPassFlags()
160 flags.minPT = [0.9*Units.GeV, 0.4*Units.GeV, 0.4*Units.GeV]
161 flags.minClusters = [9, 8, 7]
164 flags.maxShared = [2]
166 flags.maxPixelHoles = [2]
167 flags.maxSctHoles = [2]
168 flags.maxShared = [2]
169 flags.maxDoubleHoles = [1]
179 "electron" : electron,
184 "muonIsoMS" : muonIso,
191 "tauHitsHitZ" : tauHitsHitZ,
192 "tauCoreHitZ" : tauCoreHitZ,
193 "tauIsoHitZ" : tauIsoHitZ,
199 "fullScan" : fullScan,
201 "jetSuper" : jetSuper,
203 "beamSpot" : beamSpot,
204 "BeamSpot" : beamSpot,
205 "beamSpotFS" : beamSpotFS,
212 "minBiasPixel" : minBiasPixel,
214 "electronLRT" : electronLRT,
218 "fullScanLRT" : fullScanLRT,
223 flags = AthConfigFlags()
226 category =
'Trigger.InDetTracking'
227 defaults = defaultInDetTrigTrackingFlags
229 category =
'Trigger.ITkTracking'
230 defaults = defaultITkTrigTrackingFlags
232 category =
"Trigger.ActsTracking"
233 defaults = defaultITkActsTrigTrackingFlags
235 log.error(
"Unsupported reconstruction mode %s", mode)
238 class categoryGeneratorWrapper():
239 """ wrap function which can be consumed by addFlagsCategory and provide its args """
240 def __init__(self, fun : Callable[[AthConfigFlags, str, str], AthConfigFlags],
241 flags : AthConfigFlags, signatureInstance : str, recoMode : str):
243 self.sig = signatureInstance
247 return self.fun(self.flags,self.sig,self.mode)
249 for i
in signatureSet.keys():
250 trackingflags = deepcopy(
defaults())
251 a = categoryGeneratorWrapper(signatureSet[i],trackingflags,i,mode)
252 signatureCategory =
"{}.{}".format(category,i)
253 flags.addFlagsCategory(signatureCategory,a.run,prefix=
True)
261 """ convenience decorator to automate config steps """
262 def invokeSteps(*args, **kwargs):
263 flagsSig = func(*args, **kwargs)
271 """ use previous type of the var and convert value to it
272 for the moment just makes list of a value if needed
275 typeOfValue =
type(value)
276 if type2set == typeOfValue:
279 basic = (bool, str, int, float,
type(
None))
280 if isinstance(var,basic):
289def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
291 flags.input_name = instanceName
292 flags.name =
"electron"
293 flags.suffix =
"Electron"
294 flags.roi =
"HLT_Roi_Electron"
295 flags.etaHalfWidth = 0.05
296 flags.phiHalfWidth = 0.1
297 flags.doCloneRemoval =
True
298 flags.doSeedRedundancyCheck =
True
299 if recoMode==
"InDet":
301 flags.keepTrackParameters =
True
302 flags.electronPID =
True
306def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
308 flags.input_name = instanceName
310 flags.suffix =
"Muon"
311 flags.roi =
"HLT_Roi_L2SAMuon"
312 flags.Triplet_D0Max = 10.0
313 flags.doResMon =
True
314 flags.DoPhiFiltering =
False
315 flags.doSeedRedundancyCheck =
True
316 flags.monPtMin = 12*Units.GeV
320def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
322 flags.input_name = instanceName
323 flags.name =
"muonIso"
324 flags.suffix =
"MuonIso"
325 flags.roi =
"HLT_Roi_MuonIso"
326 flags.etaHalfWidth = 0.35
327 flags.phiHalfWidth = 0.35
328 flags.zedHalfWidth = 10.0
332def tauHitsHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
335 flags.input_name = instanceName
336 flags.name =
"tauHitsHitZ"
337 flags.suffix =
"TauHits"
338 flags.roi =
"HLT_Roi_TauHitsHitZ"
342def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
344 flags.input_name = instanceName
345 flags.name =
"tauCore"
346 flags.suffix =
"TauCore"
347 flags.roi =
"HLT_Roi_TauCore"
348 flags.pTmin = 0.8*Units.GeV
349 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
351 flags.holeSearch_FTF =
True
355def tauCoreHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
356 flags =
tauCore(flags, instanceName, recoMode)
357 flags.name =
"tauCoreHitZ"
358 flags.roi =
"HLT_Roi_TauCoreHitZ"
359 flags.zedHalfWidth = 30.0
363def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
365 flags.input_name = instanceName
366 flags.name =
"tauIso"
367 flags.suffix =
"TauIso"
368 flags.roi =
"HLT_Roi_TauIso"
369 flags.etaHalfWidth = 0.4
370 flags.phiHalfWidth = 0.4
371 flags.zedHalfWidth = 7.0
372 flags.adaptiveVertex =
True
373 flags.addSingleTrackVertices =
True
374 flags.vertex =
"HLT_IDVertex_Tau"
375 flags.electronPID =
False
376 flags.pTmin = 0.8*Units.GeV
377 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
381def tauIsoHitZ(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
382 flags =
tauIso(flags, instanceName, recoMode)
383 flags.name =
"tauIsoHitZ"
384 flags.roi =
"HLT_Roi_TauIsoHitZ"
388def diTau(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
390 flags.input_name = instanceName
392 flags.suffix =
"DiTau"
393 flags.roi =
"HLT_Roi_DiTau"
394 flags.etaHalfWidth = 1.0
395 flags.phiHalfWidth = 1.0
396 flags.zedHalfWidth = 7.0
397 flags.adaptiveVertex =
True
398 flags.addSingleTrackVertices =
True
399 flags.vertex =
"HLT_IDVertex_DiTau"
400 flags.electronPID =
False
401 flags.pTmin = 0.8*Units.GeV
402 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
406def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
408 flags.input_name = instanceName
410 flags.suffix =
"Bjet"
411 flags.roi =
"HLT_Roi_Bjet"
412 flags.etaHalfWidth = 0.4
413 flags.phiHalfWidth = 0.4
414 flags.zedHalfWidth = 10.0
415 flags.pTmin = 0.8*Units.GeV
416 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
417 flags.Xi2max =
tsetter(flags.Xi2max,12.)
421def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
423 flags.input_name = instanceName
424 flags.name =
"jetSuper"
425 flags.suffix =
"JetSuper"
426 flags.vertex =
"HLT_IDVertex_JetSuper"
427 flags.adaptiveVertex =
True
428 flags.addSingleTrackVertices =
True
429 flags.roi =
"HLT_Roi_JetSuper"
430 flags.etaHalfWidth = 0.3
431 flags.phiHalfWidth = 0.3
432 flags.doFullScan =
True
433 flags.pTmin = 1*Units.GeV
434 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
437 flags.DoubletDR_Max = 200
438 flags.SeedRadBinWidth = 10
439 flags.doSeedRedundancyCheck =
True
440 flags.TripletDoPPS =
False
441 flags.nClustersMin = 8
442 flags.UseTrigSeedML = 4
447def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
449 flags.input_name = instanceName
450 flags.name =
"minBias"
451 flags.suffix =
"MinBias"
452 flags.roi =
"HLT_Roi_MinBias"
453 flags.doFullScan =
True
454 flags.pTmin = 0.1*Units.GeV
455 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
458 flags.etaHalfWidth = 3
459 flags.phiHalfWidth = math.pi
460 flags.doZFinder =
True
461 flags.doZFinderOnly =
True
463 flags.nClustersMin = 5
464 flags.useSeedFilter =
True
465 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
466 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
468 flags.usePrdAssociationTool =
False
473def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
475 flags.input_name = instanceName
476 flags.name =
"minBiasPixel"
477 flags.suffix =
"MinBiasPixel"
478 flags.roi =
"HLT_Roi_MinBias"
479 flags.doFullScan =
True
480 flags.pTmin = 0.1*Units.GeV
481 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
485 flags.maxPixelHoles = 0
486 flags.maxSctHoles = 0
487 flags.maxDoubleHoles = 0
488 flags.minSiNotShared = 3
491 flags.nHolesGapMax = 0
492 if recoMode==
"InDet":
494 flags.useSCTSeeding =
False
497 flags.roadWidth = 12.0
499 flags.Xi2maxNoAdd = 35.0
500 flags.nWeightedClustersMin = 6
501 flags.doBremRecoverySi =
False
502 flags.RunPixelPID =
False
505 flags.etaHalfWidth = 3
506 flags.phiHalfWidth = math.pi
507 flags.doZFinder =
False
508 flags.doZFinderOnly =
True
510 flags.minClusters = 3
511 flags.nClustersMin = 3
512 flags.useSeedFilter =
True
513 flags.maxPrimaryImpact = 10.*Units.mm
514 flags.maxZImpact = 150.*Units.mm
516 flags.usePrdAssociationTool =
False
522def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
524 flags.input_name = instanceName
525 flags.name =
"beamSpot"
526 flags.suffix =
"BeamSpot"
527 flags.roi =
"HLT_Roi_FS"
528 flags.doFullScan =
True
529 flags.doZFinder =
True
530 flags.DoubletDR_Max = 200
531 flags.SeedRadBinWidth = 10
532 flags.etaHalfWidth = 3
533 flags.phiHalfWidth = math.pi
535 flags.doSeedRedundancyCheck =
True
536 flags.doRecord =
False
541def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
543 flags.input_name = instanceName
544 flags.name =
"fullScan"
546 flags.roi =
"HLT_Roi_FS"
547 flags.vertex =
"HLT_IDVertex_FS"
548 flags.adaptiveVertex =
True
552 flags.vertex_jet =
"HLT_IDVertex_FS"
553 flags.adaptiveVertex_jet =
True
554 flags.doFullScan =
True
555 flags.etaHalfWidth = 3.
556 flags.phiHalfWidth = math.pi
558 flags.DoubletDR_Max = 200
559 flags.SeedRadBinWidth = 10
560 flags.doSeedRedundancyCheck =
True
561 flags.TripletDoPPS =
False
562 flags.nClustersMin = 8
563 flags.UseTrigSeedML = 4
564 flags.dodEdxTrk =
True
566 flags.doDisappearingTrk =
True if recoMode==
"InDet" else False
572def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
574 flags.input_name = instanceName
575 flags.name =
"fullScan"
577 flags.roi =
"HLT_Roi_FS"
578 flags.doFullScan =
True
579 flags.etaHalfWidth = 3.
580 flags.phiHalfWidth = math.pi
582 flags.DoubletDR_Max = 200
583 flags.SeedRadBinWidth = 10
584 flags.TripletDoPPS =
False
585 flags.nClustersMin = 8
586 flags.UseTrigSeedML = 4
587 flags.doRecord =
False
592def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
594 flags.input_name = instanceName
595 flags.name =
"cosmics"
596 flags.suffix =
"Cosmic"
597 flags.roi =
"HLT_Roi_Cosmics"
598 flags.Triplet_D0Max = 1000.0
599 flags.Triplet_D0_PPS_Max = 1000.0
600 flags.TrackInitialD0Max = 1000.
601 flags.TrackZ0Max = 1000.
603 flags.doFullScan =
True
604 flags.etaHalfWidth = 3
605 flags.phiHalfWidth = math.pi
607 flags.minPT =
tsetter(flags.minPT, 0.5*Units.GeV)
609 flags.nClustersMin = 4
610 flags.minSiNotShared = 3
614 flags.maxSCTHoles = 3
615 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
616 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
618 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
619 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
620 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
622 flags.nWeightedClustersMin= 8
623 flags.useSeedFilter =
True
624 flags.usePrdAssociationTool =
False
625 flags.roadWidth = 75.
626 flags.maxZImpact=
tsetter(flags.maxZImpact, 10000.*Units.mm)
627 if recoMode==
"InDet":
628 flags.minTRTonTrk = 20
633def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
635 flags.input_name = instanceName
636 flags.name =
"bphysics"
637 flags.suffix =
"Bmumux"
638 flags.roi =
"HLT_Roi_Bmumux"
639 flags.Triplet_D0Max = 10.
640 flags.DoPhiFiltering =
False
641 flags.etaHalfWidth = 0.75
642 flags.phiHalfWidth = 0.75
643 flags.zedHalfWidth = 50.
644 flags.doSeedRedundancyCheck =
True
645 flags.SuperRoI =
True
649def bhh(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
651 flags.input_name = instanceName
654 flags.roi =
"HLT_Roi_Bhh"
655 flags.Triplet_D0Max = 10.
656 flags.DoPhiFiltering =
False
657 flags.etaHalfWidth = 2.5
658 flags.phiHalfWidth = math.pi-1.e-5
659 flags.zedHalfWidth = 30.
660 flags.pTmin = 2*Units.GeV
661 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
662 flags.doSeedRedundancyCheck =
True
663 flags.SuperRoI =
True
667def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
669 flags.input_name = instanceName
670 flags.name =
"electronLRT"
671 flags.suffix =
"ElecLRT"
672 flags.roi =
"HLT_Roi_Electron"
673 flags.etaHalfWidth = 0.1
674 flags.phiHalfWidth = 0.4
675 flags.UsePixelSpacePoints =
False
676 flags.Triplet_D0Max = 300.
677 flags.TrackInitialD0Max = 300.
678 flags.TrackZ0Max = 500.
679 flags.zedHalfWidth = 225.
680 flags.keepTrackParameters =
True
681 flags.doSeedRedundancyCheck =
True
682 flags.nClustersMin = 8
685 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
686 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
688 flags.doEmCaloSeed =
False
693def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
695 flags.input_name = instanceName
696 flags.name =
"muonLRT"
697 flags.suffix =
"MuonLRT"
698 flags.roi =
"HLT_Roi_Muon"
699 flags.UsePixelSpacePoints =
False
700 flags.etaHalfWidth = 0.2
701 flags.phiHalfWidth = 0.4
702 flags.Triplet_D0Max = 300.
703 flags.TrackInitialD0Max = 300.
704 flags.TrackZ0Max = 500.
705 flags.zedHalfWidth = 225.
706 flags.doSeedRedundancyCheck =
True
707 flags.nClustersMin = 8
709 flags.doResMon =
True
710 flags.DoPhiFiltering =
False
712 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
713 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
715 flags.doEmCaloSeed =
False
722def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
724 flags.input_name = instanceName
725 flags.name =
"tauLRT"
726 flags.suffix =
"TauLRT"
727 flags.roi =
"HLT_Roi_TauLRT"
728 flags.vertex =
"HLT_IDVertex_Tau"
729 flags.pTmin = 0.8*Units.GeV
730 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
731 flags.etaHalfWidth = 0.4
732 flags.phiHalfWidth = 0.4
733 flags.zedHalfWidth = 225.
734 flags.UsePixelSpacePoints =
False
735 flags.Triplet_D0Max = 300.
736 flags.TrackInitialD0Max = 300.
737 flags.TrackZ0Max = 500.
738 flags.nClustersMin = 8
741 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
742 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
744 flags.doEmCaloSeed =
False
745 if recoMode==
"InDet":
752def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
754 flags.input_name = instanceName
755 flags.name =
"bjetLRT"
756 flags.suffix =
"BjetLRT"
757 flags.roi =
"HLT_Roi_Bjet"
758 flags.etaHalfWidth = 0.4
759 flags.phiHalfWidth = 0.4
760 flags.UsePixelSpacePoints =
False
761 flags.Triplet_D0Max = 300.
762 flags.TrackInitialD0Max = 300.
763 flags.TrackZ0Max = 500.
764 flags.nClustersMin = 8
767 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
768 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
770 flags.doEmCaloSeed =
False
776def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
778 flags.input_name = instanceName
779 flags.name =
"fullScanLRT"
780 flags.suffix =
"FSLRT"
781 flags.roi =
"HLT_Roi_FS"
782 flags.doFullScan =
True
783 flags.etaHalfWidth = 3.
784 flags.phiHalfWidth = math.pi
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 DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
807 flags.input_name = instanceName
808 flags.name =
"DJetLRT"
809 flags.suffix =
"DJLRT"
810 flags.roi =
"HLT_Roi_DJ"
811 flags.doFullScan =
False
812 flags.etaHalfWidth = 0.4
813 flags.phiHalfWidth = 0.4
814 flags.zedHalfWidth = 225.
816 flags.doSeedRedundancyCheck =
True
817 flags.UsePixelSpacePoints =
False
818 flags.Triplet_D0Max = 300.
819 flags.TrackInitialD0Max = 300.
820 flags.TrackZ0Max = 500.
821 flags.Triplet_D0_PPS_Max = 300.
822 flags.DoubletDR_Max = 200
823 flags.nClustersMin = 8
826 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
827 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
829 flags.doEmCaloSeed =
False
835def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
837 flags.input_name = instanceName
838 flags.name =
"DVtxLRT"
839 flags.suffix =
"DVLRT"
840 flags.roi =
"HLT_Roi_DV"
841 flags.doFullScan =
False
842 flags.etaHalfWidth = 0.35
843 flags.phiHalfWidth = 0.35
845 flags.doSeedRedundancyCheck =
True
846 flags.UsePixelSpacePoints =
False
847 flags.Triplet_D0Max = 300.
848 flags.TrackInitialD0Max = 300.
849 flags.TrackZ0Max = 500.
850 flags.Triplet_D0_PPS_Max = 300.
851 flags.DoubletDR_Max = 200
852 flags.nClustersMin = 8
855 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
856 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
858 flags.doEmCaloSeed =
False
865 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
866 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
867 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
870 flags.tracks_IDTrig = \
871 collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".format(flags.suffix
if flags.input_name
not in [
'tauIso',
'tauIsoHitZ']
else "Tau"))
873 if recoMode ==
"Acts":
874 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
875 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
878 flags.minClusters =
tsetter(flags.minClusters , 8)
879 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
880 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
881 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
882 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
883 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
884 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
885 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
888 if recoMode ==
"ITk":
889 flags.extension = flags.input_name
892 flags.UsePixelSpacePoints =
True
899 signature = flags.input_name
900 firstStage =
True if "FTF" in name
else False
903 if signature
in [
"tauHitsHitZ",
"minBias",
"minBiasPixel",
"bjetLRT",
904 "beamSpot",
"BeamSpot"]:
907 if signature
in [
"tauHitsHitZ",
"tauCore",
"tauCoreHitZ",
"tauIso",
"tauIsoHitZ",
"tauIsoBDT",
908 "jet",
"fullScan",
"FS",
"jetSuper",
"bhh",
909 "beamSpot",
"BeamSpot",
"beamSpotFS",
910 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
914 ret = recordable(name)
919 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
920 flags.addFlag(f
'{category}.doGPU',
False)
921 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
922 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
923 flags.addFlag(f
'{category}.UseTracklets',
False)
924 flags.addFlag(f
'{category}.trackletPoints', 1)
925 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
926 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
927 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
928 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
929 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
930 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
931 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
932 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
933 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
934 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
935 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
936 flags.addFlag(f
'{category}.TRT_DriftCircleKey',
"TRT_TrigDriftCircles")
937 flags.addFlag(f
'{category}.PixClustersAmbiMap',
"TrigPixelClusterAmbiguitiesMap")
938 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
944 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
945 flags = initConfigFlags()
946 flags.Trigger.InDetTracking.electron.pTmin=3.
947 flags.Trigger.ITkTracking.muonLRT.maxEta=5.
948 flags.Trigger.ITkTracking.jetSuper.minPT=[3.,2.,1.]
949 self.
newflags1 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
951 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.muonLRT',
953 self.
newflags3 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.ITkTracking.jetSuper',
957 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.pTmin, 3., msg=
"Preset value lost")
958 self.assertEqual(self.
newflags1.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect version of flags")
959 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect version of flags")
960 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.maxEta, 5., msg=
"Preset value lost")
961 self.assertEqual(self.
newflags3.Tracking.ActiveConfig.minPT, [3.,2.,1.], msg=
"Preset value lost")
964if __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[])