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
151 flags.useTIDE_Ambi =
False
161 "electron" : electron,
166 "muonIsoMS" : muonIso,
176 "fullScan" : fullScan,
178 "jetSuper" : jetSuper,
180 "beamSpot" : beamSpot,
181 "BeamSpot" : beamSpot,
182 "beamSpotFS" : beamSpotFS,
188 "minBiasPixel" : minBiasPixel,
190 "electronLRT" : electronLRT,
194 "fullScanLRT" : fullScanLRT,
199 flags = AthConfigFlags()
202 category =
'Trigger.InDetTracking'
203 defaults = defaultInDetTrigTrackingFlags
205 category =
'Trigger.ITkTracking'
206 defaults = defaultITkTrigTrackingFlags
208 category =
"Trigger.ActsTracking"
209 defaults = defaultITkTrigTrackingFlags
211 log.error(
"Acts not supported yet")
214 class categoryGeneratorWrapper():
215 """ wrap function which can be consumed by addFlagsCategory and provide its args """
216 def __init__(self, fun : Callable[[AthConfigFlags, str, str], AthConfigFlags],
217 flags : AthConfigFlags, signatureInstance : str, recoMode : str):
219 self.sig = signatureInstance
223 return self.fun(self.flags,self.sig,self.mode)
225 for i
in signatureSet.keys():
226 trackingflags = deepcopy(
defaults())
227 a = categoryGeneratorWrapper(signatureSet[i],trackingflags,i,mode)
228 signatureCategory =
"{}.{}".
format(category,i)
229 flags.addFlagsCategory(signatureCategory,a.run,prefix=
True)
237 """ convenience decorator to automate config steps """
238 def invokeSteps(*args, **kwargs):
239 flagsSig = func(*args, **kwargs)
247 """ use previous type of the var and convert value to it
248 for the moment just makes list of a value if needed
251 typeOfValue =
type(value)
252 if type2set == typeOfValue:
255 basic = (bool, str, int, float,
type(
None))
256 if isinstance(var,basic):
265 def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
267 flags.input_name = instanceName
268 flags.name =
"electron"
269 flags.suffix =
"Electron"
270 flags.roi =
"HLT_Roi_Electron"
271 flags.etaHalfWidth = 0.05
272 flags.phiHalfWidth = 0.1
273 flags.doCloneRemoval =
True
274 flags.doSeedRedundancyCheck =
True
275 if recoMode==
"InDet":
277 flags.keepTrackParameters =
True
278 flags.electronPID =
True
282 def muon(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
284 flags.input_name = instanceName
286 flags.suffix =
"Muon"
287 flags.roi =
"HLT_Roi_L2SAMuon"
288 flags.Triplet_D0Max = 10.0
289 flags.doResMon =
True
290 flags.DoPhiFiltering =
False
291 flags.doSeedRedundancyCheck =
True
292 flags.monPtMin = 12*Units.GeV
296 def muonIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
298 flags.input_name = instanceName
299 flags.name =
"muonIso"
300 flags.suffix =
"MuonIso"
301 flags.roi =
"HLT_Roi_MuonIso"
302 flags.etaHalfWidth = 0.35
303 flags.phiHalfWidth = 0.35
304 flags.zedHalfWidth = 10.0
308 def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
310 flags.input_name = instanceName
311 flags.name =
"tauCore"
312 flags.suffix =
"TauCore"
313 flags.roi =
"HLT_Roi_TauCore"
314 flags.pTmin = 0.8*Units.GeV
315 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
317 flags.holeSearch_FTF =
True
321 def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
323 flags.input_name = instanceName
324 flags.name =
"tauIso"
325 flags.suffix =
"TauIso"
326 flags.roi =
"HLT_Roi_TauIso"
327 flags.etaHalfWidth = 0.4
328 flags.phiHalfWidth = 0.4
329 flags.zedHalfWidth = 7.0
330 flags.adaptiveVertex =
True
331 flags.addSingleTrackVertices =
True
332 flags.vertex =
"HLT_IDVertex_Tau"
333 flags.electronPID =
False
334 flags.pTmin = 0.8*Units.GeV
335 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
339 def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
341 flags.input_name = instanceName
343 flags.suffix =
"Bjet"
344 flags.roi =
"HLT_Roi_Bjet"
345 flags.etaHalfWidth = 0.4
346 flags.phiHalfWidth = 0.4
347 flags.zedHalfWidth = 10.0
348 flags.pTmin = 0.8*Units.GeV
349 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
350 flags.Xi2max =
tsetter(flags.Xi2max,12.)
354 def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
356 flags.input_name = instanceName
357 flags.name =
"jetSuper"
358 flags.suffix =
"JetSuper"
359 flags.vertex =
"HLT_IDVertex_JetSuper"
360 flags.adaptiveVertex =
True
361 flags.addSingleTrackVertices =
True
362 flags.roi =
"HLT_Roi_JetSuper"
363 flags.etaHalfWidth = 0.3
364 flags.phiHalfWidth = 0.3
365 flags.doFullScan =
True
366 flags.pTmin = 1*Units.GeV
367 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
370 flags.DoubletDR_Max = 200
371 flags.SeedRadBinWidth = 10
372 flags.doSeedRedundancyCheck =
True
373 flags.TripletDoPPS =
False
374 flags.nClustersMin = 8
375 flags.UseTrigSeedML = 4
380 def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
382 flags.input_name = instanceName
383 flags.name =
"minBias"
384 flags.suffix =
"MinBias"
385 flags.roi =
"HLT_Roi_MinBias"
386 flags.doFullScan =
True
387 flags.pTmin = 0.1*Units.GeV
388 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
391 flags.etaHalfWidth = 3
392 flags.phiHalfWidth = math.pi
393 flags.doZFinder =
True
394 flags.doZFinderOnly =
True
396 flags.nClustersMin = 5
397 flags.useSeedFilter =
True
398 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 10.*Units.mm)
399 flags.maxZImpact =
tsetter(flags.maxZImpact, 150.*Units.mm)
401 flags.usePrdAssociationTool =
False
406 def minBiasPixel(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
408 flags.input_name = instanceName
409 flags.name =
"minBiasPixel"
410 flags.suffix =
"MinBiasPixel"
411 flags.roi =
"HLT_Roi_MinBias"
412 flags.doFullScan =
True
413 flags.pTmin = 0.1*Units.GeV
414 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
418 flags.maxPixelHoles = 0
419 flags.maxSctHoles = 0
420 flags.maxDoubleHoles = 0
421 flags.minSiNotShared = 3
424 flags.nHolesGapMax = 0
425 if recoMode==
"InDet":
427 flags.useSCTSeeding =
False
430 flags.roadWidth = 12.0
432 flags.Xi2maxNoAdd = 35.0
433 flags.nWeightedClustersMin = 6
434 flags.doBremRecoverySi =
False
435 flags.RunPixelPID =
False
438 flags.etaHalfWidth = 3
439 flags.phiHalfWidth = math.pi
440 flags.doZFinder =
False
441 flags.doZFinderOnly =
True
443 flags.minClusters = 3
444 flags.nClustersMin = 3
445 flags.useSeedFilter =
True
446 flags.maxPrimaryImpact = 10.*Units.mm
447 flags.maxZImpact = 150.*Units.mm
449 flags.usePrdAssociationTool =
False
455 def beamSpot(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
457 flags.input_name = instanceName
458 flags.name =
"beamSpot"
459 flags.suffix =
"BeamSpot"
460 flags.roi =
"HLT_Roi_FS"
461 flags.doFullScan =
True
462 flags.doZFinder =
True
463 flags.DoubletDR_Max = 200
464 flags.SeedRadBinWidth = 10
465 flags.etaHalfWidth = 3
466 flags.phiHalfWidth = math.pi
468 flags.doSeedRedundancyCheck =
True
469 flags.doRecord =
False
474 def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
476 flags.input_name = instanceName
477 flags.name =
"fullScan"
479 flags.roi =
"HLT_Roi_FS"
480 flags.vertex =
"HLT_IDVertex_FS"
481 flags.adaptiveVertex =
True
485 flags.vertex_jet =
"HLT_IDVertex_FS"
486 flags.adaptiveVertex_jet =
True
487 flags.doFullScan =
True
488 flags.etaHalfWidth = 3.
489 flags.phiHalfWidth = math.pi
491 flags.DoubletDR_Max = 200
492 flags.SeedRadBinWidth = 10
493 flags.doSeedRedundancyCheck =
True
494 flags.TripletDoPPS =
False
495 flags.nClustersMin = 8
496 flags.UseTrigSeedML = 4
497 flags.dodEdxTrk =
True
499 flags.doDisappearingTrk =
True if recoMode==
"InDet" else False
505 def beamSpotFS(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
507 flags.input_name = instanceName
508 flags.name =
"fullScan"
510 flags.roi =
"HLT_Roi_FS"
511 flags.doFullScan =
True
512 flags.etaHalfWidth = 3.
513 flags.phiHalfWidth = math.pi
515 flags.DoubletDR_Max = 200
516 flags.SeedRadBinWidth = 10
517 flags.TripletDoPPS =
False
518 flags.nClustersMin = 8
519 flags.UseTrigSeedML = 4
520 flags.doRecord =
False
525 def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
527 flags.input_name = instanceName
528 flags.name =
"cosmics"
529 flags.suffix =
"Cosmic"
530 flags.roi =
"HLT_Roi_Cosmics"
531 flags.Triplet_D0Max = 1000.0
532 flags.Triplet_D0_PPS_Max = 1000.0
533 flags.TrackInitialD0Max = 1000.
534 flags.TrackZ0Max = 1000.
536 flags.doFullScan =
True
537 flags.etaHalfWidth = 3
538 flags.phiHalfWidth = math.pi
540 flags.minPT =
tsetter(flags.minPT, 0.5*Units.GeV)
542 flags.nClustersMin = 4
543 flags.minSiNotShared = 3
547 flags.maxSCTHoles = 3
548 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles,3)
549 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 1000.*Units.mm)
551 flags.Xi2max =
tsetter(flags.Xi2max, 60.)
552 flags.Xi2maxNoAdd =
tsetter(flags.Xi2maxNoAdd, 100.)
553 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles,1)
555 flags.nWeightedClustersMin= 8
556 flags.useSeedFilter =
True
557 flags.usePrdAssociationTool =
False
558 flags.roadWidth = 75.
559 flags.maxZImpact=
tsetter(flags.maxZImpact, 10000.*Units.mm)
560 if recoMode==
"InDet":
561 flags.minTRTonTrk = 20
566 def bmumux(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
568 flags.input_name = instanceName
569 flags.name =
"bphysics"
570 flags.suffix =
"Bmumux"
571 flags.roi =
"HLT_Roi_Bmumux"
572 flags.Triplet_D0Max = 10.
573 flags.DoPhiFiltering =
False
574 flags.etaHalfWidth = 0.75
575 flags.phiHalfWidth = 0.75
576 flags.zedHalfWidth = 50.
577 flags.doSeedRedundancyCheck =
True
578 flags.SuperRoI =
True
582 def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
584 flags.input_name = instanceName
585 flags.name =
"electronLRT"
586 flags.suffix =
"ElecLRT"
587 flags.roi =
"HLT_Roi_Electron"
588 flags.etaHalfWidth = 0.1
589 flags.phiHalfWidth = 0.4
590 flags.UsePixelSpacePoints =
False
591 flags.Triplet_D0Max = 300.
592 flags.TrackInitialD0Max = 300.
593 flags.TrackZ0Max = 500.
594 flags.zedHalfWidth = 225.
595 flags.keepTrackParameters =
True
596 flags.doSeedRedundancyCheck =
True
597 flags.nClustersMin = 8
600 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
601 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
603 flags.doEmCaloSeed =
False
608 def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
610 flags.input_name = instanceName
611 flags.name =
"muonLRT"
612 flags.suffix =
"MuonLRT"
613 flags.roi =
"HLT_Roi_Muon"
614 flags.UsePixelSpacePoints =
False
615 flags.etaHalfWidth = 0.2
616 flags.phiHalfWidth = 0.4
617 flags.Triplet_D0Max = 300.
618 flags.TrackInitialD0Max = 300.
619 flags.TrackZ0Max = 500.
620 flags.zedHalfWidth = 225.
621 flags.doSeedRedundancyCheck =
True
622 flags.nClustersMin = 8
624 flags.doResMon =
True
625 flags.DoPhiFiltering =
False
627 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
628 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
630 flags.doEmCaloSeed =
False
637 def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
639 flags.input_name = instanceName
640 flags.name =
"tauLRT"
641 flags.suffix =
"TauLRT"
642 flags.roi =
"HLT_Roi_TauLRT"
643 flags.vertex =
"HLT_IDVertex_Tau"
644 flags.pTmin = 0.8*Units.GeV
645 flags.minPT =
tsetter(flags.minPT, flags.pTmin)
646 flags.etaHalfWidth = 0.4
647 flags.phiHalfWidth = 0.4
648 flags.zedHalfWidth = 225.
649 flags.UsePixelSpacePoints =
False
650 flags.Triplet_D0Max = 300.
651 flags.TrackInitialD0Max = 300.
652 flags.TrackZ0Max = 500.
653 flags.nClustersMin = 8
656 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
657 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
659 flags.doEmCaloSeed =
False
660 if recoMode==
"InDet":
667 def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
669 flags.input_name = instanceName
670 flags.name =
"bjetLRT"
671 flags.suffix =
"BjetLRT"
672 flags.roi =
"HLT_Roi_Bjet"
673 flags.etaHalfWidth = 0.4
674 flags.phiHalfWidth = 0.4
675 flags.UsePixelSpacePoints =
False
676 flags.Triplet_D0Max = 300.
677 flags.TrackInitialD0Max = 300.
678 flags.TrackZ0Max = 500.
679 flags.nClustersMin = 8
682 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
683 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
685 flags.doEmCaloSeed =
False
691 def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
693 flags.input_name = instanceName
694 flags.name =
"fullScanLRT"
695 flags.suffix =
"FSLRT"
696 flags.roi =
"HLT_Roi_FS"
697 flags.doFullScan =
True
698 flags.etaHalfWidth = 3.
699 flags.phiHalfWidth = math.pi
701 flags.doSeedRedundancyCheck =
True
702 flags.UsePixelSpacePoints =
False
703 flags.Triplet_D0Max = 300.
704 flags.TrackInitialD0Max = 300.
705 flags.TrackZ0Max = 500.
706 flags.Triplet_D0_PPS_Max = 300.
707 flags.DoubletDR_Max = 200
708 flags.nClustersMin = 8
711 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
712 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
714 flags.doEmCaloSeed =
False
720 def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
722 flags.input_name = instanceName
723 flags.name =
"DJetLRT"
724 flags.suffix =
"DJLRT"
725 flags.roi =
"HLT_Roi_DJ"
726 flags.doFullScan =
False
727 flags.etaHalfWidth = 0.4
728 flags.phiHalfWidth = 0.4
729 flags.zedHalfWidth = 225.
731 flags.doSeedRedundancyCheck =
True
732 flags.UsePixelSpacePoints =
False
733 flags.Triplet_D0Max = 300.
734 flags.TrackInitialD0Max = 300.
735 flags.TrackZ0Max = 500.
736 flags.Triplet_D0_PPS_Max = 300.
737 flags.DoubletDR_Max = 200
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
750 def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags:
752 flags.input_name = instanceName
753 flags.name =
"DVtxLRT"
754 flags.suffix =
"DVLRT"
755 flags.roi =
"HLT_Roi_DV"
756 flags.doFullScan =
False
757 flags.etaHalfWidth = 0.35
758 flags.phiHalfWidth = 0.35
760 flags.doSeedRedundancyCheck =
True
761 flags.UsePixelSpacePoints =
False
762 flags.Triplet_D0Max = 300.
763 flags.TrackInitialD0Max = 300.
764 flags.TrackZ0Max = 500.
765 flags.Triplet_D0_PPS_Max = 300.
766 flags.DoubletDR_Max = 200
767 flags.nClustersMin = 8
770 flags.maxPrimaryImpact =
tsetter(flags.maxPrimaryImpact, 300.*Units.mm)
771 flags.maxEMImpact =
tsetter(flags.maxEMImpact, 300.*Units.mm)
773 flags.doEmCaloSeed =
False
780 flags.trkTracks_FTF = f
'HLT_IDTrkTrack_{flags.suffix}_FTF'
781 flags.trkTracks_IDTrig = f
'HLT_IDTrkTrack_{flags.suffix}_IDTrig'
782 flags.tracks_FTF =
collToRecordable(flags, f
'HLT_IDTrack_{flags.suffix}_FTF')
785 flags.tracks_IDTrig =
collToRecordable(flags,
"HLT_IDTrack_{}_IDTrig".
format(flags.suffix
if flags.input_name !=
"tauIso" else "Tau"))
787 if recoMode ==
"Acts":
788 flags.trkTracks_FTF = f
'HLT_Acts_{flags.suffix}_Tracks'
789 flags.trkTracks_IDTrig = f
'HLT_Acts_{flags.suffix}_Ambi_Tracks'
792 flags.minClusters =
tsetter(flags.minClusters , 8)
793 flags.nHolesGapMax =
tsetter(flags.nHolesGapMax , 1)
794 flags.nWeightedClustersMin=
tsetter(flags.nWeightedClustersMin, 8)
795 flags.maxSiHoles =
tsetter(flags.maxSiHoles , 2)
796 flags.maxSCTHoles =
tsetter(flags.maxSCTHoles , 1)
797 flags.maxPixelHoles =
tsetter(flags.maxPixelHoles , 1)
798 flags.maxDoubleHoles =
tsetter(flags.maxDoubleHoles , 0)
799 flags.maxZImpact =
tsetter(flags.maxZImpact , 500.)
802 if recoMode ==
"ITk":
803 flags.extension = flags.input_name
806 flags.UsePixelSpacePoints =
True
813 signature = flags.input_name
814 firstStage =
True if "FTF" in name
else False
817 if signature
in [
"minBias",
"minBiasPixel",
"bjetLRT",
818 "beamSpot",
"BeamSpot"]:
821 if signature
in [
"tauCore",
"tauIso",
"tauIsoBDT",
822 "jet",
"fullScan",
"FS",
"jetSuper",
823 "beamSpot",
"BeamSpot",
"beamSpotFS",
824 "bjetLRT",
"DJetLRT",
"DVtxLRT"]:
833 flags.addFlag(f
'{category}.RoiZedWidthDefault', 180.0 * Units.mm)
834 flags.addFlag(f
'{category}.doGPU',
False)
835 flags.addFlag(f
'{category}.UseTrigTrackFollowing',
False)
836 flags.addFlag(f
'{category}.UseTrigRoadPredictor',
False)
837 flags.addFlag(f
'{category}.UseTracklets',
False)
838 flags.addFlag(f
'{category}.trackletPoints', 1)
839 flags.addFlag(f
'{category}.PixelClusterCacheKey',
"PixelTrigClustersCache")
840 flags.addFlag(f
'{category}.SCTClusterCacheKey',
"SCT_ClustersCache")
841 flags.addFlag(f
'{category}.SpacePointCachePix',
"PixelSpacePointCache")
842 flags.addFlag(f
'{category}.SpacePointCacheSCT',
"SctSpacePointCache")
843 flags.addFlag(f
'{category}.SCTBSErrCacheKey',
"SctBSErrCache")
844 flags.addFlag(f
'{category}.SCTFlaggedCondCacheKey',
"SctFlaggedCondCache")
845 flags.addFlag(f
'{category}.SCTRDOCacheKey',
"SctRDOCache")
846 flags.addFlag(f
'{category}.PixRDOCacheKey',
"PixRDOCache")
847 flags.addFlag(f
'{category}.PixBSErrCacheKey',
"PixBSErrCache")
848 flags.addFlag(f
'{category}.TRTRDOCacheKey',
"TrtRDOCache")
849 flags.addFlag(f
'{category}.TRT_DriftCircleCacheKey',
"TRT_DriftCircleCache")
850 flags.addFlag(f
'{category}.ClusterAmbiguitiesMap',
"TrigPixelClusterAmbiguitiesMap")
857 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
859 flags.Trigger.InDetTracking.electron.pTmin=3.
860 self.
newflags = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.electron',
862 self.
newflags2 = flags.cloneAndReplace(
'Tracking.ActiveConfig',
'Trigger.InDetTracking.muonLRT',
866 self.assertEqual(self.
newflags.Tracking.ActiveConfig.pTmin, 3., msg=
"Preset value lost")
867 self.assertEqual(self.
newflags.Tracking.ActiveConfig.input_name,
"electron", msg=
"Incorrect config")
868 self.assertEqual(self.
newflags2.Tracking.ActiveConfig.input_name,
"muonLRT", msg=
"Incorrect config")
871 if __name__ ==
"__main__":