diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackCleaner.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackCleaner.cxx index 6d28a71a675570ec11144928866bcdd3fbdb7571..89e4df46b375ec552edeb47023848c1cb5f2d83c 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackCleaner.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackCleaner.cxx @@ -1045,7 +1045,7 @@ namespace Muon { } std::unique_ptr<MdtDriftCircleOnTrack> mdtRotFlipped; - std::unique_ptr<CompetingMuonClustersOnTrack> updatedCompRot; + std::unique_ptr<const CompetingMuonClustersOnTrack> updatedCompRot; bool flipSign = false; if( !pseudo ){ const MdtDriftCircleOnTrack* mdtRot = isMDT ? dynamic_cast<const MdtDriftCircleOnTrack*>(meas) : 0; @@ -1176,9 +1176,7 @@ namespace Muon { if( prdList.empty() ){ ATH_MSG_WARNING("No clusters selected during comprot cleaning, keeping old cluster" ); }else{ - //TODO: createBroadCluster returns a const object so a workaround is needed to get a unique pointer, this should be fixed in some fashion - CompetingMuonClustersOnTrack tempCompRot=*m_compRotCreator->createBroadCluster(prdList,0.); - updatedCompRot = std::make_unique<CompetingMuonClustersOnTrack>(tempCompRot); + updatedCompRot.reset(m_compRotCreator->createBroadCluster(prdList,0.)); ++state.numberOfCleanedCompROTs; } } diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackCleaner.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackCleaner.h index f6e86b22a97745d70c6eafcd6ba088b2abbcfdbe..d7f06d97874537921c547e16a69dafef9f94551b 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackCleaner.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackCleaner.h @@ -62,7 +62,7 @@ namespace Muon { const Trk::TrackParameters* pars; std::unique_ptr<Trk::ResidualPull> resPull; std::unique_ptr<MdtDriftCircleOnTrack> flippedMdt; - std::unique_ptr<CompetingMuonClustersOnTrack> cleanedCompROT; + std::unique_ptr<const CompetingMuonClustersOnTrack> cleanedCompROT; const Trk::FitQuality* fitQ; MCTBCleaningInfo( const Trk::TrackStateOnSurface* orState ) :