48def LegacyMuonRecoChainCfg(flags):
49 result = ComponentAccumulator()
50 from MuonConfig.MuonSegmentFindingConfig import MuonLayerHoughAlgCfg, MuonSegmentFinderAlgCfg, MuonSegmentCnvAlgCfg
51
52 result.merge(MuonLayerHoughAlgCfg(flags))
53 result.merge(MuonSegmentFinderAlgCfg(flags, NSWSegmentCollectionName=""))
54
55 from MuonConfig.MuonTrackBuildingConfig import MuPatTrackBuilderCfg
56 result.merge(MuPatTrackBuilderCfg(flags))
57 from xAODTrackingCnv.xAODTrackingCnvConfig import MuonStandaloneTrackParticleCnvAlgCfg
58 result.merge(MuonStandaloneTrackParticleCnvAlgCfg(flags))
59
60 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedMuonCandidateAlgCfg, MuonSegContainerMergerAlgCfg
61 result.merge(MuonCombinedMuonCandidateAlgCfg(flags))
62
63
64 result.merge(MuonSegContainerMergerAlgCfg(flags, TagMaps =[], InputSegmentContainers =["TrackMuonSegments"]))
65
66 result.merge(MuonSegmentCnvAlgCfg(flags,
67 SegmentContainerName="TrkMuonSegments",
68 xAODContainerName="MuonSegments"))
69
70 result.merge(MuonSegmentCnvAlgCfg(flags,
71 name = "UnAssocMuonSegmentAlg",
72 SegmentContainerName="UnAssocMuonTrkSegments",
73 xAODContainerName="UnAssocMuonSegments"))
74
75
76 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCreatorAlgCfg
77 result.merge(MuonCreatorAlgCfg(flags, TagMaps=[], CreateSAmuons = True, MakeClusters= False,
78 ClusterContainerName=""))
79
80 result.getEventAlgo("MuonCreatorAlg").MuonCreatorTool.RequireMSOEforSA = False
81
82
83 from DerivationFrameworkMuons.MuonsToolsConfig import DiMuonTaggingAlgCfg
84 result.merge(DiMuonTaggingAlgCfg(flags, applyTrigger=False, Mu1RequireQual = False, Mu2RequireQual = False,
85 UseTrackProbe = False, InvariantMassLow=60. * 1000.,
86 TrackContainerKey = "MuonSpectrometerTrackParticles", BranchPrefix="HabemusZ"))
87
88
89 from MuonObjectMarker.ObjectMarkerConfig import SegmentMarkerAlgCfg, MeasurementMarkerAlgCfg
90 result.merge(SegmentMarkerAlgCfg(flags, SelectMuons="passHabemusZ", SegmentKey="MuonSegments"))
91
92 result.merge(MeasurementMarkerAlgCfg(flags, SelectSegments="passHabemusZ",
93 SegmentKey="MuonSegments", SegmentLinkKey="HabemusZ"))
94
95 from MuonObjectMarker.ObjectMarkerConfig import MuonSegmentFitParDecorAlgCfg
96 result.merge(MuonSegmentFitParDecorAlgCfg(flags, name="MuonSegmentDecorAlg_MuonSegments",
97 SegmentKey="MuonSegments"))
98 result.merge(MuonSegmentFitParDecorAlgCfg(flags, name="MuonSegmentDecorAlg_UnAssocMuonSegments",
99 SegmentKey="UnAssocMuonSegments"))
100
101 if flags.Muon.setupTruthAlgorithms:
102 from MuonTruthAlgsR4.MuonTruthAlgsConfig import RecoSegmentTruthAssocCfg
103 result.merge(RecoSegmentTruthAssocCfg(flags,
104 name="TrkMuonSegmentsTruthMatchingAlg",
105 SegmentKey="MuonSegments"))
106 result.merge(RecoSegmentTruthAssocCfg(flags,
107 name="UnAssocSegmentsTruthMatchingAlg",
108 SegmentKey="UnAssocMuonSegments"))
109
110
111 from xAODMuonViewAlgs.ViewAlgsConfig import SegmentViewAlgCfg
112 result.merge(SegmentViewAlgCfg(flags,
113 SegmentsKeys=["UnAssocMuonSegments", "MuonSegments"],
114 ViewKey="LegacyChainSegments",
115 ExtraInputs = [] if not flags.Input.isMC else [( "SG::AuxVectorBase", "UnAssocMuonSegments.truthParticleLink"),
116 ( "SG::AuxVectorBase", "MuonSegments.truthParticleLink")]))
117
118 return result
119