diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/MuonTGC_CnvTools/ITgcPrepDataReplicationTool.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/MuonTGC_CnvTools/ITgcPrepDataReplicationTool.h
index fdec761197526cc800d928cc7ee4689bfc6d5021..599ea1022ecd70203a2a63b698039052198d6324 100644
--- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/MuonTGC_CnvTools/ITgcPrepDataReplicationTool.h
+++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/MuonTGC_CnvTools/ITgcPrepDataReplicationTool.h
@@ -1,23 +1,21 @@
 /*
-  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 MUONTGC_CNVTOOL_ITGCPREPDATAREPLICATIONTOOL_H
 #define MUONTGC_CNVTOOL_ITGCPREPDATAREPLICATIONTOOL_H
 
 #include "GaudiKernel/IAlgTool.h"
-
-static const InterfaceID IID_ITgcPrepDataReplicationTool("Muon::ITgcPrepDataReplicationTool", 1, 0);
+#include "CxxUtils/checker_macros.h"
 
 namespace Muon {
 
-  class ITgcPrepDataReplicationTool : virtual public IAlgTool  {
+  class ATLAS_NOT_THREAD_SAFE ITgcPrepDataReplicationTool : virtual public IAlgTool  {
 
-  public: 
-    /** Provide interface ID of ITgcPrepDataReplicationTool */
-    static const InterfaceID& interfaceID() { return IID_ITgcPrepDataReplicationTool; };
+  public:
+    DeclareInterfaceID( ITgcPrepDataReplicationTool, 1, 0 );
 
-    virtual StatusCode replicate()=0;
+    virtual StatusCode replicate() const = 0;
   }; 
 
 } // end of namespace
diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationAlg.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationAlg.h
index 513e6b2070b2876d505627f68f20846bb5a4317e..66976ee330eb5c7eafe7e0a9537bfd1530823cd1 100644
--- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationAlg.h
+++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationAlg.h
@@ -1,5 +1,5 @@
 /*
-  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 TgcPrepDataReplicationAlg_h
@@ -8,11 +8,12 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "MuonTGC_CnvTools/ITgcPrepDataReplicationTool.h"
+#include "CxxUtils/checker_macros.h"
 
 namespace Muon 
 {
 
-  class TgcPrepDataReplicationAlg:public AthAlgorithm
+  class ATLAS_NOT_THREAD_SAFE TgcPrepDataReplicationAlg:public AthAlgorithm
   {
   public:
     TgcPrepDataReplicationAlg(const std::string& name, ISvcLocator* pSvcLocator); // Constructor
diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool.cxx
index 48d8d1a0b26cc2dae313a4be39cd92cc08534f41..7695ff270d6f4a409a1e480a0407dc8178859961 100644
--- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool.cxx
@@ -11,7 +11,7 @@
 //================ Constructor =================================================
 Muon::TgcPrepDataReplicationTool::TgcPrepDataReplicationTool
   (const std::string& t, const std::string& n, const IInterface* p)
-  : AthAlgTool(t, n, p)
+  : base_class(t, n, p)
 {
   for(int ibc = 0; ibc < BC_NUM; ibc++) m_tgcPrepDataContainer[ibc] = 0;
 }  
@@ -51,7 +51,7 @@ StatusCode Muon::TgcPrepDataReplicationTool::finalize()
 
 
 //================ Decoding ====================================================
-StatusCode Muon::TgcPrepDataReplicationTool::replicate()
+StatusCode Muon::TgcPrepDataReplicationTool::replicate() const
 {
   bool hasContainer[BC_NUM] = {false}; 
   ATH_MSG_VERBOSE("replicate");
@@ -82,7 +82,7 @@ StatusCode Muon::TgcPrepDataReplicationTool::replicate()
 }
 
 
-StatusCode Muon::TgcPrepDataReplicationTool::convertAllBCto3BC()
+StatusCode Muon::TgcPrepDataReplicationTool::convertAllBCto3BC() const
 {
 
   const Muon::TgcPrepDataContainer* tgcAll = 0;
@@ -151,7 +151,7 @@ StatusCode Muon::TgcPrepDataReplicationTool::convertAllBCto3BC()
 }
 
 
-StatusCode Muon::TgcPrepDataReplicationTool::convert3BCtoAllBC()
+StatusCode Muon::TgcPrepDataReplicationTool::convert3BCtoAllBC() const
 {
   // cleanup
   m_tgcPrepDataContainer[BC_ALL]->cleanup();
@@ -226,7 +226,7 @@ StatusCode Muon::TgcPrepDataReplicationTool::convert3BCtoAllBC()
 
 
 Muon::TgcPrepData*
-Muon::TgcPrepDataReplicationTool::makeTgcPrepData(Muon::TgcPrepDataCollection::const_iterator itr, uint16_t bcBitMap)
+Muon::TgcPrepDataReplicationTool::makeTgcPrepData(Muon::TgcPrepDataCollection::const_iterator itr, uint16_t bcBitMap) const
 {
   Identifier channelId = (*itr)->identify();
   IdentifierHash tgcHashId = (*itr)->collectionHash();
@@ -242,18 +242,3 @@ Muon::TgcPrepDataReplicationTool::makeTgcPrepData(Muon::TgcPrepDataCollection::c
 
   return newPrepData;
 }
-
-
-
-
-StatusCode Muon::TgcPrepDataReplicationTool::queryInterface(const InterfaceID& riid, void** ppvIf) {
-  ATH_MSG_DEBUG("queryInterface()");
-  if(ITgcPrepDataReplicationTool::interfaceID().versionMatch(riid)) {
-    *ppvIf = dynamic_cast<ITgcPrepDataReplicationTool*>(this);
-    addRef();
-    ATH_MSG_DEBUG("InterfaceID successfully matched with ITgcPrepDataReplicationTool one.");
-    return StatusCode::SUCCESS;
-  }
-
-  return AthAlgTool::queryInterface(riid, ppvIf);
-}
diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool.h
index 99f0f0dc1db70fcbbdd75a662ef240032d1c3edd..a55f00cb570493fe2fdd3ad8c361d7228d1f8ee5 100644
--- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool.h
+++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool.h
@@ -11,11 +11,12 @@
 
 #include "MuonPrepRawData/TgcPrepDataContainer.h"
 #include "MuonIdHelpers/IMuonIdHelperSvc.h"
+#include "CxxUtils/checker_macros.h"
 
 namespace Muon 
 {
-  class TgcPrepDataReplicationTool 
-    : virtual public ITgcPrepDataReplicationTool, virtual public AthAlgTool
+  class ATLAS_NOT_THREAD_SAFE TgcPrepDataReplicationTool 
+    : public extends<AthAlgTool, ITgcPrepDataReplicationTool>
   {
     public:
       /** Constructor */
@@ -24,17 +25,11 @@ namespace Muon
       /** Destructor */
       virtual ~TgcPrepDataReplicationTool()=default;
 
-      /** Provide InterfaceID */
-      static const InterfaceID& interfaceID() { return ITgcPrepDataReplicationTool::interfaceID(); };
-
-      /** Query interface */
-      virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvIF);
-
-      virtual StatusCode initialize();
-      virtual StatusCode finalize();
-      virtual StatusCode replicate();
-      virtual StatusCode convert3BCtoAllBC();
-      virtual StatusCode convertAllBCto3BC();
+      virtual StatusCode initialize() override;
+      virtual StatusCode finalize() override;
+      virtual StatusCode replicate() const override;
+      virtual StatusCode convert3BCtoAllBC() const;
+      virtual StatusCode convertAllBCto3BC() const;
       
     private:
       enum {BC_PREVIOUS=0, BC_CURRENT, BC_NEXT, BC_ALL, BC_NUM};
@@ -45,7 +40,7 @@ namespace Muon
       TgcPrepDataContainer* m_tgcPrepDataContainer[BC_NUM];
 
       /** Make new TgcPrepData */
-      TgcPrepData* makeTgcPrepData(TgcPrepDataCollection::const_iterator itr, uint16_t bcBitMap);
+      TgcPrepData* makeTgcPrepData(TgcPrepDataCollection::const_iterator itr, uint16_t bcBitMap) const;
 
    }; 
 } // end of namespace
diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool3BCtoAllBC.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool3BCtoAllBC.cxx
index 41e840aa2b208cddf36f66af7269064c33c07fbb..d9f1b69a44a35379ab0520d26666c95e6d9dc45b 100644
--- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool3BCtoAllBC.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool3BCtoAllBC.cxx
@@ -12,7 +12,7 @@
 //================ Constructor =================================================
 Muon::TgcPrepDataReplicationTool3BCtoAllBC::TgcPrepDataReplicationTool3BCtoAllBC 
   (const std::string& t, const std::string& n, const IInterface* p)
-  : AthAlgTool(t, n, p),
+  : base_class(t, n, p),
   m_3BCKeys{"dummy", "dummy", "dummy"},
   m_AllBCKey("TGC_MeasurementsAllBCs")
 {
@@ -40,12 +40,12 @@ StatusCode Muon::TgcPrepDataReplicationTool3BCtoAllBC::initialize()
   return StatusCode::SUCCESS;
 }
 
-StatusCode Muon::TgcPrepDataReplicationTool3BCtoAllBC::replicate()
+StatusCode Muon::TgcPrepDataReplicationTool3BCtoAllBC::replicate() const
 {
     return convert3BCtoAllBC();
 }
 
-StatusCode Muon::TgcPrepDataReplicationTool3BCtoAllBC::convert3BCtoAllBC()
+StatusCode Muon::TgcPrepDataReplicationTool3BCtoAllBC::convert3BCtoAllBC() const
 {
 
   SG::WriteHandle<TgcPrepDataContainer> tgcPrepDataContainerAll(m_AllBCKey);
@@ -107,16 +107,3 @@ StatusCode Muon::TgcPrepDataReplicationTool3BCtoAllBC::convert3BCtoAllBC()
   return StatusCode::SUCCESS;
 }
 
-StatusCode Muon::TgcPrepDataReplicationTool3BCtoAllBC::queryInterface(const InterfaceID& riid, void** ppvIf) {
-  ATH_MSG_DEBUG("queryInterface()");
-  if(ITgcPrepDataReplicationTool::interfaceID().versionMatch(riid)) {
-    *ppvIf = dynamic_cast<ITgcPrepDataReplicationTool*>(this);
-    addRef();
-    ATH_MSG_DEBUG("InterfaceID successfully matched with ITgcPrepDataReplicationTool one.");
-    return StatusCode::SUCCESS;
-  }
-
-  return AthAlgTool::queryInterface(riid, ppvIf);
-}
-
-
diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool3BCtoAllBC.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool3BCtoAllBC.h
index 34d5d3baf7a9e8359dc53e4bfc1cd43eb9f91f85..ef32e05dee3566b2f7a085d0edc1f6b229ef4a57 100644
--- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool3BCtoAllBC.h
+++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationTool3BCtoAllBC.h
@@ -11,11 +11,12 @@
 
 #include "MuonPrepRawData/TgcPrepDataContainer.h"
 #include "MuonIdHelpers/IMuonIdHelperSvc.h"
