25def PatternRecognitionFromFastRecoCfg(flags, suffix = ""):
26 result = ComponentAccumulator()
27 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
28 result.merge(ActsGeometryContextAlgCfg(flags))
29
30 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig import MuonEtaHoughTransformAlgCfg, MuonNSWSegmentFinderAlgCfg, MuonPhiHoughTransformAlgCfg, MuonSegmentFittingAlgCfg
31 segmentContainers = []
32 if flags.Detector.GeometrysTGC or flags.Detector.GeometryMM:
33 segmentContainers+=["MuonNswSegments"]
34 result.merge(MuonEtaHoughTransformAlgCfg(flags, name=f"MuonNswEtaHoughTransformAlg{suffix}",
35 EtaHoughMaxContainer = "MuonHoughNswMaxima",
36 SpacePointContainer = "NswSpacePointsFastReco"))
37 result.merge(MuonNSWSegmentFinderAlgCfg(flags, name=f"MuonNswSegmentFinderAlg{suffix}",
38 MuonNswSegmentWriteKey = segmentContainers[-1],
39 MuonNswSegmentSeedWriteKey = "MuonNswSegmentSeeds",
40 CombinatorialReadKey = "MuonHoughNswMaxima"))
41
42 if flags.Detector.GeometryMDT or flags.Detector.GeometryRPC or flags.Detector.GeometryTGC:
43 result.merge(MuonEtaHoughTransformAlgCfg(flags, name = f"MuonEtaHoughTransformAlg{suffix}",
44 SpacePointContainer = "MuonSpacePointsFastReco"))
45 result.merge(MuonPhiHoughTransformAlgCfg(flags, name = f"MuonPhiHoughTransformAlg{suffix}"))
46 segmentContainers+=["R4MuonSegments"]
47
48 result.merge(MuonSegmentFittingAlgCfg(flags,
49 name = f"MuonSegmentFittingAlg{suffix}",
50 OutSegmentContainer=segmentContainers[-1]))
51
52 from MuonSegmentCnv.MuonSegmentCnvConfig import xAODSegmentCnvAlgCfg
53 result.merge(xAODSegmentCnvAlgCfg(flags, name = f"MuonR4xAODSegmentCnvAlg{suffix}", InSegmentKeys = segmentContainers))
54 if flags.Muon.setupTruthAlgorithms:
55 from MuonTruthAlgsR4.MuonTruthAlgsConfig import RecoSegmentTruthAssocCfg
56 result.merge(RecoSegmentTruthAssocCfg(flags,
57 name=f"MuonSegmentsFromR4TruthMatching{suffix}",
58 SegmentKey="MuonSegmentsFromR4"))
59 if flags.Muon.scheduleActsReco:
60 from MuonSegmentCnv.MuonSegmentCnvConfig import MuonR4SegmentCnvAlgCfg
61 result.merge(MuonR4SegmentCnvAlgCfg(flags,
62 name=f"MuonR4SegmentCnvAlg{suffix}",
63 ReadSegments = segmentContainers,
64 WriteKey="TrackMuonSegments"))
65 return result