diff --git a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonDetailedTrackTruthMaker.h b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonDetailedTrackTruthMaker.h
index 50984d9b38695577afbc5157cc3f9549722839ac..4ada05aae45601ddb5716a1a5e002a493ad2d659 100755
--- a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonDetailedTrackTruthMaker.h
+++ b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonDetailedTrackTruthMaker.h
@@ -1,24 +1,22 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef MUONDETAILEDTRACKTRUTHMAKER_H
 #define MUONDETAILEDTRACKTRUTHMAKER_H
 
-#include <string>
-#include <vector>
-
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
+
 #include "StoreGate/WriteHandleKeyArray.h"
 #include "StoreGate/ReadHandleKeyArray.h"
-
 #include "TrkToolInterfaces/IDetailedTrackTruthBuilder.h"
-
 #include "TrkTrack/TrackCollection.h"
 #include "TrkTruthData/PRD_MultiTruthCollection.h"
 #include "TrkTruthData/DetailedTrackTruthCollection.h"
 
+#include <string>
+
 /**
  * This algorithm produces track truth data using Muon PRD truth collections.
  * Calls a DetailedTrackTruthBuilder tool that does the actual job.
@@ -33,7 +31,6 @@ public:
   
   virtual StatusCode initialize();
   virtual StatusCode execute();
-  virtual StatusCode finalize();
   
 private:
   // PRD truth maps in any order
@@ -45,12 +42,11 @@ private:
   // DetailedTrackTruthCollection output
   SG::WriteHandleKeyArray<DetailedTrackTruthCollection> m_detailedTrackTruthNames{this,"DetailedTrackTruthNames",{""},"output collections"};
 
-  // Tool Handle for truth tool
-  ToolHandle<Trk::IDetailedTrackTruthBuilder> m_truthTool;
+  ToolHandle<Trk::IDetailedTrackTruthBuilder> m_truthTool{this,"TruthTool","Trk::DetailedTrackTruthBuilder"};
 
-  bool m_hasCSC;
-  bool m_hasSTgc;
-  bool m_hasMM;
+  Gaudi::Property<bool> m_hasCSC {this, "HasCSC", true};
+  Gaudi::Property<bool> m_hasSTgc {this, "HasSTgc", true};
+  Gaudi::Property<bool> m_hasMM {this, "HasMM", true};
 
 };
 
diff --git a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h
index c8677ec48de438db18775c872077325ce6a01909..2df3a9bd21fa96cdbaeaa87e5a7d35f2be06667e 100755
--- a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h
+++ b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h
@@ -1,18 +1,18 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef MUONPATTERNCOMBINATIONDETAILEDTRACKTRUTHMAKER_H
 #define MUONPATTERNCOMBINATIONDETAILEDTRACKTRUTHMAKER_H
 
-#include <string>
-#include <vector>
-
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
 
 #include "MuonRecToolInterfaces/IDetailedMuonPatternTruthBuilder.h"
 
+#include <string>
+#include <vector>
+
 /**
  * This algorithm produces track truth data using Muon PRD truth collections.
  * Calls a DetailedTrackTruthBuilder tool that does the actual job.
@@ -27,24 +27,17 @@ public:
   
   virtual StatusCode initialize();
   virtual StatusCode execute();
-  virtual StatusCode finalize();
   
 private:
-  // PRD truth maps in any order
-  std::vector<std::string> m_PRD_TruthNames;
-
-  // Track input
-  std::string m_trackCollectionName;
+  Gaudi::Property<std::vector<std::string>> m_PRD_TruthNames{this,"PRD_TruthNames",{"CSC_TruthMap","RPC_TruthMap","TGC_TruthMap","MDT_TruthMap"},"PRD truth maps in any order"};
 
-  // Muon pattern combination collection input
-  std::string m_collection;
+  Gaudi::Property<std::string> m_trackCollectionName{this,"TrackCollectionName","MooreTracks","Track input"};
 
-  // DetailedTrackTruthCollection output
-  std::string m_detailedTrackTruthName;
+  Gaudi::Property<std::string> m_collection{this,"MuonPatternCombinationCollection","MuonHoughPatternCombinations","Muon pattern combination collection input"};
 
-  // Tool Handle for truth tool
-  ToolHandle<Trk::IDetailedMuonPatternTruthBuilder> m_truthTool;
+  Gaudi::Property<std::string> m_detailedTrackTruthName{this,"DetailedTrackTruthNames","","DetailedTrackTruthCollection output"};
 
+  ToolHandle<Trk::IDetailedMuonPatternTruthBuilder> m_truthTool{this,"TruthTool","Trk::DetailedMuonPatternTruthBuilder/DetailedMuonPatternTruthBuilder"};
 };
 
 #endif/*MUONPATTERNCOMBINATIONDETAILEDTRACKTRUTHMAKER_H*/
diff --git a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonTrackTruthTool.h b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonTrackTruthTool.h
index 3876339487e1cf164c3604053c9b5712724df275..c800bb4d8b067c40ce4e808198781b89a12e567a 100644
--- a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonTrackTruthTool.h
+++ b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonTrackTruthTool.h
@@ -16,11 +16,13 @@
 #include "MuonSimData/CscSimDataCollection.h"
 #include "TrackRecord/TrackRecordCollection.h"
 #include "TrkTrack/TrackCollection.h"
