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
60 kwargs.setdefault("SegmentSelectionTool", result.popToolsAndMerge(SegmentSelectorCfg(flags)))
61 from MuonSpacePointCalibrator.CalibrationConfig import MuonSpacePointCalibratorCfg
62 kwargs.setdefault("Calibrator", result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
63 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
64 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)))
65 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
66 kwargs.setdefault("TrackingGeometryTool", result.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
67 kwargs.setdefault("SegmentContainer", "MuonSegmentsFromR4")
68 theAlg = CompFactory.MuonR4.SegmentActsRefitAlg(name, **kwargs)
69 result.addEventAlgo(theAlg, primary = True)
70 return result
71

◆ 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 73 of file MuonPatternRecognitionConfig.py.

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