3 from AthenaConfiguration.AthConfigFlags
import AthConfigFlags
4 from TrkConfig.TrackingPassFlags
import createTrackingPassFlags,createITkTrackingPassFlags
5 from TrigEDMConfig.TriggerEDM
import recordable
7 from AthenaCommon.Logging
import logging
10 from copy
import deepcopy
11 from collections.abc
import Callable
13 log = logging.getLogger(
"__name__")
17 flags.addFlag(
"input_name",
"")
18 flags.addFlag(
"name",
"")
19 flags.addFlag(
"suffix",
"")
21 flags.addFlag(
"pTmin", 1.*Units.GeV)
22 flags.addFlag(
"TripletDoPPS",
True)
23 flags.addFlag(
"Triplet_D0Max", 4.0)
24 flags.addFlag(
"Triplet_D0_PPS_Max", 1.7)
25 flags.addFlag(
"DoPhiFiltering",
True)
26 flags.addFlag(
"doZFinder",
False)
27 flags.addFlag(
"doZFinderOnly",
False)
28 flags.addFlag(
"doResMon",
False)
29 flags.addFlag(
"doCloneRemoval",
True)
30 flags.addFlag(
"doSeedRedundancyCheck",
False)
31 flags.addFlag(
"DoubletDR_Max", 270)
32 flags.addFlag(
"SeedRadBinWidth", 2)
33 flags.addFlag(
"holeSearch_FTF",
False)
34 flags.addFlag(
"electronPID",
False)
35 flags.addFlag(
"etaHalfWidth", 0.1)
36 flags.addFlag(
"phiHalfWidth", 0.1)
37 flags.addFlag(
"zedHalfWidth", -999)
38 flags.addFlag(
"doFullScan",
False)
39 flags.addFlag(
"monPS", 1)
40 flags.addFlag(
"monPtMin", 1*Units.GeV)
41 flags.addFlag(
"doTRT",
True)
42 flags.addFlag(
"keepTrackParameters",
False)
43 flags.addFlag(
"UsePixelSpacePoints",
True)
44 flags.addFlag(
"TrackInitialD0Max", 20.0)
45 flags.addFlag(
"TrackZ0Max", 300.0)
46 flags.addFlag(
"isLRT",
False)
47 flags.addFlag(
"UseTrigSeedML", 0)
48 flags.addFlag(
"nClustersMin", 7)
49 flags.addFlag(
"roi",
"")
50 flags.addFlag(
"LRT_D0Min", 2.0)
51 flags.addFlag(
"LRT_HardPtMin", 1.0*Units.GeV)
52 flags.addFlag(
"doRecord",
True)
53 flags.addFlag(
"vertex",
"")
54 flags.addFlag(
"adaptiveVertex",
False)
55 flags.addFlag(
"addSingleTrackVertices",
False)
56 flags.addFlag(
"TracksMaxZinterval", 1)
57 flags.addFlag(
"minNSiHits_vtx", 10)
58 flags.addFlag(
"vertex_jet",
"")
59 flags.addFlag(
"adaptiveVertex_jet",
False)
60 flags.addFlag(
"dodEdxTrk",
False)
61 flags.addFlag(
"doHitDV",
False)
62 flags.addFlag(
"doDisappearingTrk",
False)
63 flags.addFlag(
"useDynamicRoiZWidth",
False)
72 flags.addFlag(
"minSiClusters", 7)
73 flags.addFlag(
"maxSiHoles", 5)
74 flags.maxPixelHoles = 5
75 flags.addFlag(
"maxSCTHoles", 5)
76 flags.maxDoubleHoles = 2
77 flags.addFlag(
"doEmCaloSeed",
False)
79 flags.useSeedFilter =
False
80 flags.doBremRecoverySi =
False
82 flags.addFlag(
"refitROT",
True)
83 flags.addFlag(
"trtExtensionType",
"xf")
84 flags.addFlag(
"doTruth",
False)
85 flags.addFlag(
"perigeeExpression",
"BeamLine")
86 flags.addFlag(
"SuperRoI",
False)
88 flags.addFlag(
"trkTracks_FTF",
"")
89 flags.addFlag(
"trkTracks_IDTrig",
"")
90 flags.addFlag(
"tracks_FTF",
"")
91 flags.addFlag(
"tracks_IDTrig",
"")
99 flags.minPT = flags.pTmin
101 flags.minClusters = 7
102 flags.minSiNotShared = 5
105 flags.Xi2maxNoAdd = 25.
107 flags.nHolesGapMax = 2
108 flags.nWeightedClustersMin= 6
112 flags.maxPrimaryImpact = 10.
113 flags.maxEMImpact = 50.
114 flags.maxZImpact = 250.
119 flags.useTIDE_Ambi =
False
123 flags.maxSCTHoles = 5
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
160 "electron" : electron,
165 "muonIsoMS" : muonIso,
175 "fullScan" : fullScan,
177 "jetSuper" : jetSuper,
179 "beamSpot" : beamSpot,
180 "BeamSpot" : beamSpot,
181 "beamSpotFS" : beamSpotFS,
187 "minBiasPixel" : minBiasPixel,
189 "electronLRT" : electronLRT,
193 "fullScanLRT" : fullScanLRT,
198 flags = AthConfigFlags()
201 category =
'Trigger.InDetTracking'
202 defaults = defaultInDetTrigTrackingFlags
204 category =
'Trigger.ITkTracking'
205 defaults = defaultITkTrigTrackingFlags
207 category =
"Trigger.ActsTracking"
208 defaults = defaultITkTrigTrackingFlags
210 log.error(
"Acts not supported yet")
213 class categoryGeneratorWrapper():
214 """ wrap function which can be consumed by addFlagsCategory and provide its args """
215 def __init__(self, fun : Callable[[AthConfigFlags, str, str], AthConfigFlags],
216 flags : AthConfigFlags, signatureInstance : str, recoMode : str):
218 self.sig = signatureInstance
222 return self.fun(self.flags,self.sig,self.mode)
224 for i
in signatureSet.keys():
225 trackingflags = deepcopy(
defaults())
226 a = categoryGeneratorWrapper(signatureSet[i],trackingflags,i,mode)
227 signatureCategory =
"{}.{}".
format(category,i)
228 flags.addFlagsCategory(signatureCategory,a.run,prefix=
True)
236 """ convenience decorator to automate config steps """
237 def invokeSteps(*args, **kwargs):
238 flagsSig = func(*args, **kwargs)
246 """ use previous type of the var and convert value to it
247 for the moment just makes list of a value if needed
250 typeOfValue =
type(value)
251 if type2set == typeOfValue:
254 basic = (bool, str, int, float,
type(
None))
255 if isinstance(var,basic):
264 def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
266 flags.input_name = instanceName
267 flags.name =
"electron"
268 flags.suffix =
"Electron"
269 flags.roi =
"HLT_Roi_Electron"
270 flags.etaHalfWidth = 0.05
271 flags.phiHalfWidth = 0.1
272 flags.doCloneRemoval =
True
273 flags.doSeedRedundancyCheck =
True
274 if recoMode==
"InDet":
276 flags.keepTrackParameters =
True
277 flags.electronPID =
True
281 def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
283 flags.input_name = instanceName
285 flags.suffix =
"Muon"
286 flags.roi =
"HLT_Roi_L2SAMuon"
287 flags.Triplet_D0Max = 10.0
288 flags.doResMon =
True
289 flags.DoPhiFiltering =
False
290 flags.doSeedRedundancyCheck =
True
291 flags.monPtMin = 12*Units.GeV
295 def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
297 flags.input_name = instanceName
298 flags.name =
"muonIso"
299 flags.suffix =
"MuonIso"
300 flags.roi =
"HLT_Roi_MuonIso"
301 flags.etaHalfWidth = 0.35
302 flags.phiHalfWidth = 0.35
303 flags.zedHalfWidth = 10.0
307 def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
309 flags.input_name = instanceName
310 flags.name =
"tauCore"
311 flags.suffix =
"TauCore"
312 flags.roi =
"HLT_Roi_TauCore"
313 flags.pTmin = 0.8*Units.GeV
314 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
316 flags.holeSearch_FTF =
True
320 def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
322 flags.input_name = instanceName
323 flags.name =
"tauIso"
324 flags.suffix =
"TauIso"
325 flags.roi =
"HLT_Roi_TauIso"
326 flags.etaHalfWidth = 0.4
327 flags.phiHalfWidth = 0.4
328 flags.zedHalfWidth = 7.0
329 flags.adaptiveVertex =
True
330 flags.addSingleTrackVertices =
True
331 flags.vertex =
"HLT_IDVertex_Tau"
332 flags.electronPID =
False
333 flags.pTmin = 0.8*Units.GeV
334 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
338 def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
340 flags.input_name = instanceName
342 flags.suffix =
"Bjet"
343 flags.roi =
"HLT_Roi_Bjet"
344 flags.etaHalfWidth = 0.4
345 flags.phiHalfWidth = 0.4
346 flags.zedHalfWidth = 10.0
347 flags.pTmin = 0.8*Units.GeV
348 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
349 flags.Xi2max =
tsetter(flags.Xi2max,12.)
353 def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
355 flags.input_name = instanceName
356 flags.name =
"jetSuper"
357 flags.suffix =
"JetSuper"
358 flags.vertex =
"HLT_IDVertex_JetSuper"
359 flags.adaptiveVertex =
True
360 flags.addSingleTrackVertices =
True
361 flags.roi =
"HLT_Roi_JetSuper"
362 flags.etaHalfWidth = 0.3
363 flags.phiHalfWidth = 0.3
364 flags.doFullScan =
True
365 flags.pTmin = 1*Units.GeV
366 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
369 flags.DoubletDR_Max = 200
370 flags.SeedRadBinWidth = 10
371 flags.doSeedRedundancyCheck =
True
372 flags.TripletDoPPS =
False
373 flags.nClustersMin = 8
374 flags.UseTrigSeedML = 4
379 def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
381 flags.input_name = instanceName
382 flags.name =
"minBias"
383 flags.suffix =
"MinBias"
384 flags.roi =
"HLT_Roi_MinBias"
385 flags.doFullScan =
True
386 flags.pTmin = 0.1*Units.GeV
387 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
390 flags.etaHalfWidth = 3
391 flags.phiHalfWidth = math.pi
392 flags.doZFinder =
True
393 flags.doZFinderOnly =
True
395 flags.nClustersMin = 5
396 flags.useSeedFilter =
True
397 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
398 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
400 flags.usePrdAssociationTool =
False
405 def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
407 flags.input_name = instanceName
408 flags.name =
"minBiasPixel"
409 flags.suffix =
"MinBiasPixel"
410 flags.roi =
"HLT_Roi_MinBias"
411 flags.doFullScan =
True
412 flags.pTmin = 0.1*Units.GeV
413 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
417 flags.maxPixelHoles = 0
418 flags.maxSctHoles = 0
419 flags.maxDoubleHoles = 0
420 flags.minSiNotShared = 3
423 flags.nHolesGapMax = 0
424 if recoMode==
"InDet":
426 flags.useSCTSeeding =
False
429 flags.roadWidth = 12.0
431 flags.Xi2maxNoAdd = 35.0
432 flags.nWeightedClustersMin = 6
433 flags.doBremRecoverySi =
False
434 flags.RunPixelPID =
False
437 flags.etaHalfWidth = 3
438 flags.phiHalfWidth = math.pi
439 flags.doZFinder =
False
440 flags.doZFinderOnly =
True
442 flags.minClusters = 3
443 flags.nClustersMin = 3
444 flags.useSeedFilter =
True
445 flags.maxPrimaryImpact = 10.*Units.mm
446 flags.maxZImpact = 150.*Units.mm
448 flags.usePrdAssociationTool =
False
454 def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
456 flags.input_name = instanceName
457 flags.name =
"beamSpot"
458 flags.suffix =
"BeamSpot"
459 flags.roi =
"HLT_Roi_FS"
460 flags.doFullScan =
True
461 flags.doZFinder =
True
462 flags.DoubletDR_Max = 200
463 flags.SeedRadBinWidth = 10
464 flags.etaHalfWidth = 3
465 flags.phiHalfWidth = math.pi
467 flags.doSeedRedundancyCheck =
True
468 flags.doRecord =
False
473 def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
475 flags.input_name = instanceName
476 flags.name =
"fullScan"
478 flags.roi =
"HLT_Roi_FS"
479 flags.vertex =
"HLT_IDVertex_FS"
480 flags.adaptiveVertex =
True
484 flags.vertex_jet =
"HLT_IDVertex_FS"
485 flags.adaptiveVertex_jet =
True
486 flags.doFullScan =
True
487 flags.etaHalfWidth = 3.
488 flags.phiHalfWidth = math.pi
490 flags.DoubletDR_Max = 200
491 flags.SeedRadBinWidth = 10
492 flags.doSeedRedundancyCheck =
True
493 flags.TripletDoPPS =
False
494 flags.nClustersMin = 8
495 flags.UseTrigSeedML = 4
496 flags.dodEdxTrk =
True
498 flags.doDisappearingTrk =
True if recoMode==
"InDet" else False
504 def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
506 flags.input_name = instanceName
507 flags.name =
"fullScan"
509 flags.roi =
"HLT_Roi_FS"
510 flags.doFullScan =
True
511 flags.etaHalfWidth = 3.
512 flags.phiHalfWidth = math.pi
514 flags.DoubletDR_Max = 200
515 flags.SeedRadBinWidth = 10
516 flags.TripletDoPPS =
False
517 flags.nClustersMin = 8
518 flags.UseTrigSeedML = 4
519 flags.doRecord =
False
524 def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
526 flags.input_name = instanceName
527 flags.name =
"cosmics"
528 flags.suffix =
"Cosmic"
529 flags.roi =
"HLT_Roi_Cosmics"
530 flags.Triplet_D0Max = 1000.0
531 flags.Triplet_D0_PPS_Max = 1000.0
532 flags.TrackInitialD0Max = 1000.
533 flags.TrackZ0Max = 1000.
535 flags.doFullScan =
True
536 flags.etaHalfWidth = 3
537 flags.phiHalfWidth = math.pi
539 flags.minPT =
tsetter(flags.minPT, 0.5*Units.GeV)
541 flags.nClustersMin = 4
542 flags.minSiNotShared = 3
546 flags.maxSCTHoles = 3
547 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
548 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
550 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
551 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
552 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
554 flags.nWeightedClustersMin= 8
555 flags.useSeedFilter =
True
556 flags.usePrdAssociationTool =
False
557 flags.roadWidth = 75.
558 flags.maxZImpact=
tsetter(flags.maxZImpact, 10000.*Units.mm)
559 if recoMode==
"InDet":
560 flags.minTRTonTrk = 20
565 def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
567 flags.input_name = instanceName
568 flags.name =
"bphysics"
569 flags.suffix =
"Bmumux"
570 flags.roi =
"HLT_Roi_Bmumux"
571 flags.Triplet_D0Max = 10.
572 flags.DoPhiFiltering =
False
573 flags.etaHalfWidth = 0.75
574 flags.phiHalfWidth = 0.75
575 flags.zedHalfWidth = 50.
576 flags.doSeedRedundancyCheck =
True
577 flags.SuperRoI =
True
581 def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
583 flags.input_name = instanceName
584 flags.name =
"electronLRT"
585 flags.suffix =
"ElecLRT"
586 flags.roi =
"HLT_Roi_Electron"
587 flags.etaHalfWidth = 0.1
588 flags.phiHalfWidth = 0.4
589 flags.UsePixelSpacePoints =
False
590 flags.Triplet_D0Max = 300.
591 flags.TrackInitialD0Max = 300.
592 flags.TrackZ0Max = 500.
593 flags.zedHalfWidth = 225.
594 flags.keepTrackParameters =
True
595 flags.doSeedRedundancyCheck =
True
596 flags.nClustersMin = 8
599 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
600 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
602 flags.doEmCaloSeed =
False
607 def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
609 flags.input_name = instanceName
610 flags.name =
"muonLRT"
611 flags.suffix =
"MuonLRT"
612 flags.roi =
"HLT_Roi_Muon"
613 flags.UsePixelSpacePoints =
False
614 flags.etaHalfWidth = 0.2
615 flags.phiHalfWidth = 0.4
616 flags.Triplet_D0Max = 300.
617 flags.TrackInitialD0Max = 300.
618 flags.TrackZ0Max = 500.
619 flags.zedHalfWidth = 225.
620 flags.doSeedRedundancyCheck =
True
621 flags.nClustersMin = 8
623 flags.doResMon =
True
624 flags.DoPhiFiltering =
False
626 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
627 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
629 flags.doEmCaloSeed =
False
636 def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
638 flags.input_name = instanceName
639 flags.name =
"tauLRT"
640 flags.suffix =
"TauLRT"
641 flags.roi =
"HLT_Roi_TauLRT"
642 flags.vertex =
"HLT_IDVertex_Tau"
643 flags.pTmin = 0.8*Units.GeV
644 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
645 flags.etaHalfWidth = 0.4
646 flags.phiHalfWidth = 0.4
647 flags.zedHalfWidth = 225.
648 flags.UsePixelSpacePoints =
False
649 flags.Triplet_D0Max = 300.
650 flags.TrackInitialD0Max = 300.
651 flags.TrackZ0Max = 500.
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
659 if recoMode==
"InDet":
666 def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
668 flags.input_name = instanceName
669 flags.name =
"bjetLRT"
670 flags.suffix =
"BjetLRT"
671 flags.roi =
"HLT_Roi_Bjet"
672 flags.etaHalfWidth = 0.4
673 flags.phiHalfWidth = 0.4
674 flags.UsePixelSpacePoints =
False
675 flags.Triplet_D0Max = 300.
676 flags.TrackInitialD0Max = 300.
677 flags.TrackZ0Max = 500.
678 flags.nClustersMin = 8
681 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
682 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
684 flags.doEmCaloSeed =
False
690 def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
692 flags.input_name = instanceName
693 flags.name =
"fullScanLRT"
694 flags.suffix =
"FSLRT"
695 flags.roi =
"HLT_Roi_FS"
696 flags.doFullScan =
True
697 flags.etaHalfWidth = 3.
698 flags.phiHalfWidth = math.pi
700 flags.doSeedRedundancyCheck =
True
701 flags.UsePixelSpacePoints =
False
702 flags.Triplet_D0Max = 300.
703 flags.TrackInitialD0Max = 300.
704 flags.TrackZ0Max = 500.
705 flags.Triplet_D0_PPS_Max = 300.
706 flags.DoubletDR_Max = 200
707 flags.nClustersMin = 8
710 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
711 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
713 flags.doEmCaloSeed =
False
719 def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
721 flags.input_name = instanceName
722 flags.name =
"DJetLRT"
723 flags.suffix =
"DJLRT"
724 flags.roi =
"HLT_Roi_DJ"
725 flags.doFullScan =
False
726 flags.etaHalfWidth = 0.4
727 flags.phiHalfWidth = 0.4
728 flags.zedHalfWidth = 225.
730 flags.doSeedRedundancyCheck =
True
731 flags.UsePixelSpacePoints =
False
732 flags.Triplet_D0Max = 300.
733 flags.TrackInitialD0Max = 300.
734 flags.TrackZ0Max = 500.
735 flags.Triplet_D0_PPS_Max = 300.
736 flags.DoubletDR_Max = 200
737 flags.nClustersMin = 8
740 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
741 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
743 flags.doEmCaloSeed =
False
749 def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
751 flags.input_name = instanceName
752 flags.name =
"DVtxLRT"
753 flags.suffix =
"DVLRT"
754 flags.roi =
"HLT_Roi_DV"
755 flags.doFullScan =
False
756 flags.etaHalfWidth = 0.35
757 flags.phiHalfWidth = 0.35
759 flags.doSeedRedundancyCheck =
True
760 flags.UsePixelSpacePoints =
False
761 flags.Triplet_D0Max = 300.
762 flags.TrackInitialD0Max = 300.
763 flags.TrackZ0Max = 500.
764 flags.Triplet_D0_PPS_Max = 300.
765 flags.DoubletDR_Max = 200
766 flags.nClustersMin = 8
769 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
770 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
772 flags.doEmCaloSeed =
False
779 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
780 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
781 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
784 flags.tracks_IDTrig =
collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".
format(flags.suffix
if flags.input_name !=
"tauIso" else "Tau"))
786 if recoMode ==
"Acts":
787 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
788 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
791 flags.minClusters =
tsetter(flags.minClusters , 8)
792 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
793 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
794 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
795 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
796 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
797 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
798 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
801 if recoMode ==
"ITk":
802 flags.extension = flags.input_name
805 flags.UsePixelSpacePoints =
True
812 signature = flags.input_name
813 firstStage =
True if "FTF" in name
else False
816 if signature
in [
"minBias",
"minBiasPixel",
"bjetLRT",
817 "beamSpot",
"BeamSpot"]:
820 if signature
in [
"tauCore",
"tauIso",
"tauIsoBDT",
821 "jet",
"fullScan",
"FS",
"jetSuper",
822 "beamSpot",
"BeamSpot",
"beamSpotFS",
823 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
832 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
833 flags.addFlag(f
'{category}.doGPU',
False)
834 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
835 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
836 flags.addFlag(f
'{category}.UseTracklets',
False)
837 flags.addFlag(f
'{category}.trackletPoints', 1)
838 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
839 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
840 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
841 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
842 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
843 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
844 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
845 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
846 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
847 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
848 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
855 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
857 flags.Trigger.InDetTracking.electron.pTmin=3.
858 self.
newflags = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
860 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.muonLRT',
864 self.assertEqual(self.
newflags.Tracking.ActiveConfig.pTmin, 3., msg=
"Preset value lost")
865 self.assertEqual(self.
newflags.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect config")
866 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect config")
869 if __name__ ==
"__main__":