+#include "CxxUtils/checker_macros.h"
 
 namespace Muon 
 {
-  class TgcPrepDataReplicationTool3BCtoAllBC 
-    : virtual public ITgcPrepDataReplicationTool, virtual public AthAlgTool
+  class ATLAS_NOT_THREAD_SAFE TgcPrepDataReplicationTool3BCtoAllBC 
+    : public extends<AthAlgTool, ITgcPrepDataReplicationTool>
   {
     public:
       /** Constructor */
@@ -24,15 +25,9 @@ namespace Muon
       /** Destructor */
       virtual ~TgcPrepDataReplicationTool3BCtoAllBC()=default;
 
-      /** Provide InterfaceID */
-      static const InterfaceID& interfaceID() { return ITgcPrepDataReplicationTool::interfaceID(); };
-
-      /** Query interface */
-      virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvIF) override;
-
       virtual StatusCode initialize() override;
-      virtual StatusCode replicate() override;
-      StatusCode convert3BCtoAllBC();
+      virtual StatusCode replicate() const override;
+      StatusCode convert3BCtoAllBC() const;
 
       
     private:
diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationToolAllBCto3BC.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationToolAllBCto3BC.cxx
index 0a78da92a2feeb0c9b8b12ff68cede13323039e6..5ef5a42173e8fd8e124c83c971b8e22a9c2a4348 100644
--- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationToolAllBCto3BC.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationToolAllBCto3BC.cxx
@@ -13,7 +13,7 @@
 //================ Constructor =================================================
 Muon::TgcPrepDataReplicationToolAllBCto3BC::TgcPrepDataReplicationToolAllBCto3BC 
   (const std::string& t, const std::string& n, const IInterface* p)
-  : AthAlgTool(t, n, p),
+  : base_class(t, n, p),
   m_3BCKeys{"dummy", "dummy", "dummy"},
   m_AllBCKey("TGC_MeasurementsAllBCs")
 {
@@ -41,12 +41,12 @@ StatusCode Muon::TgcPrepDataReplicationToolAllBCto3BC::initialize()
   return StatusCode::SUCCESS;
 }
 
-StatusCode Muon::TgcPrepDataReplicationToolAllBCto3BC::replicate()
+StatusCode Muon::TgcPrepDataReplicationToolAllBCto3BC::replicate() const
 {
     return convertAllBCto3BC();
 }
 
-StatusCode Muon::TgcPrepDataReplicationToolAllBCto3BC::convertAllBCto3BC()
+StatusCode Muon::TgcPrepDataReplicationToolAllBCto3BC::convertAllBCto3BC() const
 {
 
   SG::ReadHandle<TgcPrepDataContainer> tgcAll(m_AllBCKey);
@@ -118,20 +118,3 @@ Muon::TgcPrepDataReplicationToolAllBCto3BC::makeTgcPrepData(Muon::TgcPrepDataCol
 
   return newPrepData;
 }
-
-
-
-
-StatusCode Muon::TgcPrepDataReplicationToolAllBCto3BC::queryInterface(const InterfaceID& riid, void** ppvIf) {
-  ATH_MSG_DEBUG("queryInterface()");
-  if(ITgcPrepDataReplicationTool::interfaceID().versionMatch(riid)) {
-    *ppvIf = dynamic_cast<ITgcPrepDataReplicationTool*>(this);
-    addRef();
-    ATH_MSG_DEBUG("InterfaceID successfully matched with ITgcPrepDataReplicationTool one.");
-    return StatusCode::SUCCESS;
-  }
-
-  return AthAlgTool::queryInterface(riid, ppvIf);
-}
-
-
diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationToolAllBCto3BC.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationToolAllBCto3BC.h
index a3d6a0efc5a3aaf69ebcbed3fb54761a51eb181b..f2582e8e63ecb5fc7c88be9003aed0e9db3f9ddd 100644
--- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationToolAllBCto3BC.h
+++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcPrepDataReplicationToolAllBCto3BC.h
@@ -11,11 +11,12 @@
 
 #include "MuonPrepRawData/TgcPrepDataContainer.h"
 #include "MuonIdHelpers/IMuonIdHelperSvc.h"
+#include "CxxUtils/checker_macros.h"
 
 namespace Muon 
 {
-  class TgcPrepDataReplicationToolAllBCto3BC 
-    : virtual public ITgcPrepDataReplicationTool, virtual public AthAlgTool
+  class ATLAS_NOT_THREAD_SAFE TgcPrepDataReplicationToolAllBCto3BC 
+    : public extends<AthAlgTool, ITgcPrepDataReplicationTool>
   {
     public:
       /** Constructor */
@@ -24,15 +25,9 @@ namespace Muon
       /** Destructor */
       virtual ~TgcPrepDataReplicationToolAllBCto3BC()=default;
 
-      /** Provide InterfaceID */
-      static const InterfaceID& interfaceID() { return ITgcPrepDataReplicationTool::interfaceID(); };
-
-      /** Query interface */
-      virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvIF) override;
-
       virtual StatusCode initialize() override;
-      virtual StatusCode replicate() override;
-      StatusCode convertAllBCto3BC();
+      virtual StatusCode replicate() const override;
+      StatusCode convertAllBCto3BC() const;
       
 /** Make new TgcPrepData */ //Static to avoid code duplication with sister class
       static TgcPrepData* makeTgcPrepData(TgcPrepDataCollection::const_iterator itr, uint16_t bcBitMap);