ATLAS Offline Software
Loading...
Searching...
No Matches
MuonPatternRecognitionConfig Namespace Reference

Functions

 MuonPhiHoughTransformAlgCfg (flags, name="MuonPhiHoughTransformAlg", **kwargs)
 MuonNSWSegmentFinderAlgCfg (flags, name="MuonNswSegmentFinderAlg", **kwargs)
 MuonEtaHoughTransformAlgCfg (flags, name="MuonEtaHoughTransformAlg", **kwargs)
 MuonSegmentFittingAlgCfg (flags, name="MuonSegmentFittingAlg", **kwargs)
 ActsMuonSegmentRefitAlgCfg (flags, name="ActsMuonSegmentRefitAlg", **kwargs)
 MuonPatternRecognitionCfg (flags, suffix="")
 Main config fragment for pattern recognition.

Function Documentation

◆ ActsMuonSegmentRefitAlgCfg()

MuonPatternRecognitionConfig.ActsMuonSegmentRefitAlgCfg ( flags,
name = "ActsMuonSegmentRefitAlg",
** kwargs )

Definition at line 57 of file MuonPatternRecognitionConfig.py.

57def ActsMuonSegmentRefitAlgCfg(flags,name="ActsMuonSegmentRefitAlg", **kwargs):
58 result = ComponentAccumulator()
59 from MuonTrackFindingAlgs.TrackFindingConfig import SegmentSelectorCfg, MSTrackFitterCfg
60 kwargs.setdefault("SegmentSelectionTool", result.popToolsAndMerge(SegmentSelectorCfg(flags)))
61 from MuonSpacePointCalibrator.CalibrationConfig import MuonSpacePointCalibratorCfg
62 kwargs.setdefault("Calibrator", result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
63 kwargs.setdefault("FittingTool", result.popToolsAndMerge(MSTrackFitterCfg(flags,
64 DoStraightLine=True)))
65 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
66 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)))
67 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
68 kwargs.setdefault("TrackingGeometryTool", result.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
69 kwargs.setdefault("SegmentContainer", "MuonSegmentsFromR4")
70 theAlg = CompFactory.MuonR4.SegmentActsRefitAlg(name, **kwargs)
71 result.addEventAlgo(theAlg, primary = True)
72 return result
73

◆ MuonEtaHoughTransformAlgCfg()

MuonPatternRecognitionConfig.MuonEtaHoughTransformAlgCfg ( flags,
name = "MuonEtaHoughTransformAlg",
** kwargs )

Definition at line 24 of file MuonPatternRecognitionConfig.py.

24def MuonEtaHoughTransformAlgCfg(flags, name = "MuonEtaHoughTransformAlg", **kwargs):
25 result = ComponentAccumulator()
26 kwargs.setdefault("downWeightPrdMultiplicity", True)
27 theAlg = CompFactory.MuonR4.EtaHoughTransformAlg(name, **kwargs)
28 result.addEventAlgo(theAlg, primary=True)
29 return result
30

◆ MuonNSWSegmentFinderAlgCfg()

MuonPatternRecognitionConfig.MuonNSWSegmentFinderAlgCfg ( flags,
name = "MuonNswSegmentFinderAlg",
** kwargs )

Definition at line 15 of file MuonPatternRecognitionConfig.py.

15def MuonNSWSegmentFinderAlgCfg(flags, name = "MuonNswSegmentFinderAlg", **kwargs):
16 result = ComponentAccumulator()
17 from MuonSpacePointCalibrator.CalibrationConfig import MuonSpacePointCalibratorCfg
18 kwargs.setdefault("Calibrator", result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
19 theAlg = CompFactory.MuonR4.NswSegmentFinderAlg(name, **kwargs)
20 result.addEventAlgo(theAlg, primary=True)
21 return result
22
23

◆ MuonPatternRecognitionCfg()

MuonPatternRecognitionConfig.MuonPatternRecognitionCfg ( flags,
suffix = "" )

Main config fragment for pattern recognition.

The suffix allows to specify in the Event Filter whether the algothms run in RoI or FS.

Definition at line 75 of file MuonPatternRecognitionConfig.py.

75def MuonPatternRecognitionCfg(flags, suffix = ""):
76 result = ComponentAccumulator()
77 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
78 result.merge(ActsGeometryContextAlgCfg(flags))
79
80 if flags.Muon.enableMLBucketFilter:
81 from MuonInference.InferenceConfig import GraphBucketFilterToolCfg, GraphInferenceAlgCfg
82 bucketTool = result.popToolsAndMerge(GraphBucketFilterToolCfg(flags))
83 result.merge(GraphInferenceAlgCfg(flags,
84 name = f"GraphInferenceAlg{suffix}",
85 InferenceTools=[bucketTool]))
86
87 segmentContainers = []
88 if flags.Detector.GeometrysTGC or flags.Detector.GeometryMM:
89 segmentContainers+=["MuonNswSegments"]
90 result.merge(MuonEtaHoughTransformAlgCfg(flags, name=f"MuonNswEtaHoughTransformAlg{suffix}",
91 EtaHoughMaxContainer = "MuonHoughNswMaxima",
92 SpacePointContainer = "NswSpacePoints"))
93 result.merge(MuonNSWSegmentFinderAlgCfg(flags, name=f"MuonNswSegmentFinderAlg{suffix}",
94 MuonNswSegmentWriteKey = segmentContainers[-1],
95 MuonNswSegmentSeedWriteKey = "MuonNswSegmentSeeds",
96 CombinatorialReadKey = "MuonHoughNswMaxima"))
97
98 if flags.Detector.GeometryMDT or flags.Detector.GeometryRPC or flags.Detector.GeometryTGC:
99 if flags.Muon.enableMLBucketFilter:
100 result.merge(MuonEtaHoughTransformAlgCfg(flags, name = f"MuonEtaHoughTransformAlg{suffix}",
101 SpacePointContainer = "FilteredMlBuckets"))
102 else:
103 result.merge(MuonEtaHoughTransformAlgCfg(flags, name = f"MuonEtaHoughTransformAlg{suffix}"))
104 result.merge(MuonPhiHoughTransformAlgCfg(flags, name = f"MuonPhiHoughTransformAlg{suffix}"))
105 segmentContainers+=["R4MuonSegments"]
106
107 result.merge(MuonSegmentFittingAlgCfg(flags,
108 name = f"MuonSegmentFittingAlg{suffix}",
109 OutSegmentContainer=segmentContainers[-1]))
110
111 from MuonSegmentCnv.MuonSegmentCnvConfig import xAODSegmentCnvAlgCfg
112 result.merge(xAODSegmentCnvAlgCfg(flags, name = f"MuonR4xAODSegmentCnvAlg{suffix}", InSegmentKeys = segmentContainers))
113 if flags.Input.isMC:
114 from MuonTruthAlgsR4.MuonTruthAlgsConfig import RecoSegmentTruthAssocCfg
115 result.merge(RecoSegmentTruthAssocCfg(flags,
116 name=f"MuonSegmentsFromR4TruthMatching{suffix}",
117 SegmentKey="MuonSegmentsFromR4"))
118 if flags.Muon.scheduleActsReco:
119 from MuonSegmentCnv.MuonSegmentCnvConfig import MuonR4SegmentCnvAlgCfg
120 result.merge(MuonR4SegmentCnvAlgCfg(flags,
121 name=f"MuonR4SegmentCnvAlg{suffix}",
122 ReadSegments = segmentContainers,
123 WriteKey="TrackMuonSegments"))
124 return result

◆ MuonPhiHoughTransformAlgCfg()

MuonPatternRecognitionConfig.MuonPhiHoughTransformAlgCfg ( flags,
name = "MuonPhiHoughTransformAlg",
** kwargs )

Definition at line 7 of file MuonPatternRecognitionConfig.py.

7def MuonPhiHoughTransformAlgCfg(flags, name = "MuonPhiHoughTransformAlg", **kwargs):
8 result = ComponentAccumulator()
9 kwargs.setdefault("downWeightPrdMultiplicity", True)
10 theAlg = CompFactory.MuonR4.PhiHoughTransformAlg(name, **kwargs)
11 result.addEventAlgo(theAlg, primary=True)
12 return result
13
14

◆ MuonSegmentFittingAlgCfg()

MuonPatternRecognitionConfig.MuonSegmentFittingAlgCfg ( flags,
name = "MuonSegmentFittingAlg",
** kwargs )

Definition at line 31 of file MuonPatternRecognitionConfig.py.

31def MuonSegmentFittingAlgCfg(flags, name = "MuonSegmentFittingAlg", **kwargs):
32 result = ComponentAccumulator()
33 from MuonSpacePointCalibrator.CalibrationConfig import MuonSpacePointCalibratorCfg
34 kwargs.setdefault("Calibrator", result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
35 kwargs.setdefault("ResoSeedHitAssoc", 5. )
36 kwargs.setdefault("RecoveryPull", 3.)
37 # Configure T0 fitting, disabled by default
38 kwargs.setdefault("fitSegmentT0", False)
39 if kwargs.get("fitSegmentT0"):
40 kwargs.setdefault("useHessianResidual", True)
41 kwargs.setdefault("recalibInFit", True)
42 kwargs.setdefault("maxIterations", 400)
43 # temporarily disable beamspot constraint when fitting T0, as it causes FPEs
44 kwargs.setdefault("doBeamspotConstraint", False)
45 # Configure pre-fitting, disabled by default
46 kwargs.setdefault("useFastPreFitter", False)
47 if kwargs.get("useFastPreFitter"):
48 kwargs.setdefault("useFastFitter", True)
49 # Configure main (full) fitting
50 kwargs.setdefault("useFastFitter", False)
51 kwargs.setdefault("recalibInFit", False)
52 kwargs.setdefault("doBeamspotConstraint", True)
53 theAlg = CompFactory.MuonR4.SegmentFittingAlg(name, **kwargs)
54 result.addEventAlgo(theAlg, primary=True)
55 return result
56