diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/CMakeLists.txt b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/CMakeLists.txt index 97ad245a7fb6050944a92cba65ac8e7fcd812500..8c79e8ebac42b42a92a98d23f8331986ab40fc41 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/CMakeLists.txt +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/CMakeLists.txt @@ -39,6 +39,7 @@ atlas_depends_on_subdirs( PRIVATE Reconstruction/MuonIdentification/MuonCombinedToolInterfaces Reconstruction/MuonIdentification/MuonSegmentTaggers/MuonSegmentTaggerToolInterfaces Reconstruction/MuonIdentification/muonEvent + Reconstruction/MuonIdentification/MuidEvent Reconstruction/ParticleTruth Reconstruction/RecoTools/RecoToolInterfaces Reconstruction/RecoTools/TrackToCalo @@ -66,5 +67,5 @@ atlas_add_component( MuonCombinedBaseTools src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} CaloEvent AthLinks AthenaBaseComps Identifier EventPrimitives FourMomUtils xAODCaloEvent xAODEventInfo xAODMuon xAODTracking xAODTruth GaudiKernel MagFieldInterfaces MuonReadoutGeometry MuonIdHelpersLib MuonCompetingRIOsOnTrack MuonRIO_OnTrack MuonSegment MuonRecHelperToolsLib MuonRecToolInterfaces MuonSegmentMakerUtils MuonSelectorToolsLib ICaloTrkMuIdTools MuGirlInterfaces MuidInterfaces MuonCombinedEvent MuonCombinedToolInterfaces muonEvent ParticleTruth RecoToolInterfaces TrackToCaloLib TrkGeometry TrkSurfaces TrkCaloExtension TrkEventPrimitives TrkEventUtils TrkMaterialOnTrack TrkParameters TrkParametersIdentificationHelpers TrkSegment TrkTrack TrkTrackSummary TrkExInterfaces TrkToolInterfaces ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} CaloEvent AthLinks AthenaBaseComps Identifier EventPrimitives FourMomUtils xAODCaloEvent xAODEventInfo xAODMuon xAODTracking xAODTruth GaudiKernel MagFieldInterfaces MuonReadoutGeometry MuonIdHelpersLib MuonCompetingRIOsOnTrack MuonRIO_OnTrack MuonSegment MuonRecHelperToolsLib MuonRecToolInterfaces MuonSegmentMakerUtils MuonSelectorToolsLib ICaloTrkMuIdTools MuGirlInterfaces MuidInterfaces MuonCombinedEvent MuonCombinedToolInterfaces muonEvent MuidEvent ParticleTruth RecoToolInterfaces TrackToCaloLib TrkGeometry TrkSurfaces TrkCaloExtension TrkEventPrimitives TrkEventUtils TrkMaterialOnTrack TrkParameters TrkParametersIdentificationHelpers TrkSegment TrkTrack TrkTrackSummary TrkExInterfaces TrkToolInterfaces ) diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/cmt/requirements b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/cmt/requirements index 54581ecb47d90e5794e731e2e30182139a00df62..dc2b0c3505c459601df9ab853a8150b98f9f1967 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/cmt/requirements +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/cmt/requirements @@ -23,6 +23,7 @@ use MuGirlInterfaces MuGirlInterfaces-* Reconstruction/M use MuidInterfaces MuidInterfaces-* Reconstruction/MuonIdentification use MuonCombinedEvent MuonCombinedEvent-* Reconstruction/MuonIdentification use MuonCombinedToolInterfaces MuonCombinedToolInterfaces-* Reconstruction/MuonIdentification +use MuidEvent MuidEvent-* Reconstruction/MuonIdentification use MuonIdHelpers MuonIdHelpers-* MuonSpectrometer use MuonReadoutGeometry MuonReadoutGeometry-* MuonSpectrometer/MuonDetDescr use MuonRIO_OnTrack MuonRIO_OnTrack-* MuonSpectrometer/MuonReconstruction/MuonRecEvent diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuGirlTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuGirlTagTool.cxx index 64f27bdb4cd12c75951fa5bc8a0472cc5905a34b..b984029cc5c4596a6dc1191cf1ad1cfb75006094 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuGirlTagTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuGirlTagTool.cxx @@ -50,7 +50,7 @@ namespace MuonCombined { return StatusCode::SUCCESS; } - void MuGirlTagTool::extend( const InDetCandidateCollection& inDetCandidates ) const { + void MuGirlTagTool::extend( const InDetCandidateCollection& inDetCandidates ) { if (m_pMuGirlReconstruction->MuGirlReco(inDetCandidates).isFailure()) { ATH_MSG_ERROR("MuGirl reconstruction failed!"); } diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuGirlTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuGirlTagTool.h index c8ac54f20809383db2482f59ce3648c86bf0d87e..2502976d5a177b7435eab1cf57de13119aad467f 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuGirlTagTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuGirlTagTool.h @@ -20,13 +20,13 @@ namespace MuonCombined { public: MuGirlTagTool(const std::string& type, const std::string& name, const IInterface* parent); - ~MuGirlTagTool(void); // destructor + virtual ~MuGirlTagTool(void); // destructor - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /**IMuonCombinedInDetExtensionTool interface: extend ID candidate */ - void extend( const InDetCandidateCollection& inDetCandidates ) const; + virtual void extend( const InDetCandidateCollection& inDetCandidates ) override; private: diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.cxx index bad6a6ef594994799dbbfddf3047aaa1b11faadc..2a0966a3d2105e80a505aee2006c68b92f58c74e 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.cxx @@ -142,13 +142,13 @@ namespace MuonCombined { } - void MuonCaloTagTool::extend( const InDetCandidateCollection& inDetCandidates ) const { + void MuonCaloTagTool::extend( const InDetCandidateCollection& inDetCandidates ) { extend(inDetCandidates, nullptr, nullptr); } void MuonCaloTagTool::extend( const InDetCandidateCollection& inDetCandidates, const CaloCellContainer* caloCellCont, - const xAOD::CaloClusterContainer* caloClusterCont) const { + const xAOD::CaloClusterContainer* caloClusterCont) { //return; @@ -361,7 +361,7 @@ namespace MuonCombined { // applyTrackIsolation check - bool MuonCaloTagTool::applyTrackIsolation(const xAOD::TrackParticle& tp ) const { + bool MuonCaloTagTool::applyTrackIsolation(const xAOD::TrackParticle& tp ) { if( m_trackIsolationTool.empty() ) return true; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.h index fd522de5cc8a2c53dc9ac5b6eae8c804b7930f1b..8de9192070f3f7b67da16964a7d97d57f75957dd 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.h @@ -44,17 +44,19 @@ namespace MuonCombined { public: MuonCaloTagTool(const std::string& type, const std::string& name, const IInterface* parent); - ~MuonCaloTagTool(void); // destructor + virtual ~MuonCaloTagTool(void); // destructor - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /**IMuonCombinedInDetExtensionTool interface: extend ID candidate */ - void extend( const InDetCandidateCollection& inDetCandidates ) const; + virtual + void extend( const InDetCandidateCollection& inDetCandidates ) override; + virtual void extend( const InDetCandidateCollection& inDetCandidates, const CaloCellContainer* caloCellContainer, - const xAOD::CaloClusterContainer* caloClusterContainer) const; + const xAOD::CaloClusterContainer* caloClusterContainer) override; private: @@ -65,7 +67,7 @@ namespace MuonCombined { //bool applyEnergyIsolation(const xAOD::IParticle* muon); bool selectTrack(const Trk::Track* trk, const Trk::Vertex* vertex) const; bool selectCosmic(const Trk::Track* ptcl) const; - bool applyTrackIsolation(const xAOD::TrackParticle& tp) const; + bool applyTrackIsolation(const xAOD::TrackParticle& tp); void showTrackInfo(const Trk::TrackParameters* par) const; // std::vector<DepositInCalo> getDeposits(const xAOD::TrackParticle* tp, const CaloCellContainer* caloCellCont) const; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx index 5f5a25d5acad6e70137374f63abe7b272615fe5a..0f9b86b62826cb042891079943f1aada8fb66528 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx @@ -53,7 +53,7 @@ namespace MuonCombined { return StatusCode::SUCCESS; } - void MuonCandidateTool::create( const xAOD::TrackParticleContainer& tracks, MuonCandidateCollection& outputCollection ) const { + void MuonCandidateTool::create( const xAOD::TrackParticleContainer& tracks, MuonCandidateCollection& outputCollection ) { ATH_MSG_DEBUG("Producing MuonCandidates for " << tracks.size() ); unsigned int ntracks = 0; const xAOD::EventInfo* eventInfo; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.h index a814d9c7dded99704f3563ad43db54fd56bc785a..c7ae8ebc07b63ca94767eacef08cadc2ac3ba362 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.h @@ -30,13 +30,14 @@ namespace MuonCombined { public: MuonCandidateTool(const std::string& type, const std::string& name, const IInterface* parent); - ~MuonCandidateTool(void); // destructor + virtual ~MuonCandidateTool(void); // destructor - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /**IMuonCandidateTool interface: build a MuonCandidateCollection from a TrackCollection of spectrometer tracks */ - void create( const xAOD::TrackParticleContainer& tracks, MuonCandidateCollection& outputCollection ) const; + virtual + void create( const xAOD::TrackParticleContainer& tracks, MuonCandidateCollection& outputCollection ) override; private: ToolHandle<Muon::MuonEDMPrinterTool> m_printer; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx index 70d54adda95a511d214f80c3e4cbd52addca20c9..83942fb8a303c0df578ad54a9422551c0cb12d1e 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx @@ -107,7 +107,7 @@ namespace MuonCombined { return StatusCode::SUCCESS; } - void MuonCombinedFitTagTool::combine( const MuonCandidate& muonCandidate, const std::vector<InDetCandidate*>& indetCandidates ) { + void MuonCombinedFitTagTool::combine( const MuonCandidate& muonCandidate, const std::vector<InDetCandidate*>& indetCandidates ) const { ATH_MSG_DEBUG("muon candidate: "<<muonCandidate.toString()); @@ -338,7 +338,7 @@ namespace MuonCombined { } - void MuonCombinedFitTagTool::evaluateMatchProperties(CombinedFitTag& tag, const Trk::Track& idTrack, const xAOD::TrackParticle& idTrackParticle) + void MuonCombinedFitTagTool::evaluateMatchProperties(CombinedFitTag& tag, const Trk::Track& idTrack, const xAOD::TrackParticle& idTrackParticle) const { // evaluate field integral and momentum balance significance for combined track tag.fieldIntegral(m_trackQuery->fieldIntegral(tag.combinedTrack())); diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h index 407e21245d67825bbc246b0f6d2449a98627cb53..ba1dfef1592bee4284cf78ce22b61099260a7954 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h @@ -50,13 +50,14 @@ namespace MuonCombined { public: MuonCombinedFitTagTool(const std::string& type, const std::string& name, const IInterface* parent); - ~MuonCombinedFitTagTool(void); // destructor + virtual ~MuonCombinedFitTagTool(void); // destructor - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /**IMuonCombinedTagTool interface: build combined muons from a muon and a vector of indet candidates */ - void combine( const MuonCandidate& muonCandidate, const std::vector<InDetCandidate*>& indetCandidates ); + virtual + void combine( const MuonCandidate& muonCandidate, const std::vector<InDetCandidate*>& indetCandidates ) const override; private: @@ -67,7 +68,7 @@ namespace MuonCombined { bool combinedTrackQualityCheck(const Trk::Track& combinedTrack, const Trk::Track& indetTrack) const; - void evaluateMatchProperties(CombinedFitTag& tag, const Trk::Track& idTrack, const xAOD::TrackParticle& idTrackParticle); + void evaluateMatchProperties(CombinedFitTag& tag, const Trk::Track& idTrack, const xAOD::TrackParticle& idTrackParticle) const; bool extrapolatedNeedsRefit(const Trk::Track& combTrack, const Trk::Track* extrTrack) const; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx index 3747745f733d082774d5f425852c03a07e9de619..26ca36f07f79df777cfee87be5fcf16a2152f0c7 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx @@ -55,7 +55,7 @@ namespace MuonCombined { return StatusCode::SUCCESS; } - void MuonCombinedStacoTagTool::combine( const MuonCandidate& muonCandidate, const std::vector<InDetCandidate*>& indetCandidates ) { + void MuonCombinedStacoTagTool::combine( const MuonCandidate& muonCandidate, const std::vector<InDetCandidate*>& indetCandidates ) const { // only combine if the back extrapolation was successfull if( !muonCandidate.extrapolatedTrack() || diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h index 7871345f5dca366c092ca709cb0c3c932977892b..b3d23c5af942a1a7a20bcc4bcc2d21f7d6eaf2bf 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h @@ -36,13 +36,14 @@ namespace MuonCombined { public: MuonCombinedStacoTagTool(const std::string& type, const std::string& name, const IInterface* parent); - ~MuonCombinedStacoTagTool(void); // destructor + virtual ~MuonCombinedStacoTagTool(void); // destructor - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /**IMuonCombinedTagTool interface: build combined muons from a muon and a vector of indet candidates */ - void combine( const MuonCandidate& muonCandidate, const std::vector<InDetCandidate*>& indetCandidates ); + virtual + void combine( const MuonCandidate& muonCandidate, const std::vector<InDetCandidate*>& indetCandidates ) const override; private: diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx index 560f67f70ad7fc502a9e894722a6aba7c9b0616e..cf956f3044b0b0e3ce781fac831274af6bb2d36b 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx @@ -67,6 +67,7 @@ #include "MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h" #include "MuidInterfaces/IMuonTrackQuery.h" +#include "MuidEvent/FieldIntegral.h" #include "TrackSegmentAssociationTool.h" #include "MuonIdHelpers/MuonStationIndex.h" @@ -170,7 +171,7 @@ namespace MuonCombined { << m_applyCaloNoiseCut << " " << m_sigmaCaloNoiseCut); ATH_CHECK(m_caloMaterialProvider.retrieve()); - + return StatusCode::SUCCESS; } @@ -543,7 +544,7 @@ namespace MuonCombined { // Etcore variables for muon collectCells(*muon,outputData.clusterContainer); - ATH_MSG_DEBUG("Done creating muon"); + ATH_MSG_DEBUG("Done creating muon with "<<muon->auxdata<int>("nUnspoiledCscHits")<<" unspoiled csc hits"); return muon; } @@ -622,7 +623,6 @@ namespace MuonCombined { void MuonCreatorTool::addCombinedFit( xAOD::Muon& muon, const CombinedFitTag* tag, OutputData& outputData ) const { if (!tag){ // init variables if necessary. - return; } @@ -1039,6 +1039,11 @@ namespace MuonCombined { ATH_MSG_DEBUG("Adding standalone fit (refitted): pt " << (*link)->pt() << " eta " << (*link)->eta() << " phi " << (*link)->phi() ); //link.toPersistent(); muon.setTrackParticleLink(xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle, link ); + float fieldInt=m_trackQuery->fieldIntegral(*updatedExtrapolatedTrack).betweenSpectrometerMeasurements(); + muon.setParameter(fieldInt,xAOD::Muon::spectrometerFieldIntegral); + //TrackSummary* tsum=updatedExtrapolatedTrack->trackSummary(); + int nunspoiled=updatedExtrapolatedTrack->trackSummary()->get(Trk::numberOfCscUnspoiltEtaHits); + muon.auxdata<int>("nUnspoiledCscHits")=nunspoiled; } } else{ //no refitted track, so add original un-refitted extrapolated track as ME track @@ -1050,6 +1055,10 @@ namespace MuonCombined { ATH_MSG_DEBUG("Adding standalone fit (un-refitted): pt " << (*link)->pt() << " eta " << (*link)->eta() << " phi " << (*link)->phi() ); //link.toPersistent(); muon.setTrackParticleLink(xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle, link ); + float fieldInt=m_trackQuery->fieldIntegral(*extrapolatedTrack).betweenSpectrometerMeasurements(); + muon.setParameter(fieldInt,xAOD::Muon::spectrometerFieldIntegral); + int nunspoiled=extrapolatedTrack->trackSummary()->get(Trk::numberOfCscUnspoiltEtaHits); + muon.auxdata<int>("nUnspoiledCscHits")=nunspoiled; } } } @@ -1063,8 +1072,14 @@ namespace MuonCombined { ATH_MSG_DEBUG("Adding standalone fit: pt " << (*link)->pt() << " eta " << (*link)->eta() << " phi " << (*link)->phi() ); //link.toPersistent(); muon.setTrackParticleLink(xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle, link ); + float fieldInt=m_trackQuery->fieldIntegral(*extrapolatedTrack).betweenSpectrometerMeasurements(); + muon.setParameter(fieldInt,xAOD::Muon::spectrometerFieldIntegral); + int nunspoiled=extrapolatedTrack->trackSummary()->get(Trk::numberOfCscUnspoiltEtaHits); + muon.auxdata<int>("nUnspoiledCscHits")=nunspoiled; + } + else{ + ATH_MSG_WARNING("failed to create ME track particle for SA muon"); } - else ATH_MSG_WARNING("failed to create ME track particle for SA muon"); } } } @@ -1420,6 +1435,10 @@ namespace MuonCombined { if( !m_trackSegmentAssociationTool.empty() ) addSegmentsOnTrack(muon); + if(!muon.isAvailable<int>("nUnspoiledCscHits")){ + muon.auxdata<int>("nUnspoiledCscHits")=-999; + } + return true; } diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.h index 2a409d536aa64503349c0b6ea6640ba1729974b2..1170502249c0b50ed0af125ed4b7a0dfbf8af5fb 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.h @@ -190,7 +190,8 @@ namespace MuonCombined { ToolHandle<Rec::IMuonPrintingTool> m_muonPrinter; ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtTool; ToolHandle<Trk::ITrackParticleCreatorTool> m_particleCreator; - ToolHandle<Trk::ITrackAmbiguityProcessorTool> m_ambiguityProcessor; + // FIXME mutable + mutable ToolHandle<Trk::ITrackAmbiguityProcessorTool> m_ambiguityProcessor; ToolHandle<Trk::IPropagator> m_propagator; ToolHandle<xAOD::IMuonDressingTool> m_muonDressingTool; ToolHandle<Rec::IMuonMomentumBalanceSignificance> m_momentumBalanceTool;