diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py index a6b7e1f092c43a86047d92246079953c4d52d746..18459b37953b4e59b1bb901fd87187f213fd2d27 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py @@ -775,6 +775,7 @@ def muEFInsideOutRecoSequence(RoIs, name): from MuonRecExample.MuonStandalone import MooSegmentFinderAlg from MuonCombinedRecExample.MuonCombinedAlgs import MuonCombinedInDetCandidateAlg, MuonInsideOutRecoAlg, MuGirlStauAlg, MuonCreatorAlg, StauCreatorAlg from MuonCombinedAlgs.MuonCombinedAlgsMonitoring import MuonCreatorAlgMonitoring + from MuonRecExample.MuonRecFlags import muonRecFlags efAlgs = [] @@ -789,6 +790,7 @@ def muEFInsideOutRecoSequence(RoIs, name): #need MdtCondDbAlg for the MuonStationIntersectSvc (required by segment and track finding) from AthenaCommon.AlgSequence import AthSequencer from MuonCondAlg.MuonTopCondAlgConfigRUN2 import MdtCondDbAlg + import AthenaCommon.CfgGetter as CfgGetter if not athenaCommonFlags.isOnline: condSequence = AthSequencer("AthCondSeq") if not hasattr(condSequence,"MdtCondDbAlg"): @@ -796,8 +798,34 @@ def muEFInsideOutRecoSequence(RoIs, name): # Sets up and configures the muon alignment: from MuonRecExample import MuonAlignConfig # noqa: F401 - theSegmentFinderAlg = MooSegmentFinderAlg("TrigLateMuonSegmentMaker_"+name) - efAlgs.append(theSegmentFinderAlg) + if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()): + theMuonLayerHough = CfgMgr.MuonLayerHoughAlg( "MuonLayerHoughAlg") + efAlgs.append(theMuonLayerHough) + SegmentFinder = CfgGetter.getPublicTool("MuonClusterSegmentFinderTool") + Cleaner = CfgGetter.getPublicToolClone("MuonTrackCleaner_seg","MuonTrackCleaner") + Cleaner.Extrapolator = CfgGetter.getPublicTool("MuonStraightLineExtrapolator") + Cleaner.Fitter = CfgGetter.getPublicTool("MCTBSLFitterMaterialFromTrack") + Cleaner.PullCut = 3 + Cleaner.PullCutPhi = 3 + SegmentFinder.TrackCleaner = Cleaner + + theSegmentFinderAlg = CfgMgr.MuonSegmentFinderAlg( "TrigMuonSegmentMaker_"+name,SegmentCollectionName="MuonSegments", + MuonPatternCalibration = CfgGetter.getPublicTool("MuonPatternCalibration"), + MuonPatternSegmentMaker = CfgGetter.getPublicTool("MuonPatternSegmentMaker"), + MuonTruthSummaryTool = None) + # we check whether the layout contains any CSC chamber and if yes, we check that the user also wants to use the CSCs in reconstruction + if MuonGeometryFlags.hasCSC() and muonRecFlags.doCSCs(): + CfgGetter.getPublicTool("CscSegmentUtilTool") + CfgGetter.getPublicTool("Csc2dSegmentMaker") + CfgGetter.getPublicTool("Csc4dSegmentMaker") + else: + theSegmentFinderAlg.Csc2dSegmentMaker = "" + theSegmentFinderAlg.Csc4dSegmentMaker = "" + + else: + theSegmentFinderAlg = MooSegmentFinderAlg("TrigLateMuonSegmentMaker_"+name) + + efAlgs.append(theSegmentFinderAlg) # need to run precisions tracking for late muons, since we don't run it anywhere else TrackCollection="TrigFastTrackFinder_Tracks_MuonLate"