+#include "TrkToolInterfaces/ITruthTrajectoryBuilder.h"
 
 #include <string>
 #include <vector>
 #include <map>
 #include <utility>
+#include <set>
 
 class TruthTrajectory;
 
@@ -35,7 +37,6 @@ namespace Muon {
 namespace Trk {
   class Track;
   class MeasurementBase;
-  class ITruthTrajectoryBuilder;
 }
 
 namespace Muon {
@@ -138,21 +139,23 @@ namespace Muon {
     /// The number of such scatters is returned in the .second.
     const std::pair<const HepMC::GenParticle*, unsigned int> getInitialPair( const TruthTrajectory& traj, const int barcodeIn ) const;
     
-    const MuonGM::MuonDetectorManager*  m_detMgr;
+    const MuonGM::MuonDetectorManager* m_detMgr;
 
-    ToolHandle<Muon::MuonEDMPrinterTool>         m_printer;
     ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
-    ToolHandle<Trk::ITruthTrajectoryBuilder>     m_truthTrajectoryBuilder;
+
+    ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this,"Printer","Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
+    ToolHandle<Trk::ITruthTrajectoryBuilder> m_truthTrajectoryBuilder{this,"TruthTrajectoryBuilder","Muon::MuonDecayTruthTrajectoryBuilder/MuonDecayTruthTrajectoryBuilder"};
 
     mutable TruthTree m_truthTree;
     mutable std::vector<TruthTrajectory*> m_truthTrajectoriesToBeDeleted;
     mutable std::map<int,int> m_barcodeMap; // map used to link barcode of TrackRecord particles/hits to 'final' state barcode
-    bool m_manipulateBarCode;
-    bool m_doSummary;
-    unsigned int  m_minHits;
-    bool m_matchAllParticles;
+
+    Gaudi::Property<bool> m_manipulateBarCode{this,"ManipulateBarCode",false};
+    Gaudi::Property<bool> m_doSummary{this,"DoSummary",false};
+    Gaudi::Property<bool> m_matchAllParticles{this,"MatchAllParticles",true};
+    Gaudi::Property<unsigned int> m_minHits{this,"MinHits",4};
+    Gaudi::Property<std::vector<int>> m_pdgsToBeConsidered{this,"ConsideredPDGs",{}};
     
-    IntegerArrayProperty m_pdgsToBeConsidered;
     std::set<int> m_selectedPdgs; // set storing particle PDG's considered for matching
   };
 
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.cxx b/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.cxx
index 69e3e795536b96481113e84c2162d2c1f6243c0b..5fea6adda781d26e674832d40cbd1a2d1b5abc55 100755
--- a/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.cxx
+++ b/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.cxx
@@ -3,54 +3,42 @@
 */
 
 #include "DetailedMuonPatternTruthBuilder.h"
+
 #include "MuonPattern/MuonPattern.h"
 #include "MuonPattern/MuonPatternCollection.h"
 #include "MuonPattern/MuonPatternCombination.h"
 #include "MuonPattern/MuonPatternCombinationCollection.h"
 #include "MuonPattern/MuonPatternChamberIntersect.h"
 #include "MuonPattern/DetailedMuonPatternTruthCollection.h"
-
 #include "TrkTruthData/DetailedTrackTruth.h"
 #include "TrkTruthData/DetailedSegmentTruth.h"
 #include "TrkTruthData/TruthTrajectory.h"
-
 #include "AtlasHepMC/GenParticle.h"
 #include "AtlasHepMC/GenVertex.h"
-
 #include "GeneratorObjects/HepMcParticleLink.h"
 #include "AthContainers/DataVector.h"
-
 #include "TrkTrack/Track.h"
 #include "TrkRIO_OnTrack/RIO_OnTrack.h"
 #include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h"
 #include "TrkMeasurementBase/MeasurementBase.h"
 #include "TrkPrepRawData/PrepRawData.h"
-
-// GROSS MASS INCLUDING ALL PACKAGES
 #include "MuonSimData/MuonSimData.h"
 #include "MuonSimData/MuonSimDataCollection.h"
 #include "MuonSimData/CscSimDataCollection.h"
 #include "MuonPrepRawData/MdtPrepData.h"
 #include "MuonPrepRawData/MMPrepData.h"
 #include "MuonPrepRawData/sTgcPrepData.h"
-
-// package include
-// Trk includes
 #include "TrkParameters/TrackParameters.h" 
 #include "TrkTrack/Track.h"
 #include "TrkFitterInterfaces/ITrackFitter.h"
 #include "TrkExInterfaces/IExtrapolator.h"
 #include "TrkSurfaces/PerigeeSurface.h"
-
 #include "TrkDetElementBase/TrkDetElementBase.h"
-
 #include "TrkPrepRawData/PrepRawData.h"
 #include "TrkMeasurementBase/MeasurementBase.h"
 #include "TrkRIO_OnTrack/RIO_OnTrack.h"
 #include "TrkPseudoMeasurementOnTrack/PseudoMeasurementOnTrack.h"
-
 #include "TrackRecord/TrackRecordCollection.h"
-
 #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h"
 #include "MuonRIO_OnTrack/MuonClusterOnTrack.h"
 #include "MuonRIO_OnTrack/MMClusterOnTrack.h"
@@ -59,7 +47,6 @@
 #include "MuonPrepRawData/sTgcPrepData.h"
 #include "MuonPrepRawData/MuonCluster.h"
 #include "MuonSegment/MuonSegment.h"
-// HepMC
 #include "AtlasHepMC/GenParticle.h"
 #include "MuonRecHelperTools/MuonEDMPrinterTool.h"
 #include "MuonRecHelperTools/IMuonEDMHelperSvc.h"
@@ -67,11 +54,8 @@
 #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h"
 #include "MuonRecToolInterfaces/IMuonCompetingClustersOnTrackCreator.h"
 #include "MuonRecToolInterfaces/IMuonTrackToSegmentTool.h"
-
 #include "MuonTrackMakerUtils/SortMeasurementsByPosition.h"
 
-// END GROSS MASS INCLUDING
-
 #include <map>
 #include <queue>
 #include <list>
@@ -99,7 +83,6 @@ struct DetectorLayer {
 };
 
 namespace {
-  //template<class Map>  void printMap(const Map& m);
 
   template<class Map>  void printMap(const Map& m) {
     std::cout<<"printMap(): [";
@@ -144,24 +127,17 @@ namespace {
 namespace Trk {
 
 //================================================================
-DetailedMuonPatternTruthBuilder::DetailedMuonPatternTruthBuilder(const std::string& type, const std::string& name, const IInterface* parent)
-  : AthAlgTool(type,name,parent)
-  , m_truthTrackBuilder("Trk::ElasticTruthTrajectoryBuilder")
-  , m_mdtCreator("Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator")
-  , m_muonClusterCreator("Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator")
-{
+DetailedMuonPatternTruthBuilder::DetailedMuonPatternTruthBuilder(const std::string& type, const std::string& name, const IInterface* parent) :
+    AthAlgTool(type,name,parent) {
   declareInterface<IDetailedMuonPatternTruthBuilder>(this);
-  declareProperty("TruthTrajectoryTool", m_truthTrackBuilder);
 }
 
 //================================================================
 StatusCode DetailedMuonPatternTruthBuilder::initialize() {
-
   ATH_CHECK(m_truthTrackBuilder.retrieve());
   ATH_CHECK(m_idHelperSvc.retrieve());
   ATH_CHECK(m_mdtCreator.retrieve());
   ATH_CHECK(m_muonClusterCreator.retrieve());
-
   return StatusCode::SUCCESS;
 }
 
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.h b/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.h
index e9fd93c872cfbabd398498d4b4854a1c463a56c6..ed21b33141d71982c59ec873ab6ce087a4fc2bfe 100755
--- a/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.h
+++ b/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.h
@@ -5,54 +5,46 @@
 #ifndef DETAILEDMUONPATTERNTRUTHBUILDER_H
 #define DETAILEDMUONPATTERNTRUTHBUILDER_H
 
-// Gaudi
+#include "MuonRecToolInterfaces/IDetailedMuonPatternTruthBuilder.h"
 #include "AthenaBaseComps/AthAlgTool.h"
-#include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
+#include "GaudiKernel/ToolHandle.h"
 
 #include "AthLinks/ElementLink.h"
 #include "AtlasDetDescr/AtlasDetectorID.h"
 #include "TrkTruthData/PRD_MultiTruthCollection.h"
 #include "TrkEventUtils/InverseMultiMap.h"
-
-#include "MuonRecToolInterfaces/IDetailedMuonPatternTruthBuilder.h"
 #include "MuonPattern/MuonPatternCollection.h"
 #include "MuonPattern/MuonPatternCombination.h"
 #include "MuonPattern/MuonPatternCombinationCollection.h"
 #include "MuonPattern/DetailedMuonPatternTruthCollection.h"
-
 #include "TrkToolInterfaces/ITruthTrajectoryBuilder.h"
 #include "TrkTruthData/DetailedTrackTruth.h"
 #include "TrkTruthData/DetailedSegmentTruth.h"
 #include "TrkTruthData/SubDetHitStatistics.h"
-
 #include "TrkTruthData/DetailedTrackTruthCollection.h"
 #include "TrkTruthData/DetailedTrackTruth.h"
 #include "TrkTruthData/TruthTrajectory.h"
-
 #include "TrkTrack/Track.h"
 #include "TrkRIO_OnTrack/RIO_OnTrack.h"
 #include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h"
 #include "TrkMeasurementBase/MeasurementBase.h"
 #include "TrkPrepRawData/PrepRawData.h"
-
 #include "MuonIdHelpers/IMuonIdHelperSvc.h"
-
-// Include any other potentially useful packages
-// Trk includes
 #include "MuonSimData/MuonSimDataCollection.h"
 #include "MuonSimData/CscSimDataCollection.h"
 #include "TrackRecord/TrackRecord.h"
 #include "TrkSegment/SegmentCollection.h"
 #include "TrkParameters/TrackParameters.h"
-#include <vector>
 #include "MuonRecToolInterfaces/IMdtDriftCircleOnTrackCreator.h"
 #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h"
 
+#include <string>
+#include <vector>
+
 namespace Trk {
   
-  class DetailedMuonPatternTruthBuilder: virtual public IDetailedMuonPatternTruthBuilder,
-				   public AthAlgTool
+  class DetailedMuonPatternTruthBuilder: virtual public IDetailedMuonPatternTruthBuilder, public AthAlgTool
   {
   public:
     DetailedMuonPatternTruthBuilder(const std::string& type, const std::string& name, const IInterface* parent);
@@ -77,10 +69,9 @@ namespace Trk {
 
     ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
 
-    ToolHandle<Trk::ITruthTrajectoryBuilder> m_truthTrackBuilder;
-    ToolHandle<Muon::IMdtDriftCircleOnTrackCreator>   m_mdtCreator;
-    ToolHandle<Muon::IMuonClusterOnTrackCreator>      m_muonClusterCreator;
-    ToolHandle<Muon::IMuonClusterOnTrackCreator >    p_IMuonClusterOnTrackCreatorCSCCluster ;
+    ToolHandle<Trk::ITruthTrajectoryBuilder> m_truthTrackBuilder{this,"TruthTrajectoryTool","Trk::ElasticTruthTrajectoryBuilder"};
+    ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtCreator{this,"MdtDriftCircleCreator","Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"};
+    ToolHandle<Muon::IMuonClusterOnTrackCreator> m_muonClusterCreator{this,"MuonClusterCreator","Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator"};
 
     SubDetHitStatistics::SubDetType findSubDetType(Identifier id);
 
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonDetailedTrackTruthMaker.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonDetailedTrackTruthMaker.cxx
index cbd7fdf08f1153d739d8110b80c5333e2d17bd14..dc074373cb75df9b5cfad8392e094a185aa540ec 100755
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonDetailedTrackTruthMaker.cxx
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonDetailedTrackTruthMaker.cxx
@@ -6,17 +6,14 @@
 // A. Gaponenko, 2006
 
 #include "MuonTruthAlgs/MuonDetailedTrackTruthMaker.h"
+
 #include <iterator>
+#include <vector>
 
 //================================================================
 MuonDetailedTrackTruthMaker::MuonDetailedTrackTruthMaker(const std::string &name, ISvcLocator *pSvcLocator) :
-  AthAlgorithm(name,pSvcLocator),
-  m_truthTool("Trk::DetailedTrackTruthBuilder")
-{  
-  declareProperty("TruthTool",               m_truthTool);
-  declareProperty("HasCSC",m_hasCSC=true);
-  declareProperty("HasSTgc",m_hasSTgc=true);
-  declareProperty("HasMM",m_hasMM=true);
+  AthAlgorithm(name,pSvcLocator)
+{
 }
 
 // Initialize method
@@ -52,13 +49,6 @@ StatusCode MuonDetailedTrackTruthMaker::initialize()
   return StatusCode::SUCCESS;
 }
 
-// -----------------------------------------------------------------------------------------------------
-StatusCode MuonDetailedTrackTruthMaker::finalize() 
-{
-  ATH_MSG_DEBUG( "MuonDetailedTrackTruthMaker::finalize()");
-  return StatusCode::SUCCESS;
-}
-
 // -----------------------------------------------------------------------------------------------------
 StatusCode MuonDetailedTrackTruthMaker::execute() {
   ATH_MSG_DEBUG( "MuonDetailedTrackTruthMaker::execute()");
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonPatternCombinationDetailedTrackTruthMaker.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonPatternCombinationDetailedTrackTruthMaker.cxx
index ebd64af9a8525bf16acad7d0699f020f8b020e81..1d71c655f1574c8715f1b4c339b3f32de4690919 100755
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonPatternCombinationDetailedTrackTruthMaker.cxx
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonPatternCombinationDetailedTrackTruthMaker.cxx
@@ -1,65 +1,31 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 // Algorithm producing truth info for PrepRawData, keeping all MC particles contributed to a PRD.
 // A. Gaponenko, 2006
 
 #include "MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h"
+
 #include "TrkTruthData/PRD_MultiTruthCollection.h"
 #include "TrkTruthData/DetailedTrackTruthCollection.h"
 #include "TrkTrack/TrackCollection.h"
-#include <iterator>
-
 #include "MuonPattern/DetailedMuonPatternTruthCollection.h"
 
+#include <iterator>
 
 //================================================================
 MuonPatternCombinationDetailedTrackTruthMaker::MuonPatternCombinationDetailedTrackTruthMaker(const std::string &name, ISvcLocator *pSvcLocator) :
-  AthAlgorithm(name,pSvcLocator),
-//  m_truthTool("Trk::DetailedTrackTruthBuilder")
-  m_truthTool("Trk::DetailedMuonPatternTruthBuilder/DetailedMuonPatternTruthBuilder")
+  AthAlgorithm(name,pSvcLocator)
 {  
-  declareProperty("TruthTool",               m_truthTool);
-
-  // Inputs
-  declareProperty("TrackCollectionName", m_trackCollectionName = "MooreTracks");
-  declareProperty("MuonPatternCombinationCollection", m_collection = "MuonHoughPatternCombinations");
-
-  declareProperty("PRD_TruthNames",          m_PRD_TruthNames);
-  m_PRD_TruthNames.push_back("CSC_TruthMap");
-  m_PRD_TruthNames.push_back("RPC_TruthMap");
-  m_PRD_TruthNames.push_back("TGC_TruthMap");
-  m_PRD_TruthNames.push_back("MDT_TruthMap");
-
-
-  // Output
-  declareProperty("DetailedTrackTruthNames",  m_detailedTrackTruthName);
-  m_detailedTrackTruthName = (m_trackCollectionName + "Truth");
+  if (m_detailedTrackTruthName.empty()) m_detailedTrackTruthName = (m_trackCollectionName + "Truth");
 }
 
-// Initialize method
 // -----------------------------------------------------------------------------------------------------
 StatusCode MuonPatternCombinationDetailedTrackTruthMaker::initialize()
 {
   ATH_MSG_DEBUG( "MuonPatternCombinationDetailedTrackTruthMaker::initialize()");
-    
-  //----------------
-  if ( m_truthTool.retrieve().isFailure() ) {
-    ATH_MSG_FATAL( "Failed to retrieve tool " << m_truthTool);
-    return StatusCode::FAILURE;
-  } else {
-    ATH_MSG_DEBUG("Retrieved tool " << m_truthTool );
-  }
-
-  //----------------
-  return StatusCode::SUCCESS;
-}
-
-// -----------------------------------------------------------------------------------------------------
-StatusCode MuonPatternCombinationDetailedTrackTruthMaker::finalize() 
-{
-  ATH_MSG_DEBUG( "MuonPatternCombinationDetailedTrackTruthMaker::finalize()");
+  ATH_CHECK(m_truthTool.retrieve());
   return StatusCode::SUCCESS;
 }
 
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.cxx
index 1c494ba3e7cca79452fcccb46fdf016edfd519ef..7577aa796c2b49f1e7efb20ca265199f758776c2 100644
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.cxx
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.cxx
@@ -15,11 +15,7 @@ namespace Muon {
 
   // Constructor with parameters:
   MuonSegmentTruthAssociationAlg::MuonSegmentTruthAssociationAlg(const std::string &name, ISvcLocator *pSvcLocator) :
-    AthAlgorithm(name,pSvcLocator),
-    m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"),
-    m_muonTrackTruthTool("Muon::MuonTrackTruthTool/MuonTrackTruthTool")
-  {  
-    declareProperty("BarcodeOffset", m_barcodeOffset = 1000000 ,"barcode offset for matching truth particles");
+    AthAlgorithm(name,pSvcLocator) {  
   }
 
   // Initialize method:
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.h b/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.h
index 3d8c36568bd40d34befbd17e0ae1d736c0d9e66c..d3d0a4979d7d836d085160bdce3cc2db59274a54 100644
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.h
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.h
@@ -35,15 +35,19 @@ public:
 
 private:
   ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
-  ToolHandle<Muon::MuonEDMPrinterTool>  m_printer;
-  ToolHandle<Muon::IMuonTrackTruthTool> m_muonTrackTruthTool;
-  Gaudi::Property<SG::WriteDecorHandleKey<xAOD::MuonSegmentContainer> >m_muonTruthSegmentContainerName{this,"MuonTruthSegmentName","MuonTruthSegments","muon truth segment container name"};
-  Gaudi::Property<SG::WriteDecorHandleKey<xAOD::MuonSegmentContainer> >m_muonSegmentCollectionName{this,"MuonSegmentLocation","MuonSegments","muon segment container name"};
+
+  ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this,"Printer","Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
+  ToolHandle<Muon::IMuonTrackTruthTool> m_muonTrackTruthTool{this,"MuonTrackTruthTool","Muon::MuonTrackTruthTool/MuonTrackTruthTool"};
+
+  SG::WriteDecorHandleKey<xAOD::MuonSegmentContainer> m_muonTruthSegmentContainerName{this,"MuonTruthSegmentName","MuonTruthSegments","muon truth segment container name"};
+  SG::WriteDecorHandleKey<xAOD::MuonSegmentContainer> m_muonSegmentCollectionName{this,"MuonSegmentLocation","MuonSegments","muon segment container name"};
+
   SG::ReadHandleKey<McEventCollection> m_mcEventColl{this,"McEventCollectionKey","TruthEvent","McEventCollection"};
   SG::ReadHandleKeyArray<MuonSimDataCollection> m_muonSimData{this,"MuonSimDataNames",{ "MDT_SDO", "RPC_SDO", "TGC_SDO", "sTGC_SDO", "MM_SDO" },"Muon SDO maps"};
   SG::ReadHandleKey<CscSimDataCollection> m_cscSimData{this,"CSC_SDO_Container","CSC_SDO","CSC SDO"};
   SG::ReadHandleKey<TrackRecordCollection> m_trackRecord{this,"TrackRecord","MuonEntryLayerFilter","Track Record Collection"};
-  int m_barcodeOffset;
+
+  Gaudi::Property<int>m_barcodeOffset{this,"BarcodeOffset",1000000 ,"barcode offset for matching truth particles"};
 };
 
 } // namespace Muon
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTrackTruthTool.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonTrackTruthTool.cxx
index fa7fafc64d4fbf46fc3ae60c688ea7015d5804aa..b256dcb13bb2ded4b988355698aad67bdda24cfe 100644
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTrackTruthTool.cxx
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTrackTruthTool.cxx
@@ -4,46 +4,27 @@
 
 #include "MuonTruthAlgs/MuonTrackTruthTool.h"
 
-#include "TrkToolInterfaces/ITruthTrajectoryBuilder.h"
 #include "AtlasHepMC/GenEvent.h"
 #include "AtlasHepMC/GenParticle.h"
 #include "TrkTruthData/TruthTrajectory.h"
-
 #include "MuonReadoutGeometry/MuonDetectorManager.h"
-
 #include "MuonSimData/MuonSimData.h"
 #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h"
 #include "MuonSegment/MuonSegment.h"
-
-#include <iostream>
-#include <set>
-
-#include "MuonIdHelpers/MdtIdHelper.h"
-#include "MuonIdHelpers/RpcIdHelper.h"
-#include "MuonIdHelpers/CscIdHelper.h"
-#include "MuonIdHelpers/TgcIdHelper.h"
-
 #include "MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h"
 #include "TrkMeasurementBase/MeasurementBase.h"
 #include "TrkPseudoMeasurementOnTrack/PseudoMeasurementOnTrack.h"
 #include "TrkTrack/Track.h"
 #include "TrkEventUtils/RoT_Extractor.h"
 
+#include <iostream>
+
 namespace Muon {
 
-  MuonTrackTruthTool::MuonTrackTruthTool(const std::string& ty,const std::string& na,const IInterface* pa)
-    : AthAlgTool(ty,na,pa), 
-      m_detMgr(0),
-      m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"),
-      m_truthTrajectoryBuilder("Muon::MuonDecayTruthTrajectoryBuilder/MuonDecayTruthTrajectoryBuilder")
-  {
+  MuonTrackTruthTool::MuonTrackTruthTool(const std::string& ty,const std::string& na,const IInterface* pa) :
+      AthAlgTool(ty,na,pa), 
+      m_detMgr(nullptr) {
     declareInterface<IMuonTrackTruthTool>(this);
-
-    declareProperty("DoSummary",                  m_doSummary = false );
-    declareProperty("ManipulateBarCode",          m_manipulateBarCode = false );
-    declareProperty("MinHits",                    m_minHits = 4 );
-    declareProperty("MatchAllParticles",          m_matchAllParticles = true );
-    declareProperty("ConsideredPDGs",             m_pdgsToBeConsidered );
   }
 
   StatusCode MuonTrackTruthTool::initialize()
@@ -258,8 +239,6 @@ namespace Muon {
 	ATH_MSG_VERBOSE(" Erasing entry: barcode " << it->second.truthTrack->GetBarCode() 
                         << " manip " << manipulateBarCode(it->second.truthTrack->GetBarCode()) << " hits " << nhits);
 	badBarcodes.push_back(it->first);
-	//m_truthTree.erase(it);
-	//it = m_truthTree.begin();
       }else{
 	++ngood;
 	ATH_MSG_VERBOSE(" Keeping entry: barcode " << it->second.truthTrack->GetBarCode() 
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.cxx
index 0819ef104cdac70818b16297ea0e127390e815e6..5fe49d5908c1a2ae995348cbdc240737ef1691f8 100644
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.cxx
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.cxx
@@ -3,6 +3,7 @@
 */
 
 #include "MuonTruthDecorationAlg.h"
+
 #include "xAODMuon/MuonSegment.h"
 #include "xAODMuon/MuonSegmentAuxContainer.h"
 #include "xAODTruth/TruthParticleContainer.h"
@@ -24,30 +25,7 @@ namespace Muon {
   // Constructor with parameters:
   MuonTruthDecorationAlg::MuonTruthDecorationAlg(const std::string &name, ISvcLocator *pSvcLocator) :
     AthAlgorithm(name,pSvcLocator),
-    m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"),
-    m_truthClassifier("MCTruthClassifier/MCTruthClassifier"),
-    m_extrapolator("Trk::Extrapolator/AtlasExtrapolator"),
-    m_muonMgr(0)
-  {  
-    
-    // Get parameter values from jobOptions file
-    declareProperty("TruthParticleContainerName"    , m_truthParticleContainerName = "TruthParticles");
-    declareProperty("MuonTruthParticleContainerName", m_muonTruthParticleContainerName = "MuonTruthParticles");
-    declareProperty("MuonTruthSegmentName"          , m_muonTruthSegmentContainerName = "MuonTruthSegments" );
-    declareProperty("TrackRecordCollectionNames"    , m_trackRecordCollectionNames={"CaloEntryLayer","MuonEntryLayer","MuonExitLayer"});
-
-    //remove NSW by default for now, can always be changed in the configuration
-    declareProperty("PRD_TruthMaps",m_PRD_TruthNames={"CSC_TruthMap","RPC_TruthMap","TGC_TruthMap","MDT_TruthMap"}); 
-
-    declareProperty("CSCSDOs",   m_CSC_SDO_TruthNames="CSC_SDO");
-    //remove NSW by default for now, can always be changed in the configuration
-    declareProperty("SDOs",      m_SDO_TruthNames={"RPC_SDO","TGC_SDO","MDT_SDO"});
-
-    declareProperty("MCTruthClassifier",   m_truthClassifier);
-    declareProperty("MuonEDMPrinterTool",  m_printer);
-    declareProperty("Extrapolator",        m_extrapolator);
-    declareProperty("CreateTruthSegments", m_createTruthSegment = true );
-    declareProperty("BarcodeOffset",       m_barcodeOffset = 1000000 );
+    m_muonMgr(nullptr) {  
   }
 
   // Initialize method:
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h
index 51d2306de9dd48290a3e8edd159f7cf5291bd59e..ef4044910cf648f5cf7336bcbc76b57eb72f8025 100755
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h
@@ -8,15 +8,11 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ToolHandle.h"
-#include <string>
-#include <map>
-#include <vector>
 
 #include "MuonIdHelpers/IMuonIdHelperSvc.h"
 #include "MuonRecToolInterfaces/IMuonTrackTruthTool.h"
 #include "MuonRecHelperTools/MuonEDMPrinterTool.h"
 #include "TrkExInterfaces/IExtrapolator.h"
-
 #include "TrackRecord/TrackRecordCollection.h"
 #include "xAODTruth/TruthParticle.h"
 #include "xAODTruth/TruthParticleContainer.h"
@@ -25,11 +21,14 @@
 #include "xAODMuon/MuonSegmentContainer.h"
 #include "GeneratorObjects/xAODTruthParticleLink.h"
 #include "MCTruthClassifier/IMCTruthClassifier.h"
-
 #include "StoreGate/ReadHandleKey.h"
 #include "StoreGate/WriteHandleKey.h"
 #include "StoreGate/WriteHandleKeyArray.h"
 
+#include <string>
+#include <map>
+#include <vector>
+
 class MuonSimDataCollection;
 class CscSimDataCollection;
 
@@ -58,20 +57,25 @@ private:
   void createSegments( const ElementLink< xAOD::TruthParticleContainer >& truthLink,SG::WriteHandle<xAOD::MuonSegmentContainer> segmentContainer,
                        const MuonTruthDecorationAlg::ChamberIdMap& ids) const;
 
-  SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthParticleContainerName;
-  SG::WriteHandleKey<xAOD::TruthParticleContainer> m_muonTruthParticleContainerName;
-  SG::WriteHandleKey<xAOD::MuonSegmentContainer> m_muonTruthSegmentContainerName;
-  SG::ReadHandleKeyArray<TrackRecordCollection> m_trackRecordCollectionNames;
-  SG::ReadHandleKeyArray<PRD_MultiTruthCollection> m_PRD_TruthNames;
-  SG::ReadHandleKeyArray<MuonSimDataCollection> m_SDO_TruthNames;
-  SG::ReadHandleKey<CscSimDataCollection> m_CSC_SDO_TruthNames;
+  SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthParticleContainerName{this,"TruthParticleContainerName","TruthParticles"};
+  SG::WriteHandleKey<xAOD::TruthParticleContainer> m_muonTruthParticleContainerName{this,"MuonTruthParticleContainerName","MuonTruthParticles"};
+  SG::WriteHandleKey<xAOD::MuonSegmentContainer> m_muonTruthSegmentContainerName{this,"MuonTruthSegmentName","MuonTruthSegments"};
+
+  SG::ReadHandleKeyArray<TrackRecordCollection> m_trackRecordCollectionNames{this,"TrackRecordCollectionNames",{"CaloEntryLayer","MuonEntryLayer","MuonExitLayer"}};
+  SG::ReadHandleKeyArray<PRD_MultiTruthCollection> m_PRD_TruthNames{this,"PRD_TruthMaps",{"CSC_TruthMap","RPC_TruthMap","TGC_TruthMap","MDT_TruthMap"},"remove NSW by default for now, can always be changed in the configuration"};
+  SG::ReadHandleKeyArray<MuonSimDataCollection> m_SDO_TruthNames{this,"SDOs",{"RPC_SDO","TGC_SDO","MDT_SDO"},"remove NSW by default for now, can always be changed in the configuration"};
+  SG::ReadHandleKey<CscSimDataCollection> m_CSC_SDO_TruthNames{this,"CSCSDOs","CSC_SDO"};
+
   ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
-  ToolHandle<Muon::MuonEDMPrinterTool>  m_printer;
-  ToolHandle<IMCTruthClassifier>        m_truthClassifier;
-  ToolHandle<Trk::IExtrapolator>        m_extrapolator;
+
+  ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this,"MuonEDMPrinterTool","Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
+  ToolHandle<IMCTruthClassifier> m_truthClassifier{this,"MCTruthClassifier","MCTruthClassifier/MCTruthClassifier"};
+  ToolHandle<Trk::IExtrapolator> m_extrapolator{this,"Extrapolator","Trk::Extrapolator/AtlasExtrapolator"};
+
+  Gaudi::Property<bool> m_createTruthSegment{this,"CreateTruthSegments",true};
+  Gaudi::Property<int> m_barcodeOffset{this,"BarcodeOffset",1000000};
+
   const MuonGM::MuonDetectorManager* m_muonMgr;
-  bool m_createTruthSegment;
-  int m_barcodeOffset;
 };
 
 } // namespace Muon
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.cxx
index 3946501952a397b19a9f8ed27d610ead65379461..cdc3303d7ac89a22e9d59b053a68b6c37045e51e 100644
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.cxx
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.cxx
@@ -1,8 +1,7 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// MuonTruthAlgs includes
 #include "MuonTruthSummaryAlg.h"
 
 #include "TrkTrack/TrackCollection.h"
@@ -10,20 +9,10 @@
 #include "MuonSegment/MuonSegment.h"
 #include "xAODTracking/TrackParticleContainer.h"
 
-MuonTruthSummaryAlg::MuonTruthSummaryAlg( const std::string& name, ISvcLocator* pSvcLocator ) 
-  : 
-  AthAlgorithm( name, pSvcLocator ),
-  m_truthSummaryTool("MuonTruthSummaryTool"){
-  declareProperty("SegmentContainerName"      , m_segmentContainerName = "MuonSegments");
-  declareProperty("MSTracksContainerName"     , m_msTracksContainerName = "MuonSpectrometerTracks");
-  declareProperty("MSTrackletsContainerName"     , m_msTrackletContainerName = "MSonlyTracklets");
-  declareProperty("MuonTruthSummaryTool"      ,	m_truthSummaryTool );
+MuonTruthSummaryAlg::MuonTruthSummaryAlg(const std::string& name, ISvcLocator* pSvcLocator) : 
+  AthAlgorithm( name, pSvcLocator ) {
 }
 
-
-MuonTruthSummaryAlg::~MuonTruthSummaryAlg() {}
-
-
 StatusCode MuonTruthSummaryAlg::initialize() {
   ATH_MSG_INFO ("Initializing " << name() << "...");
   if( m_truthSummaryTool.retrieve().isFailure()){
@@ -33,12 +22,6 @@ StatusCode MuonTruthSummaryAlg::initialize() {
   return StatusCode::SUCCESS;
 }
 
-StatusCode MuonTruthSummaryAlg::finalize() {
-  ATH_MSG_INFO ("Finalizing " << name() << "...");
-
-  return StatusCode::SUCCESS;
-}
-
 StatusCode MuonTruthSummaryAlg::execute() {  
   ATH_MSG_DEBUG ("Executing " << name() << "...");
 
@@ -59,14 +42,6 @@ StatusCode MuonTruthSummaryAlg::execute() {
     }
   }
 
-//  const xAOD::TrackParticleContainer* trackPs = 0;
-//  if (evtStore()->retrieve(trackPs, m_msTrackletContainerName).isSuccess()){
-//    for (auto trkP : *trackPs) {
-//        m_truthSummaryTool->add(*trkP,4);
-//    }
-//  }
-
-  //ATH_MSG_VERBOSE(m_truthSummaryTool->printSummary());
   return StatusCode::SUCCESS;
 }
 
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.h b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.h
index e85c560f587cb961c2f8e1d3d6afc2850ff9b1c9..d5c8dc975443ea537e2562926fe5eee78e8b6671 100644
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.h
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.h
@@ -1,30 +1,31 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef MUONTRUTHALGS_MUONTRUTHSUMMARYALGS_H
 #define MUONTRUTHALGS_MUONTRUTHSUMMARYALGS_H
 
 #include "AthenaBaseComps/AthAlgorithm.h"
-#include <string>
 #include "GaudiKernel/ToolHandle.h"
+
 #include "MuonRecToolInterfaces/IMuonTruthSummaryTool.h"
 
+#include <string>
 
-class MuonTruthSummaryAlg: public ::AthAlgorithm {
+class MuonTruthSummaryAlg: public AthAlgorithm {
  public:
   MuonTruthSummaryAlg( const std::string& name, ISvcLocator* pSvcLocator );
-  virtual ~MuonTruthSummaryAlg();
+  virtual ~MuonTruthSummaryAlg()=default;
 
-  virtual StatusCode  initialize();
-  virtual StatusCode  execute();
-  virtual StatusCode  finalize();
+  virtual StatusCode initialize();
+  virtual StatusCode execute();
 
  private:
-   std::string                                      m_segmentContainerName;
-   std::string                                      m_msTracksContainerName;
-   std::string                                      m_msTrackletContainerName;
-   ToolHandle<Muon::IMuonTruthSummaryTool>          m_truthSummaryTool;
+   ToolHandle<Muon::IMuonTruthSummaryTool> m_truthSummaryTool{this,"MuonTruthSummaryTool","MuonTruthSummaryTool"};
+
+   Gaudi::Property<std::string> m_segmentContainerName{this,"SegmentContainerName","MuonSegments"};
+   Gaudi::Property<std::string> m_msTracksContainerName{this,"MSTracksContainerName","MuonSpectrometerTracks"};
+   Gaudi::Property<std::string> m_msTrackletContainerName{this,"MSTrackletsContainerName","MSonlyTracklets"};
 };
 
 #endif //> !MUONTRUTHALGS_MUONTRUTHSUMMARYALGS_H