74def PatternRecognitionFromFastRecoCfg(flags, suffix = ""):
75 result = ComponentAccumulator()
76 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
77 result.merge(ActsGeometryContextAlgCfg(flags))
78
79 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig import MuonEtaHoughTransformAlgCfg, MuonNSWSegmentFinderAlgCfg, MuonPhiHoughTransformAlgCfg, MuonSegmentFittingAlgCfg
80 segmentContainers = []
81 if flags.Detector.GeometrysTGC or flags.Detector.GeometryMM:
82 segmentContainers+=["MuonNswSegments"]
83 result.merge(MuonEtaHoughTransformAlgCfg(flags, name=f"MuonNswEtaHoughTransformAlg{suffix}",
84 EtaHoughMaxContainer = "MuonHoughNswMaxima",
85 SpacePointContainer = "MuonFastRecoNswSpacePoints"))
86 result.merge(MuonNSWSegmentFinderAlgCfg(flags, name=f"MuonNswSegmentFinderAlg{suffix}",
87 MuonNswSegmentWriteKey = segmentContainers[-1],
88 MuonNswSegmentSeedWriteKey = "MuonNswSegmentSeeds",
89 CombinatorialReadKey = "MuonHoughNswMaxima"))
90
91 if flags.Detector.GeometryMDT or flags.Detector.GeometryRPC or flags.Detector.GeometryTGC:
92 result.merge(MuonEtaHoughTransformAlgCfg(flags, name = f"MuonEtaHoughTransformAlg{suffix}",
93 SpacePointContainer = "MuonFastRecoSpacePoints"))
94 result.merge(MuonPhiHoughTransformAlgCfg(flags, name = f"MuonPhiHoughTransformAlg{suffix}"))
95 segmentContainers+=["R4MuonSegments"]
96
97 result.merge(MuonSegmentFittingAlgCfg(flags,
98 name = f"MuonSegmentFittingAlg{suffix}",
99 OutSegmentContainer=segmentContainers[-1]))
100
101 from MuonSegmentCnv.MuonSegmentCnvConfig import xAODSegmentCnvAlgCfg
102 result.merge(xAODSegmentCnvAlgCfg(flags, name = f"MuonR4xAODSegmentCnvAlg{suffix}", InSegmentKeys = segmentContainers))
103 if flags.Muon.setupTruthAlgorithms:
104 from MuonTruthAlgsR4.MuonTruthAlgsConfig import RecoSegmentTruthAssocCfg
105 result.merge(RecoSegmentTruthAssocCfg(flags,
106 name=f"MuonSegmentsFromR4TruthMatching{suffix}",
107 SegmentKey="MuonSegmentsFromR4"))
108 if flags.Muon.scheduleActsReco:
109 from MuonSegmentCnv.MuonSegmentCnvConfig import MuonR4SegmentCnvAlgCfg
110 result.merge(MuonR4SegmentCnvAlgCfg(flags,
111 name=f"MuonR4SegmentCnvAlg{suffix}",
112 ReadSegments = segmentContainers,
113 WriteKey="TrackMuonSegments"))
114 return result