diff --git a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.icc b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.icc
index 6bf443e9634c14132575b08515221a14791323f3..d263f8752012d1a6ddaf6b5d6694c270d64dc9fc 100755
--- a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.icc
+++ b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.icc
@@ -262,7 +262,7 @@ inline GeoMMHit::GeoMMHit (const MMSimHit & h) {
 inline Amg::Vector3D GeoMMHit::getGlobalPosition() const {
 
     HitID hitid = m_hit->MMId();
-    MM_SimIdToOfflineId simToOffline(*s_mmID);
+    MM_SimIdToOfflineId simToOffline(s_mmID);
     Identifier offid = simToOffline.convert(hitid);
   
     if (offid == 0)
@@ -285,7 +285,7 @@ inline Amg::Vector3D GeoMMHit::getGlobalPosition() const {
 inline Amg::Vector3D GeoMMHit::getTrkGlobalPosition() const {
 
     HitID hitid = m_hit->MMId();
-    MM_SimIdToOfflineId simToOffline(*s_mmID);
+    MM_SimIdToOfflineId simToOffline(s_mmID);
     Identifier offid = simToOffline.convert(hitid);
   
     if (offid == 0)
@@ -309,7 +309,7 @@ inline Amg::Vector3D GeoMMHit::getTrkLocalPosition() const {
 
 
     HitID hitid = m_hit->MMId();
-    MM_SimIdToOfflineId simToOffline(*s_mmID);
+    MM_SimIdToOfflineId simToOffline(s_mmID);
     Identifier offid = simToOffline.convert(hitid);
   
     if (offid == 0)
@@ -346,7 +346,7 @@ inline GeosTGCHit::GeosTGCHit (const sTGCSimHit & h) {
 inline Amg::Vector3D GeosTGCHit::getGlobalPosition() const {
 
     HitID hitid = m_hit->sTGCId();
-    sTgcSimIdToOfflineId simToOffline(*s_stgcID);
+    sTgcSimIdToOfflineId simToOffline(s_stgcID);
     Identifier offid = simToOffline.convert(hitid);
   
     if (offid == 0)
diff --git a/MuonSpectrometer/MuonConditions/MuonCondCabling/MDT_CondCabling/MDT_CondCabling/MDTCablingDbTool.h b/MuonSpectrometer/MuonConditions/MuonCondCabling/MDT_CondCabling/MDT_CondCabling/MDTCablingDbTool.h
index 4bbc7765f4cc88526c7cca0ce02f7425f03aa301..948a1b3f20e665c2230d547d4fe0472915d905ac 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondCabling/MDT_CondCabling/MDT_CondCabling/MDTCablingDbTool.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondCabling/MDT_CondCabling/MDT_CondCabling/MDTCablingDbTool.h
@@ -1,28 +1,24 @@
 /*
-  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 MDT_CONDCABLING_MDTCABLINGDBTOOL_H
 #define MDT_CONDCABLING_MDTCABLINGDBTOOL_H
 
-#include "GaudiKernel/AlgTool.h"
 #include "MuonCondInterface/IMDTCablingDbTool.h"
+#include "AthenaBaseComps/AthAlgTool.h"
+#include "GaudiKernel/ServiceHandle.h"
+
 #include "GaudiKernel/IChronoStatSvc.h"
 #include "MuonCablingData/MuonMDT_CablingMap.h"
 #include "AthenaKernel/IIOVDbSvc.h"
-#include "GaudiKernel/MsgStream.h"
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "MuonIdHelpers/MuonIdHelperTool.h"
-#include "GaudiKernel/ToolHandle.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
+
+#include <string>
 
-class Identifier; 
 class IIOVSvc;
-class IIOVDbSvc;
-class StatusCode;
-class MuonMDT_CablingMap;
 
-class MDTCablingDbTool: public AthAlgTool, public IMDTCablingDbTool
-{
+class MDTCablingDbTool: public AthAlgTool, public IMDTCablingDbTool {
 
 public:    
 
@@ -40,25 +36,15 @@ public:
 
   virtual std::string mapFolderName() const {return m_mapFolder;}
   virtual std::string mezzanineFolderName() const {return m_mezzanineFolder;}
-    
- 
-
-  //  MuonMDT_CablingMap* getMap() {return m_cablingData;} 
 
  private: 
-
-
- 
   virtual StatusCode loadParameters(IOVSVC_CALLBACK_ARGS);
   virtual StatusCode loadMezzanine(IOVSVC_CALLBACK_ARGS);
   virtual StatusCode loadMDTMap(IOVSVC_CALLBACK_ARGS);
-  
-      
 
   IIOVSvc* m_IOVSvc;
   IIOVDbSvc* m_IOVDbSvc;
-  ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-    "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
+  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
 
   MuonMDT_CablingMap* m_cablingData; 
   std::string      m_DataLocation;
diff --git a/MuonSpectrometer/MuonConditions/MuonCondCabling/MDT_CondCabling/src/MDTCablingDbTool.cxx b/MuonSpectrometer/MuonConditions/MuonCondCabling/MDT_CondCabling/src/MDTCablingDbTool.cxx
index d3d73c971ac7db8884cadec6f35ed7b8420aa188..7caceae679383e1244166a204a69cb762bd8898b 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondCabling/MDT_CondCabling/src/MDTCablingDbTool.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondCabling/MDT_CondCabling/src/MDTCablingDbTool.cxx
@@ -1,34 +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
 */
 
-#include "GaudiKernel/MsgStream.h"
+#include "MDT_CondCabling/MDTCablingDbTool.h" 
 
 #include "SGTools/TransientAddress.h"
 #include "CoralBase/Attribute.h"
 #include "CoralBase/AttributeListSpecification.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
-
-#include "Identifier/IdentifierHash.h"
-#include "MuonIdHelpers/MdtIdHelper.h"
 #include "PathResolver/PathResolver.h"
+#include "MuonCondSvc/MdtStringUtils.h"
 
+#include <map>
 #include <fstream>
 #include <string>
 #include <stdlib.h>
 
-#include "MuonCablingData/MuonMDT_CablingMap.h"
-
-#include "MDT_CondCabling/MDTCablingDbTool.h" 
-#include "MuonCondInterface/IMDTCablingDbTool.h"
-#include "MuonCondSvc/MdtStringUtils.h"
-//#include "AthenaKernel/IIOVDbSvc.h"
-
-
-#include <map>
-#include "Identifier/Identifier.h"
-
 //**********************************************************
 //* Author Monica Verducci monica.verducci@cern.ch
 //*
@@ -37,25 +25,14 @@
 //* retrieving of two tables from DB
 //*********************************************************
 
-
-MDTCablingDbTool::MDTCablingDbTool (const std::string& type,
-                             const std::string& name,
-                             const IInterface* parent)
-  : AthAlgTool(type, name, parent)
-{
-
+MDTCablingDbTool::MDTCablingDbTool (const std::string& type, const std::string& name, const IInterface* parent) :
+  AthAlgTool(type, name, parent) {
   declareInterface<IMDTCablingDbTool>(this);
-
-
   m_DataLocation="keyMDT";
-  
-
-
   declareProperty("MezzanineFolders",  m_mezzanineFolder="/MDT/CABLING/MEZZANINE_SCHEMA");
   declareProperty("MapFolders",  m_mapFolder="/MDT/CABLING/MAP_SCHEMA");
 }
 
-//StatusCode MDTCablingDbTool::updateAddress(SG::TransientAddress* tad)
 StatusCode MDTCablingDbTool::updateAddress(StoreID::type /*storeID*/,
                                            SG::TransientAddress* tad,
                                            const EventContext& /*ctx*/)
@@ -75,9 +52,9 @@ StatusCode MDTCablingDbTool::updateAddress(StoreID::type /*storeID*/,
 
 StatusCode MDTCablingDbTool::initialize()
 { 
-  ATH_MSG_VERBOSE( "Initializing "  );
+  ATH_MSG_VERBOSE("Initializing ");
  
-  ATH_CHECK( m_muonIdHelperTool.retrieve() );
+  ATH_CHECK(m_idHelperSvc.retrieve());
 
   m_IOVSvc = 0;
   bool CREATEIF(true);
@@ -110,12 +87,10 @@ StatusCode MDTCablingDbTool::initialize()
 
 
    IAddressProvider* addp = this;
-   //   tad->setProvider(addp);
    proxy->setProvider(addp, StoreID::DETECTOR_STORE);
    ATH_MSG_VERBOSE( "set address provider for CABLING Container"  );
     
    return StatusCode::SUCCESS;
-
 }
 
 
@@ -261,7 +236,7 @@ StatusCode MDTCablingDbTool::loadMDTMap(IOVSVC_CALLBACK_ARGS_P(/*I*/,/*keys*/))
       stationNameString = "BOL";
     }
     if (stationNameString == "BMG") BMGchamberadded = true;    
-    int stationIndex = m_muonIdHelperTool->mdtIdHelper().stationNameIndex(stationNameString);
+    int stationIndex = m_idHelperSvc->mdtIdHelper().stationNameIndex(stationNameString);
     ATH_MSG_VERBOSE( "station name: " << stationNameString << " index: " << stationIndex  );
     
     // convert the subdetector id to integer
@@ -319,9 +294,9 @@ StatusCode MDTCablingDbTool::loadMDTMap(IOVSVC_CALLBACK_ARGS_P(/*I*/,/*keys*/))
     
   }
 
-  if(m_muonIdHelperTool->mdtIdHelper().stationNameIndex("BMG") != -1 && !BMGchamberadded) {
+  if(m_idHelperSvc->mdtIdHelper().stationNameIndex("BMG") != -1 && !BMGchamberadded) {
     ATH_MSG_WARNING( "Running a layout including BMG chambers, but missing them in cabling from conditions --> hard-coding BMG cabling."  );
-    int stationIndex = m_muonIdHelperTool->mdtIdHelper().stationNameIndex("BMG");
+    int stationIndex = m_idHelperSvc->mdtIdHelper().stationNameIndex("BMG");
 
     // BMG1A12 ---------------- mezzanine_type, stationIndex, eta, phi, multilayer, layer,   tube, subdetectorId, mrod, csm, tdcId, channelId
     for(int i=0; i<9; i++) // ML1
diff --git a/MuonSpectrometer/MuonConditions/MuonCondCabling/RPC_CondCabling/RPC_CondCabling/RPCCablingDbTool.h b/MuonSpectrometer/MuonConditions/MuonCondCabling/RPC_CondCabling/RPC_CondCabling/RPCCablingDbTool.h
index 9070c769eb14c38c6df658c497a31165ebf38460..b21416e4201c2f76afecd2e9bead89d0fc1e9abb 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondCabling/RPC_CondCabling/RPC_CondCabling/RPCCablingDbTool.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondCabling/RPC_CondCabling/RPC_CondCabling/RPCCablingDbTool.h
@@ -1,24 +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 MUONCONDTOOL_RPCCABLINGDBTOOL_H
 #define MUONCONDTOOL_RPCCABLINGDBTOOL_H
 
-#include "GaudiKernel/AlgTool.h"
-#include "GaudiKernel/ToolHandle.h"
 #include "MuonCondInterface/IRPCCablingDbTool.h"
-#include "GaudiKernel/IChronoStatSvc.h"
-
 #include "AthenaBaseComps/AthAlgTool.h"
 
-#include "MuonIdHelpers/MuonIdHelperTool.h"
+#include "GaudiKernel/IChronoStatSvc.h"
 
-class Identifier; 
+#include <string>
 
 class IIOVSvc;
-class StatusCode;
-
 
 class RPCCablingDbTool: public AthAlgTool, public IRPCCablingDbTool
 {
@@ -45,18 +39,10 @@ public:
   virtual StatusCode loadParameters(IOVSVC_CALLBACK_ARGS);
   virtual StatusCode loadRPCMap(IOVSVC_CALLBACK_ARGS);
   virtual StatusCode loadRPCCorr(IOVSVC_CALLBACK_ARGS);
-   
-
- private: 
-
 
-
-    
+ private:
   IIOVSvc* m_IOVSvc;
 
-  ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-    "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
-
   std::string      m_DataLocation;
   
   std::string     m_mapFolder;
@@ -71,10 +57,6 @@ public:
   std::string m_chrono2;
   std::string m_chrono3;
   std::string m_chrono4;
-
-
 };
- 
-
 
 #endif
diff --git a/MuonSpectrometer/MuonConditions/MuonCondCabling/RPC_CondCabling/src/RPCCablingDbTool.cxx b/MuonSpectrometer/MuonConditions/MuonCondCabling/RPC_CondCabling/src/RPCCablingDbTool.cxx
index 0d2dce23320bbf8cf3dde9260941fda0bbbf3dfa..2f26fc437967bf5b1b5083502237c742146b96e5 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondCabling/RPC_CondCabling/src/RPCCablingDbTool.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondCabling/RPC_CondCabling/src/RPCCablingDbTool.cxx
@@ -1,32 +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
 */
 
-#include "GaudiKernel/MsgStream.h"
+#include "RPC_CondCabling/RPCCablingDbTool.h" 
 
 #include "SGTools/TransientAddress.h"
 #include "CoralBase/Attribute.h"
 #include "CoralBase/AttributeListSpecification.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
-
 #include "Identifier/IdentifierHash.h"
-
-#include "MuonIdHelpers/RpcIdHelper.h"
+#include "Identifier/Identifier.h"
 #include "PathResolver/PathResolver.h"
 
 #include <fstream>
 #include <string>
 #include <stdlib.h>
-
-
-
-#include "RPC_CondCabling/RPCCablingDbTool.h" 
-#include "MuonCondInterface/IRPCCablingDbTool.h"
-
-
 #include <map>
-#include "Identifier/Identifier.h"
 
 //**********************************************************
 //* Author Monica Verducci monica.verducci@cern.ch
@@ -37,95 +27,42 @@
 //*********************************************************
 
 
-RPCCablingDbTool::RPCCablingDbTool (const std::string& type,
-                             const std::string& name,
-                             const IInterface* parent)
-  : AthAlgTool(type, name, parent)  
-{
-
+RPCCablingDbTool::RPCCablingDbTool (const std::string& type, const std::string& name, const IInterface* parent) :
+  AthAlgTool(type, name, parent) {
   declareInterface<IRPCCablingDbTool>(this);
-
-
   m_DataLocation="keyRPC";
-  
   declareProperty("MapConfigurationFolder",  m_mapFolder="/RPC/CABLING/MAP_SCHEMA");
   declareProperty("MapCorrectionFolder",     m_corrFolder="/RPC/CABLING/MAP_SCHEMA_CORR");
   m_map ="";
   m_corr="";
-  
 }
 
-//StatusCode RPCCablingDbTool::updateAddress(SG::TransientAddress* /*tad*/)
 StatusCode RPCCablingDbTool::updateAddress(StoreID::type /*storeID*/,
                                            SG::TransientAddress* /*tad*/,
                                            const EventContext& /*ctx*/)
 {
-    MsgStream log(msgSvc(), name());
-    //CLID clid        = tad->clID();
-    //std::string key  = tad->name();
-    //    if ( == clid && m_DataLocation == key)
-    //{
-    //    log << MSG::DEBUG << "OK " << endmsg;
-    //    return StatusCode::SUCCESS;
-    //}
     return StatusCode::FAILURE;
 }
 
-
-
-
 StatusCode RPCCablingDbTool::initialize()
 { 
-  MsgStream log(msgSvc(), name());
-  log << MSG::INFO << "Initializing - folders names are: conf "<<m_mapFolder <<" / corr "<<m_corrFolder<< endmsg;
-   				    
-
-  ATH_CHECK( m_muonIdHelperTool.retrieve() );
-
+  ATH_MSG_INFO("Initializing - folders names are: conf "<<m_mapFolder <<" / corr "<<m_corrFolder);
   // Get interface to IOVSvc
   m_IOVSvc = 0;
   bool CREATEIF(true);
-  StatusCode sc = service( "IOVSvc", m_IOVSvc, CREATEIF );
-  if ( sc.isFailure() )
-  {
-       log << MSG::ERROR << "Unable to get the IOVSvc" << endmsg;
-       return StatusCode::FAILURE;
-  }
-
-  if(sc.isFailure()) return StatusCode::FAILURE;
-
-
+  ATH_CHECK(service( "IOVSvc", m_IOVSvc, CREATEIF));
 
   // initialize the chrono service
-  sc = service("ChronoStatSvc",m_chronoSvc);
-  if (sc != StatusCode::SUCCESS) {
-    log << MSG::ERROR << "Could not find the ChronoSvc" << endmsg;
-    return sc;
-  }
-
- 
-//   const DataHandle<CondAttrListCollection> MapData;
-//   sc=detStore()->regFcn(&IRPCCablingDbTool::loadRPCMap,
-// 			dynamic_cast<IRPCCablingDbTool*>(this),
-// 			MapData, m_mapFolder);
-  
-  if(sc.isFailure()) return StatusCode::FAILURE;
-  
-  
-
-
-   return StatusCode::SUCCESS;
-
+  ATH_CHECK(service("ChronoStatSvc",m_chronoSvc));
+  return StatusCode::SUCCESS;
 }
 
 
 StatusCode RPCCablingDbTool::loadParameters(IOVSVC_CALLBACK_ARGS_P(I,keys))
-{
-  MsgStream log(msgSvc(), name());
-  
+{  
   std::list<std::string>::const_iterator itr;
   for (itr=keys.begin(); itr!=keys.end(); ++itr) {
-    log << MSG::INFO <<"LoadParameters "<< *itr << " I="<<I<<" "<<endmsg;
+    ATH_MSG_INFO("LoadParameters "<< *itr << " I="<<I<<" ");
     if(*itr==m_mapFolder) {
         StatusCode sc = loadRPCMap(I,keys);
         if (sc.isFailure())
@@ -149,40 +86,30 @@ StatusCode RPCCablingDbTool::loadParameters(IOVSVC_CALLBACK_ARGS_P(I,keys))
 
 StatusCode RPCCablingDbTool::loadRPCMap(IOVSVC_CALLBACK_ARGS_P(/*I*/,/*keys*/)) 
 {
-  MsgStream log(msgSvc(), name());
-  StatusCode sc=StatusCode::SUCCESS;
-  log << MSG::INFO << "loadRPCMap --- Load Map from DB" << endmsg;
-  
-  const CondAttrListCollection * atrc;
-  log << MSG::INFO << "Try to read from folder <"<<m_mapFolder<<">"<<endmsg;
+  ATH_MSG_INFO("loadRPCMap --- Load Map from DB");
   
-  sc=detStore()->retrieve(atrc,m_mapFolder);
-  if(sc.isFailure())  {
-    log << MSG::ERROR 
-	<< "could not retreive the CondAttrListCollection from DB folder " 
-	<< m_mapFolder << endmsg;
-    return sc;
-  }
+  const CondAttrListCollection* atrc=nullptr;
+  ATH_MSG_INFO("Try to read from folder <"<<m_mapFolder<<">");
   
-  else
-       log<<MSG::INFO<<" CondAttrListCollection from DB folder have been obtained with size "<< atrc->size() <<endmsg;
+  ATH_CHECK(detStore()->retrieve(atrc,m_mapFolder));
+  ATH_MSG_INFO(" CondAttrListCollection from DB folder have been obtained with size "<< atrc->size());
   
  
   CondAttrListCollection::const_iterator itr;
   int ic=0;
   for (itr = atrc->begin(); itr != atrc->end(); ++itr) {
       ic++;
-      log << MSG::INFO << "Loop over CondAttrListCollection ic = "<<ic<<endmsg;
+      ATH_MSG_DEBUG("Loop over CondAttrListCollection ic = "<<ic);
     const coral::AttributeList& atr=itr->second;
     
     // store configuration map in private member RPCConfMap
     m_map = *(static_cast<const std::string*>((atr["Map"]).addressOfData()));    
     
-    log << MSG::VERBOSE << "Sequence load is \n" << m_map <<endmsg;
-    log <<"End of Sequence load"<<endmsg;
+    ATH_MSG_VERBOSE("Sequence load is \n" << m_map);
+    ATH_MSG_VERBOSE("End of Sequence load");
 
   }
-  log<< MSG::INFO<<"After Reading folder, Configuration string size is "<<m_map.size()<<endmsg;
+  ATH_MSG_INFO("After Reading folder, Configuration string size is "<<m_map.size());
   
   return StatusCode::SUCCESS;
 
@@ -191,24 +118,13 @@ StatusCode RPCCablingDbTool::loadRPCMap(IOVSVC_CALLBACK_ARGS_P(/*I*/,/*keys*/))
 
 StatusCode RPCCablingDbTool::loadRPCCorr(IOVSVC_CALLBACK_ARGS_P(/*I*/,/*keys*/)) 
 {
-  MsgStream log(msgSvc(), name());
-  StatusCode sc=StatusCode::SUCCESS;
-  log << MSG::INFO << "loadRPCCorr --- Load Corrections from DB" << endmsg;
+  ATH_MSG_INFO("loadRPCCorr --- Load Corrections from DB");
   
-  const CondAttrListCollection * atrc;
-  log << MSG::INFO << "Try to read from folder <"<<m_corrFolder<<">"<<endmsg;
-  
-  sc=detStore()->retrieve(atrc,m_corrFolder);
-  if(sc.isFailure())  {
-    log << MSG::ERROR 
-	<< "could not retreive the CondAttrListCollection from DB folder " 
-	<< m_corrFolder << endmsg;
-    return sc;
-  }
-  
-  else
-       log<<MSG::INFO<<" CondAttrListCollection from DB folder have been obtained with size "<< atrc->size() <<endmsg;
+  const CondAttrListCollection* atrc=nullptr;
+  ATH_MSG_INFO("Try to read from folder <"<<m_corrFolder<<">");
   
+  ATH_CHECK(detStore()->retrieve(atrc,m_corrFolder));
+  ATH_MSG_INFO(" CondAttrListCollection from DB folder have been obtained with size "<< atrc->size());
  
   CondAttrListCollection::const_iterator itr;
   for (itr = atrc->begin(); itr != atrc->end(); ++itr) {
@@ -217,13 +133,11 @@ StatusCode RPCCablingDbTool::loadRPCCorr(IOVSVC_CALLBACK_ARGS_P(/*I*/,/*keys*/))
     // store correction map in private member RPCCorrMap
     m_corr = *(static_cast<const std::string*>((atr["Map"]).addressOfData()));
    
-    log << MSG::VERBOSE << "Sequence load is \n" << m_corr <<endmsg;
-    log <<"End of Sequence load"<<endmsg;
+    ATH_MSG_VERBOSE("Sequence load is \n" << m_corr);
+    ATH_MSG_VERBOSE("End of Sequence load");
 
   }
-  log<< MSG::INFO<<"After Reading folder, Correction string size is "<<m_corr.size()<<endmsg;
-
+  ATH_MSG_INFO("After Reading folder, Correction string size is "<<m_corr.size());
   return StatusCode::SUCCESS;
- 
 }
 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscCoolTest.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscCoolTest.cxx
index 8d25c9a43e9c9218382cc5f071635d1f865a65a8..e700f0a38653180f0d6f2657d6746985226bd06e 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscCoolTest.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscCoolTest.cxx
@@ -2,107 +2,73 @@
   Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
+#include "CscCoolTest.h"
+
 #include <fstream>
 #include <string>
 #include <stdlib.h>
-#include <math.h>
-#include "MuonIdHelpers/CscIdHelper.h"
-#include "GaudiKernel/MsgStream.h"
-#include "CscCoolTest.h"
+#include <cmath>
 
 using namespace MuonCalib; //So we don't need to type MuonCalib:: in front of CscCondParType::
 
-CscCoolTest::CscCoolTest(const std::string& name, 
-    ISvcLocator* pSvcLocator) :AthAlgorithm(name,pSvcLocator),
-                               m_log(msgSvc(),name),
-                               p_cscCoolStrSvc(0)
-{
-
+CscCoolTest::CscCoolTest(const std::string& name, ISvcLocator* pSvcLocator) :
+    AthAlgorithm(name,pSvcLocator),
+    p_cscCoolStrSvc(nullptr) {
   declareProperty("StripHash",m_stripHash = 800);
   declareProperty("DoStatusTest", m_doStatusTest = false);
 }
 
-
-CscCoolTest::~CscCoolTest() {}
-
 StatusCode CscCoolTest::initialize()
 {
-  m_log << MSG::DEBUG << "CscCoolTest::initialize() called" << endmsg;
-
-  if (StatusCode::SUCCESS!=service("MuonCalib::CscCoolStrSvc",p_cscCoolStrSvc))
-  {
-    m_log << MSG::FATAL << "Cannot get CscCoolStrSvc" << endmsg;
-    return StatusCode::FAILURE;
-  }
-  StoreGateSvc* detstore;
-  if (StatusCode::SUCCESS!=service("DetectorStore",detstore)) {
-    m_log << MSG::FATAL << "Detector store not found" << endmsg;
-    return StatusCode::FAILURE;
-  }
-  StatusCode sc = m_muonIdHelperTool.retrieve();
-  if(sc.isFailure())
-  {
-    m_log << MSG::FATAL << "Cannot retrieve MuonIdHelperTool" << endmsg;
-    return sc;
-  }
-
+  ATH_MSG_DEBUG("CscCoolTest::initialize() called");
+  ATH_CHECK(service("MuonCalib::CscCoolStrSvc",p_cscCoolStrSvc));
+  StoreGateSvc* detstore=nullptr;
+  ATH_CHECK(service("DetectorStore",detstore));
+  ATH_CHECK(m_idHelperSvc.retrieve());
   return StatusCode::SUCCESS;
 }
 
 StatusCode CscCoolTest::execute()
 {
-  m_log << MSG::INFO << "Starting CscCoolTest execute" << endmsg;
-
-  float  ped(0), pulseSlope(0.0), noise(0),rms(0),f001(0);
+  ATH_MSG_DEBUG("Starting CscCoolTest execute");
+  float ped(0);
+  float pulseSlope(0);
+  float noise(0);
+  float rms(0);
+  float f001(0);
   //float gain, ped, runSlope, pulseSlope, peakt,width,sat1,sat2,noise,thold;
-  uint32_t status =0;
+  uint32_t status=0;
 
   StatusCode sc;
-
   //Using the get parameter method of CscCoolStrSvc to retrieve the parameters.
-  m_log << MSG::INFO << "Retrieveing constants from strip with hash " <<  m_stripHash  << endmsg;
+  ATH_MSG_DEBUG("Retrieveing constants from strip with hash " <<  m_stripHash);
   sc = p_cscCoolStrSvc->getParameter(ped,"ped",m_stripHash);
   sc = p_cscCoolStrSvc->getParameter(noise,"noise",m_stripHash);
   sc = p_cscCoolStrSvc->getParameter(f001,"f001",m_stripHash);
   sc = p_cscCoolStrSvc->getParameter(rms,"rms",m_stripHash);
   sc = p_cscCoolStrSvc->getParameter(pulseSlope,"pslope",m_stripHash);
   sc = p_cscCoolStrSvc->getParameter(status,"status",m_stripHash);  	
-  //sc = p_cscCoolStrSvc->getParameter(thold,"thold",m_stripHash);
-  //sc = p_cscCoolStrSvc->getParameter(peakt,"peakt",m_stripHash);
-  //sc = p_cscCoolStrSvc->getParameter(width,"width",m_stripHash);
-  //sc = p_cscCoolStrSvc->getParameter(sat1,CscCondParType::SAT1,m_stripHash);
-  //sc = p_cscCoolStrSvc->getParameter(sat2,CscCondParType::SAT2,m_stripHash);
-
-  //Test depreciated version 
-
-  //sc = p_cscCoolStrSvc->getStatus(status,m_stripHash);  	
-
-  if(!sc.isSuccess())
-  {
-    m_log << MSG::FATAL << "couldn't retrieve parameter!" << endmsg;
+  if(!sc.isSuccess()) {
+    ATH_MSG_FATAL("couldn't retrieve parameter!");
     return StatusCode::FAILURE;
   }
 
-  m_log << MSG::INFO << "***data from first retrieval method is:" 
+  ATH_MSG_DEBUG("***data from first retrieval method is:" 
     << "\n\tslope from pulser:\t"   << pulseSlope 
     << "\n\tpedestal:\t"            << ped 
     << "\n\tnoise:\t"               << noise 
     << "\n\trms\t"                  << rms
     << "\n\tf001\t"                 << f001
-    << "\n\tstatus:\t"              << std::hex << static_cast<unsigned int>(status) << std::dec 
-    << endmsg;
+    << "\n\tstatus:\t"              << std::hex << static_cast<unsigned int>(status) << std::dec);
 
   //Applying bit masks to bit-masked status
-  m_log << MSG:: INFO << "Status flags taken from bit-maksed status" << endmsg;
-
-  m_log << MSG::INFO <<"noisy/stuck-bit channel: "                        << (status & 0x1) << endmsg;
-  m_log << MSG::INFO <<"dead channel: "                       << ((status >> 1 )& 0x1 )<< endmsg;
-
-
+  ATH_MSG_DEBUG("Status flags taken from bit-maksed status");
+  ATH_MSG_DEBUG("noisy/stuck-bit channel: " << (status & 0x1));
+  ATH_MSG_DEBUG("dead channel: " << ((status >> 1 )& 0x1 ));
 
   //Count how man of each bad status result we have
   if(m_doStatusTest){
-    IdContext channelContext = m_muonIdHelperTool->cscIdHelper().channel_context();   
+    IdContext channelContext = m_idHelperSvc->cscIdHelper().channel_context();   
 
     const unsigned int nIds = 61440;
     const unsigned int expectedChamberLayer = 2;
@@ -112,14 +78,13 @@ StatusCode CscCoolTest::execute()
 
     for( unsigned int idItr = 0; idItr < nIds; idItr++){
       Identifier stripId;
-      m_muonIdHelperTool->cscIdHelper().get_id(idItr, stripId, &channelContext);
-      unsigned int chamLayer = m_muonIdHelperTool->cscIdHelper().chamberLayer(stripId);
+      m_idHelperSvc->cscIdHelper().get_id(idItr, stripId, &channelContext);
+      unsigned int chamLayer = m_idHelperSvc->cscIdHelper().chamberLayer(stripId);
 
       if( chamLayer == expectedChamberLayer){ //skip missing layer
         sc = p_cscCoolStrSvc->getParameter(status,"status",idItr);
-        if(!sc.isSuccess())
-        {
-          m_log << MSG::FATAL << "couldn't retrieve status for stripHash " << stripId << endmsg;
+        if(!sc.isSuccess()) {
+          ATH_MSG_FATAL("couldn't retrieve status for stripHash " << stripId);
           return StatusCode::FAILURE;
         }
         if(status&0x1)
@@ -128,19 +93,11 @@ StatusCode CscCoolTest::execute()
           numDead++;
       }//end if chamber layer is expected chamber layer
     }//end loop over channels
-    m_log << MSG::INFO << "====Status Counts===" << endmsg;
-    m_log << MSG::INFO << "Num Noisy Channels:\t" << numNoisy << endmsg;
-    m_log << MSG::INFO << "Num Dead Channels:\t" << numDead << endmsg;
-    m_log << MSG::INFO << "===================="<< endmsg;
+    ATH_MSG_DEBUG("====Status Counts===");
+    ATH_MSG_DEBUG("Num Noisy Channels:\t" << numNoisy);
+    ATH_MSG_DEBUG("Num Dead Channels:\t" << numDead);
+    ATH_MSG_DEBUG("====================");
   }//end if m_doStatusTest
 
   return StatusCode::SUCCESS;
 }		
-
-StatusCode CscCoolTest::finalize()
-{ 
-  return StatusCode::SUCCESS;
-}
-
-//} // end namespace MuonCalib
-
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscCoolTest.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscCoolTest.h
index 0095f23b0c0860c4af195e7887d75c6cd0424500..ac77ce270d51121e40f48c0279b27d01368599bd 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscCoolTest.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscCoolTest.h
@@ -1,22 +1,20 @@
 /*
-  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 MUONCONDCOOL_CSCCOOLTEST_H
 #define MUONCONDCOOL_CSCCOOLTEST_H
+
 /**CscCoolTest - simple algorithm to test reading out parameters from the csc cool database using 
 the CscCoolStrSvc getParameter method.  Can be used to test the auto-updating of the local cache withing
 CscCoolStrSvc*/
+
 #include "AthenaBaseComps/AthAlgorithm.h"
-#include "GaudiKernel/Algorithm.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "StoreGate/DataHandle.h"
-//#include "MuonCondData/CscCalibData.h"
+#include "GaudiKernel/ServiceHandle.h"
+
 #include "MuonCondInterface/CscICoolStrSvc.h"
-#include "MuonIdHelpers/MuonIdHelperTool.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
-//namespace MuonCalib {
 /**
 	@class CscCoolTest
 
@@ -30,31 +28,21 @@ CscCoolStrSvc*/
 	Using an appropriate jobOptions file, this algoritm can be used to test this functionality.
 */
 
-
 class CscCoolTest: public AthAlgorithm
 {
 	public: 
 		CscCoolTest(const std::string& name, ISvcLocator* pSvcLocator);
-		~CscCoolTest(void);
+		~CscCoolTest()=default;
 		/**initialize CscCoolStrSvc*/
 		StatusCode initialize(void);
 		/**prints out all the parameters from a single strip as requested in the jobOptions file*/
 		StatusCode execute(void);
-		/**does nothing*/
-		StatusCode finalize(void);
 
 	private:
-		MsgStream m_log;
-    MuonCalib::CscICoolStrSvc* p_cscCoolStrSvc;
-
-
+		MuonCalib::CscICoolStrSvc* p_cscCoolStrSvc;
 		int m_stripHash;
-
-    bool m_doStatusTest;
-
-    ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-        "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
-    
+		bool m_doStatusTest;
+		ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
 };
 
 //} // end namespace MuonCalib
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.cxx
index cbfd8f5d0342e8cc6930d1340fe5e9592b558b06..3d86fb61088819fe7003738aacc77e102ec40076 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.cxx
@@ -7,28 +7,27 @@
 // author lampen@physics.arizona.edu
 // Update: Apr 10, 2007. No longer reads - Caleb Parnell-Lampen <lampen@physics.arizona.edu>
 
+#include "CscReadWriteCoolStr.h"
+
 #include "GaudiKernel/ISvcLocator.h"
 #include "MuonCondData/CscCondParType.h"
-#include "MuonIdHelpers/CscIdHelper.h"
-#include "string.h"
-#include "CscReadWriteCoolStr.h"
+#include "AthenaKernel/errorcheck.h"
+
 #include <fstream>
 #include <bitset>
 #include <sstream>
-#include "AthenaKernel/errorcheck.h"
 
 namespace MuonCalib {
 
-  CscReadWriteCoolStr::CscReadWriteCoolStr(const std::string& name, 
-      ISvcLocator* pSvcLocator) :AthAlgorithm(name,pSvcLocator),
-                                 m_log(msgSvc(),name),
-                                 p_detstore(0),
-                                 m_cscCoolStrSvc("MuonCalib::CscCoolStrSvc",name),
-                                 m_write(false),
-                                 m_read(false),
-                                 m_ofile("output.cal"),
-                                 m_outFileType("04-00"),
-                                 m_condDataContainer(NULL)
+  CscReadWriteCoolStr::CscReadWriteCoolStr(const std::string& name, ISvcLocator* pSvcLocator) :
+    AthAlgorithm(name,pSvcLocator),
+    p_detstore(nullptr),
+    m_cscCoolStrSvc("MuonCalib::CscCoolStrSvc",name),
+    m_write(false),
+    m_read(false),
+    m_ofile("output.cal"),
+    m_outFileType("04-00"),
+    m_condDataContainer(nullptr)
   {
     declareProperty("Write",m_write);
     declareProperty("iFiles",m_ifiles);
@@ -48,24 +47,10 @@ namespace MuonCalib {
 
   StatusCode CscReadWriteCoolStr::initialize()
   {
-    m_log << MSG::DEBUG << "CscReadWriteCoolStr::initialize() called" << endmsg;
-
-    if (StatusCode::SUCCESS!=service("DetectorStore",p_detstore)) {
-      m_log << MSG::FATAL << "Detector store not found" << endmsg;
-      return StatusCode::FAILURE;
-    }
-    if (StatusCode::SUCCESS!=m_cscCoolStrSvc.retrieve()) {
-      m_log << MSG::FATAL << "Cannot get CscCoolStrSvc" << endmsg;
-      return StatusCode::FAILURE;
-    }
-    
-    StatusCode sc = m_muonIdHelperTool.retrieve();
-    if(sc.isFailure())
-    {
-      m_log << MSG::FATAL << "Cannot retrieve MuonIdHelperTool" << endmsg;
-      return sc;
-    }
-
+    ATH_MSG_DEBUG("CscReadWriteCoolStr::initialize() called");
+    ATH_CHECK(service("DetectorStore",p_detstore));
+    ATH_CHECK(m_cscCoolStrSvc.retrieve());
+    ATH_CHECK(m_idHelperSvc.retrieve());
     return StatusCode::SUCCESS;
   }
 
@@ -74,7 +59,7 @@ namespace MuonCalib {
   }
 
   StatusCode CscReadWriteCoolStr::finalize() {
-    m_log << MSG::INFO << "Finalizing CscReadWriteCoolStr." << endmsg;
+    ATH_MSG_DEBUG("Finalizing CscReadWriteCoolStr.");
     static int numFinal =0;
     if(numFinal>0)
       return StatusCode::SUCCESS;
@@ -86,16 +71,15 @@ namespace MuonCalib {
     }
     if(m_read)
     {
-      m_log <<MSG::DEBUG<< "Creating file" << endmsg;
+      ATH_MSG_DEBUG("Creating file");
       return makeFile();
     }
     return StatusCode::SUCCESS;
   }
 
   StatusCode CscReadWriteCoolStr::readFiles() {
-
     StatusCode sc = StatusCode::SUCCESS;
-    m_log <<MSG::INFO << "About to insert files" << endmsg;
+    ATH_MSG_DEBUG("About to insert files");
     std::vector<std::string>::const_iterator fItr = m_ifiles.begin();
     std::vector<std::string>::const_iterator fEnd = m_ifiles.end();
     for(;fItr != fEnd; fItr++)
@@ -106,17 +90,17 @@ namespace MuonCalib {
         if(!procInputStream(/*dynamic_cast<istream*>(ifile)*/ifile).isSuccess())
         {
           sc = StatusCode::RECOVERABLE;
-          m_log << MSG::ERROR << "Failed processing " << *fItr << endmsg;
+          ATH_MSG_ERROR("Failed processing " << *fItr);
         }
       }
       else
       {
         sc = StatusCode::RECOVERABLE;
-        m_log << MSG::ERROR << "Failed opening " << *fItr << endmsg;
+        ATH_MSG_ERROR("Failed opening " << *fItr);
       }
     }
 
-    m_log <<MSG::INFO << "Finished reading files" << endmsg;
+    ATH_MSG_DEBUG("Finished reading files");
 
     return sc;
   }
@@ -149,7 +133,7 @@ namespace MuonCalib {
 
         //Prevent infinite loop
         if (i== 1000000 || !input.good()) {
-          m_log << MSG::FATAL << "Never reached end of header. Went through " << i << "words."<< endmsg;
+          ATH_MSG_FATAL("Never reached end of header. Went through " << i << "words.");
           return StatusCode::FAILURE;
         }
       }
@@ -166,8 +150,7 @@ namespace MuonCalib {
         if( tag == "<END_FILE>")
           break;
         else if ( tag != "<NEW_PAR>"){
-          m_log << MSG::ERROR << "Don't recognize tag " << tag << " in this context. " 
-            << endmsg;
+          ATH_MSG_ERROR("Don't recognize tag " << tag << " in this context. ");
           return StatusCode::RECOVERABLE;
         }
         std::string nextWord;
@@ -175,21 +158,21 @@ namespace MuonCalib {
         if(nextWord == "<BITS>") {
           input >> nBits;
           if(nBits > 64){
-            m_log << MSG::ERROR << " bad nBits " << nBits << endmsg;
+            ATH_MSG_ERROR(" bad nBits " << nBits);
             return StatusCode::RECOVERABLE;
           }
           input >> shiftBits;
           std::string end_bits;
           input >> end_bits;
-          m_log << MSG::DEBUG << "We've got nbits: " << nBits
-            << " and a shift of  " << shiftBits << endmsg;
+          ATH_MSG_DEBUG("We've got nbits: " << nBits
+            << " and a shift of  " << shiftBits);
           if(end_bits != "<END_BITS>"){
-            m_log << MSG::ERROR << "Expected <END_BITS> tag after nBits and shiftBits info" << endmsg;
+            ATH_MSG_ERROR("Expected <END_BITS> tag after nBits and shiftBits info");
           }
           input >> nextWord;
         }
         else
-          m_log << MSG::DEBUG << "No bit settings for this parameter" << endmsg;
+          ATH_MSG_DEBUG("No bit settings for this parameter");
 
         std::string parName = nextWord;
 
@@ -203,8 +186,8 @@ namespace MuonCalib {
 
         if(!catSc.isSuccess() || !dataTypeSc.isSuccess() || !sizeSc.isSuccess())
         {
-          m_log << MSG::ERROR << "Failed at retrieving info for " << parName  
-            <<". Check job options to ensure you're adding it." << endmsg;
+          ATH_MSG_ERROR("Failed at retrieving info for " << parName  
+            <<". Check job options to ensure you're adding it.");
 	  //          failedAny = true;
           continue;
         }
@@ -221,7 +204,7 @@ namespace MuonCalib {
         else if(dataType == "bool")
           CHECK( procParameter3<bool>(input, parName, cat, nBits, shiftBits) );
         else
-          m_log << MSG::ERROR << "Don't recognize dataType " << dataType << " when reading input file " << endmsg;
+          ATH_MSG_ERROR("Don't recognize dataType " << dataType << " when reading input file ");
       }//end parameter loop
 
     }
@@ -231,7 +214,7 @@ namespace MuonCalib {
 
       //fileversion 04-01 allows for ASM2 based material
       if(fileVersion == "04-00" || fileVersion == "04-01"){
-        m_log << MSG::DEBUG << "Reading file version 4" << endmsg;
+        ATH_MSG_DEBUG("Reading file version 4");
         //Version 04-00 attempts to be more xml like, although it is still a bit of a poor man's
         //xml. Items must be in a particular order, and there must be spaces between tags and 
         //their content
@@ -248,16 +231,16 @@ namespace MuonCalib {
 
           //Prevent infinite loop
           if (i== 1000000 || !input.good()) {
-            m_log << MSG::FATAL << "Never reached end of header. Went through " << i << "words."<< endmsg;
+            ATH_MSG_FATAL("Never reached end of header. Went through " << i << "words.");
             return StatusCode::FAILURE;
           }
         }
 
-        m_log << MSG::DEBUG << "About to loop after finding " << junk << endmsg;
+        ATH_MSG_DEBUG("About to loop after finding " << junk);
 
         //Loop over each parameter, then over each value stored in that parameter
         while(input.good()) {
-          m_log << MSG::DEBUG << " loop" <<endmsg;
+          ATH_MSG_DEBUG(" loop");
           int nBits = 0;
           int shiftBits  = 0;
 
@@ -268,8 +251,7 @@ namespace MuonCalib {
           if( tag == "<END_FILE>")
             break;
           else if ( tag != "<PARAMETER>"){
-            m_log << MSG::ERROR << "Don't recognize tag " << tag << " in this context. " 
-              << endmsg;
+            ATH_MSG_ERROR("Don't recognize tag " << tag << " in this context. ");
             return StatusCode::RECOVERABLE;
           }
 
@@ -277,8 +259,8 @@ namespace MuonCalib {
           input >> nextWord;
           std::string parName = nextWord;
           if(parName == "<BITS>" || parName == "<DATA>"){
-            m_log << MSG::ERROR << "First entry insidet a parameter must be parameter name, not " 
-              << parName << endmsg;
+            ATH_MSG_ERROR("First entry insidet a parameter must be parameter name, not " 
+              << parName);
             return StatusCode::RECOVERABLE;
           }
 
@@ -289,15 +271,15 @@ namespace MuonCalib {
             input >> shiftBits;
             std::string end_bits;
             input >> end_bits;
-            m_log << MSG::DEBUG << "We've got nbits: " << nBits
-              << " and a shift of  " << shiftBits << endmsg;
+            ATH_MSG_DEBUG("We've got nbits: " << nBits
+              << " and a shift of  " << shiftBits);
             if(end_bits != "</BITS>"){
-              m_log << MSG::ERROR << "Expected </BITS> tag after nBits and shiftBits info" << endmsg;
+              ATH_MSG_ERROR("Expected </BITS> tag after nBits and shiftBits info");
             }
             input >> nextWord;
           }
           else
-            m_log << MSG::DEBUG << "No bit settings for this parameter" << endmsg;
+            ATH_MSG_DEBUG("No bit settings for this parameter");
 
           if(nextWord == "<DATA>"){
 
@@ -311,15 +293,15 @@ namespace MuonCalib {
 
             if(!catSc.isSuccess() || !dataTypeSc.isSuccess() || !sizeSc.isSuccess())
             {
-              m_log << MSG::ERROR << "Failed at retrieving info for " << parName  
-                <<". Check job options to ensure you're adding it." << endmsg;
+              ATH_MSG_ERROR("Failed at retrieving info for " << parName  
+                <<". Check job options to ensure you're adding it.");
 	      //        failedAny = true;
               continue;
             }
 
             //Process parameter. Need to know datatype for proper string to data conversion.
             //Add parameters to 
-            m_log << MSG::INFO << "Processing data for parameter " << parName << endmsg;
+            ATH_MSG_DEBUG("Processing data for parameter " << parName);
 
             if(dataType == "uint32_t")
               CHECK( procParameter4<uint32_t>(input, parName, cat, nBits, shiftBits));
@@ -330,16 +312,16 @@ namespace MuonCalib {
             else if(dataType == "bool")
               CHECK( procParameter4<bool>(input, parName, cat, nBits, shiftBits));
             else
-              m_log << MSG::ERROR << "Don't recognize dataType " << dataType << " when reading input file " << endmsg;
+              ATH_MSG_ERROR("Don't recognize dataType " << dataType << " when reading input file ");
             input >> nextWord;
           }
           else {
-            m_log << MSG::ERROR << "No data found for parameter " << parName << endmsg;
+            ATH_MSG_ERROR("No data found for parameter " << parName);
             return StatusCode::RECOVERABLE;
           }
           if(nextWord != "</PARAMETER>"){
-            m_log << MSG::WARNING << "Expected parameter info to end with token " 
-              << "</PARAMETER>" << ". Instead have " << nextWord << endmsg;
+            ATH_MSG_WARNING("Expected parameter info to end with token " 
+              << "</PARAMETER>" << ". Instead have " << nextWord);
           }
         }//end parameter loop
 
@@ -347,8 +329,8 @@ namespace MuonCalib {
     }//end version test
 
     if(!recognizedVersion){
-      m_log << MSG::FATAL << "Didn't recognize input format version. If 04-00 make sure you've put <HEADER> (all caps) at front of file!" << endmsg;
-      m_log << MSG::FATAL << "Read file version as " << fileVersion << endmsg;
+      ATH_MSG_FATAL("Didn't recognize input format version. If 04-00 make sure you've put <HEADER> (all caps) at front of file!");
+      ATH_MSG_FATAL("Read file version as " << fileVersion);
       return StatusCode::FAILURE;
     }
     return StatusCode::SUCCESS; 
@@ -357,18 +339,18 @@ namespace MuonCalib {
 
   StatusCode CscReadWriteCoolStr::writeToCool() {
     //Send to be added to database
-    m_log << MSG::INFO << "About to merge and submit data to cool" << endmsg;
+    ATH_MSG_DEBUG("About to merge and submit data to cool");
     return m_cscCoolStrSvc->mergeAndSubmitCondDataContainer(m_condDataContainer);
   }
 
   StatusCode CscReadWriteCoolStr::makeFile() {
-    m_log << MSG::INFO << "Writing data from database to file " << m_ofile << endmsg;
+    ATH_MSG_DEBUG("Writing data from database to file " << m_ofile);
 
     std::ofstream outFile(m_ofile.c_str());
     
     std::string dataType ="";
 
-    IdContext channelContext = m_muonIdHelperTool->cscIdHelper().channel_context();
+    IdContext channelContext = m_idHelperSvc->cscIdHelper().channel_context();
 
     if(m_outFileType =="04-00"){
       outFile << "<HEADER>\n" << m_outFileType << "\n</HEADER>\n";
@@ -382,12 +364,12 @@ namespace MuonCalib {
     std::vector<std::string>::const_iterator parNameEnd = m_outParameters.end();
     for(;parNameItr != parNameEnd; parNameItr++) {
 
-      m_log << MSG::DEBUG << "Storing " << *parNameItr << endmsg;
+      ATH_MSG_DEBUG("Storing " << *parNameItr);
 
       unsigned int numIndx = 0;
       if(!m_cscCoolStrSvc->getParNumHashes(*parNameItr,numIndx).isSuccess()) {
-        m_log << MSG::ERROR << "Failed getting num hashes for " 
-          << *parNameItr << endmsg;
+        ATH_MSG_ERROR("Failed getting num hashes for " 
+          << *parNameItr);
         return StatusCode::RECOVERABLE;
       }
 
@@ -396,26 +378,24 @@ namespace MuonCalib {
 
       std::string cat;
       if(!m_cscCoolStrSvc->getParCat(*parNameItr,cat).isSuccess() ){
-        m_log << MSG::ERROR << "Failed getting category for " << *parNameItr
-          << endmsg;
+        ATH_MSG_ERROR("Failed getting category for " << *parNameItr);
       }
 
-      m_log << MSG::DEBUG << "Category is " << cat << " and maximum index is " <<numIndx-1 
-        << endmsg;
+      ATH_MSG_DEBUG("Category is " << cat << " and maximum index is " <<numIndx-1 
+       );
 
       if(m_forceChanCat)
       {
-        m_log << MSG::WARNING << *parNameItr << " of category " << cat << " is being forced to be read as category CHANNEL"<< endmsg;
+        ATH_MSG_WARNING(*parNameItr << " of category " << cat << " is being forced to be read as category CHANNEL");
         cat = "CHANNEL";
       }
 
       if(!m_cscCoolStrSvc->getParDataType(*parNameItr, dataType)){
-        m_log <<MSG::ERROR << "Failed getting data type for " << *parNameItr
-          << endmsg;
+        ATH_MSG_ERROR("Failed getting data type for " << *parNameItr);
         return StatusCode::RECOVERABLE;
       }
 
-      m_log << MSG::INFO << "datatype is " << dataType << endmsg;
+      ATH_MSG_DEBUG("datatype is " << dataType);
       if(m_outFileType == "04-00" || m_outFileType == "04-01"){
         outFile << "<PARAMETER>\n" << *parNameItr << "\n<DATA>\n";
         if(cat == "CHANNEL"){
@@ -424,25 +404,25 @@ namespace MuonCalib {
             //make sure the database has this value in a way that won't
             //cause any errors
             if(!m_cscCoolStrSvc->checkIndex(*parNameItr, indxItr)) {
-              m_log << MSG::VERBOSE << "nothing at index " << indxItr << endmsg;
+              ATH_MSG_VERBOSE("nothing at index " << indxItr);
               continue;
             }
 
             Identifier chanId;
-            m_muonIdHelperTool->cscIdHelper().get_id((IdentifierHash)indxItr, chanId, &channelContext);
-            int eta = m_muonIdHelperTool->cscIdHelper().stationEta(chanId);
-            int phi = m_muonIdHelperTool->cscIdHelper().stationPhi(chanId);
-            int measuresPhi = m_muonIdHelperTool->cscIdHelper().measuresPhi(chanId);
-            int strip = m_muonIdHelperTool->cscIdHelper().strip(chanId);
-            int size = m_muonIdHelperTool->cscIdHelper().stationName(chanId);//1 for large, 0 for not
-            int layer = m_muonIdHelperTool->cscIdHelper().wireLayer(chanId);
+            m_idHelperSvc->cscIdHelper().get_id((IdentifierHash)indxItr, chanId, &channelContext);
+            int eta = m_idHelperSvc->cscIdHelper().stationEta(chanId);
+            int phi = m_idHelperSvc->cscIdHelper().stationPhi(chanId);
+            int measuresPhi = m_idHelperSvc->cscIdHelper().measuresPhi(chanId);
+            int strip = m_idHelperSvc->cscIdHelper().strip(chanId);
+            int size = m_idHelperSvc->cscIdHelper().stationName(chanId);//1 for large, 0 for not
+            int layer = m_idHelperSvc->cscIdHelper().wireLayer(chanId);
 
             int sector = (phi*2 - size + 50)*eta;
 
 
             std::string data =  RetrieveDataAsString( *parNameItr, indxItr, dataType);
             if(data == "" ){
-              m_log << MSG::ERROR << "Failed to retrieve data!" << endmsg;
+              ATH_MSG_ERROR("Failed to retrieve data!");
               return StatusCode::RECOVERABLE;
             }
 
@@ -479,10 +459,10 @@ namespace MuonCalib {
 
               //Retreive data for a single strip in scope, at layer Since and stripSince. All values should be same, so its fine
               CHECK(m_cscCoolStrSvc->getAsmScope(asmNum, measuresPhi, layerSince, layerUntil, stripSince, stripUntil));
-              Identifier chanId = m_muonIdHelperTool->cscIdHelper().channelID(stationName, stationEta, stationPhi, 
+              Identifier chanId = m_idHelperSvc->cscIdHelper().channelID(stationName, stationEta, stationPhi, 
                   chamberLayer, layerSince, measuresPhi, stripSince);
               IdentifierHash hash;
-              m_muonIdHelperTool->cscIdHelper().get_channel_hash(chanId, hash);
+              m_idHelperSvc->cscIdHelper().get_channel_hash(chanId, hash);
               std::string data = RetrieveDataAsString(*parNameItr, (int)hash, dataType);
 
               //update file
@@ -492,7 +472,7 @@ namespace MuonCalib {
 
         }
         else{
-          m_log << MSG::FATAL << "CSC COOL parameter category \"" << cat << "\" is not supported" << endmsg;
+          ATH_MSG_FATAL("CSC COOL parameter category \"" << cat << "\" is not supported");
           return StatusCode::FAILURE;
         }
         outFile << "</DATA>\n</PARAMETER>\n";
@@ -504,15 +484,15 @@ namespace MuonCalib {
           //make sure the database has this value in a way that won't
           //cause any errors
           if(!m_cscCoolStrSvc->checkIndex(*parNameItr, indxItr)) {
-            m_log << MSG::VERBOSE << "nothing at index " << indxItr << endmsg;
+            ATH_MSG_VERBOSE("nothing at index " << indxItr);
             continue;
           }
 
           std::string stringId;
           if(m_outFileType == "03-00"|| m_outFileType== "03-01") {
             if(!m_cscCoolStrSvc->indexToStringId(indxItr,cat,stringId)) {
-              m_log << MSG::ERROR << "Failed getting string Id from indxItr " 
-                << indxItr << " for parameter " << *parNameItr << endmsg;
+              ATH_MSG_ERROR("Failed getting string Id from indxItr " 
+                << indxItr << " for parameter " << *parNameItr);
               return StatusCode::RECOVERABLE;
             }
           }
@@ -521,9 +501,9 @@ namespace MuonCalib {
 
             std::stringstream ss;
             Identifier chanId;
-            m_muonIdHelperTool->cscIdHelper().get_id((IdentifierHash)indxItr, chanId, &channelContext);
+            m_idHelperSvc->cscIdHelper().get_id((IdentifierHash)indxItr, chanId, &channelContext);
 
-            ss << indxItr << " " << m_muonIdHelperTool->cscIdHelper().show_to_string(chanId);
+            ss << indxItr << " " << m_idHelperSvc->cscIdHelper().show_to_string(chanId);
 
             stringId = ss.str();
 
@@ -531,13 +511,13 @@ namespace MuonCalib {
 
 
 
-          m_log << MSG::DEBUG << "index "  << indxItr << " converted to string " << stringId << endmsg;
+          ATH_MSG_DEBUG("index "  << indxItr << " converted to string " << stringId);
 
           outFile << stringId << " ";
 
           std::string data =  RetrieveDataAsString( *parNameItr, indxItr, dataType) ;
           if(data == ""){
-            m_log << MSG::ERROR << "Failed to to retrieve data!" << endmsg;
+            ATH_MSG_ERROR("Failed to to retrieve data!");
             return StatusCode::RECOVERABLE;
           }
           outFile << data;
@@ -559,11 +539,10 @@ namespace MuonCalib {
     std::bitset<32> newBits(refDatum);
     std::bitset<32> inputBits(inputDatum);
 
-    m_log << MSG::DEBUG << "Merging bits from input " <<  std::hex << inputDatum << " (with offset of " << bitShift << ") and reference " << std::hex << refDatum << std::dec << endmsg;
+    ATH_MSG_DEBUG("Merging bits from input " <<  std::hex << inputDatum << " (with offset of " << bitShift << ") and reference " << std::hex << refDatum << std::dec);
 
     if(bitShift + nBits > 32) {
-      m_log << MSG::ERROR << "Requesting a bit beyond 32 during bit merging. Probably a bug."
-        << endmsg;
+      ATH_MSG_ERROR("Requesting a bit beyond 32 during bit merging. Probably a bug.");
       return StatusCode::FAILURE;
     }
 
@@ -573,20 +552,20 @@ namespace MuonCalib {
     }
 
     newDatum = newBits.to_ulong();
-    m_log << MSG::DEBUG << "Merged version is " << newDatum << endmsg;
+    ATH_MSG_DEBUG("Merged version is " << newDatum);
     return StatusCode::SUCCESS;
   }
 
   StatusCode CscReadWriteCoolStr::mergeBits(const int & , const int & , const int & , 
       const int &, const int &){
-    m_log << MSG::ERROR << "Tried to merge bits of an int" << endmsg;
+    ATH_MSG_ERROR("Tried to merge bits of an int");
 
     return StatusCode::FAILURE;
   }
 
   StatusCode CscReadWriteCoolStr::mergeBits(const float & , const float & , const float & , 
       const int &, const int &) {
-    m_log << MSG::ERROR << "Tried to merge bits of a float" << endmsg;
+    ATH_MSG_ERROR("Tried to merge bits of a float");
     return StatusCode::FAILURE;
   }
 
@@ -596,8 +575,8 @@ namespace MuonCalib {
     {
       uint32_t datum;
       if(!m_cscCoolStrSvc->getParameter(datum,coolKey,hash)){
-        m_log << MSG::ERROR << "Failed to retrieve data for key " << coolKey
-          << " data type " << dataType << endmsg;
+        ATH_MSG_ERROR("Failed to retrieve data for key " << coolKey
+          << " data type " << dataType);
       }
       stream << datum;
     }
@@ -605,8 +584,8 @@ namespace MuonCalib {
     {
       int datum;
       if(!m_cscCoolStrSvc->getParameter(datum,coolKey,hash)){
-        m_log << MSG::ERROR << "Failed to retrieve data for key " << coolKey
-          << " data type " << dataType << endmsg;
+        ATH_MSG_ERROR("Failed to retrieve data for key " << coolKey
+          << " data type " << dataType);
       }
       else 
         stream << datum;
@@ -616,8 +595,8 @@ namespace MuonCalib {
       //std::cout << "Getting float datatype" << std::endl;
       float datum;
       if(!m_cscCoolStrSvc->getParameter(datum,coolKey,hash)){
-        m_log << MSG::ERROR << "Failed to retrieve data for key " << coolKey
-          << " data type " << dataType << endmsg;
+        ATH_MSG_ERROR("Failed to retrieve data for key " << coolKey
+          << " data type " << dataType);
       }
       else
         stream << datum;
@@ -627,15 +606,15 @@ namespace MuonCalib {
       //std::cout << "Getting bool datatype" << std::endl;
       bool datum;
       if(!m_cscCoolStrSvc->getParameter(datum,coolKey,hash)){
-        m_log << MSG::ERROR << "Failed to retrieve data for key " << coolKey
-          << " data type " << dataType << endmsg;
+        ATH_MSG_ERROR("Failed to retrieve data for key " << coolKey
+          << " data type " << dataType);
       }
       else
         stream << datum;
     }
     else
     {
-      m_log << MSG::ERROR << "don't know datatype " << dataType << endmsg;
+      ATH_MSG_ERROR("don't know datatype " << dataType);
     }
     return stream.str();
 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.h
index 9cdf0545615211021e1f514fd20469baca9d195c..03530eda5a151ba1dda19ced5612c949ac61be8f 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.h
@@ -1,35 +1,29 @@
 /*
-  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 MUONCONDCOOL_CSCREADWRITECOOLSTR_H
 #define MUONCONDCOOL_CSCREADWRITECOOLSTR_H
+
 /** CscReadWriteCoolStrFile - simple algorithm to demonstrate reading/writing
   of string objects stored in COOL via CoolStrFileSvc*/
 
-
-#include <string>
-#include <fstream>
-#include <istream>
 #include "AthenaBaseComps/AthAlgorithm.h"
-#include "GaudiKernel/Algorithm.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "StoreGate/DataHandle.h"
+#include "GaudiKernel/ServiceHandle.h"
 
+#include "StoreGate/DataHandle.h"
 #include "MuonCondData/CscCondDataCollection.h"
 #include "MuonCondData/CscCondDataContainer.h"
-
 #include "MuonCondInterface/CscICoolStrSvc.h"
 #include "AthenaKernel/errorcheck.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
-#include "MuonIdHelpers/MuonIdHelperTool.h"
-
+#include <string>
+#include <fstream>
+#include <istream>
 
-class StoreGateSvc;
 
 namespace MuonCalib {
-  class CscICoolStrSvc;
   /**	
     @class CscReadWriteCoolStr
 
@@ -73,24 +67,17 @@ namespace MuonCalib {
       /**Retrieves data from cool database and adds to stream*/
       std::string RetrieveDataAsString(std::string coolKey, int hash, std::string dataType);
 
-      //StatusCode getIndex(const std::string & idString,  const std::string & cat,unsigned int & index ) const; 
-
       StatusCode writeToCool();
 
       StatusCode makeFile();
 
     private: 
-      MsgStream m_log;
       StoreGateSvc* p_detstore;
       ServiceHandle<MuonCalib::CscICoolStrSvc> m_cscCoolStrSvc;
 
       bool m_forceChanCat;
-
-      // properties
       bool m_write;
       std::vector<std::string> m_ifiles;
-      // methods
-
       bool m_read;
       std::string m_ofile;
       std::string m_outFileType;
@@ -99,10 +86,7 @@ namespace MuonCalib {
       CscCondDataContainer  * m_condDataContainer;
       std::map<std::string, CscCondDataCollectionBase *> m_condDataMap;
 
-      /**CscIdHelper is used to convert from identifiers to hash ids. MuonDetector manager is a
-        requirement on CscIdHelper*/
-      ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-        "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
+      ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
 
   };
 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.icc b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.icc
index dd8bcf05a1dcf7439477069c35daf9e6cb609ef7..6f08f86d153e187063649de2514fbb370571b643 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.icc
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/src/CscReadWriteCoolStr.icc
@@ -15,7 +15,6 @@
  */
 
 #include "MuonCondData/CscCondDataCollection.h"
-#include "MuonIdHelpers/CscIdHelper.h"
 #include "AthenaKernel/errorcheck.h"
 
 namespace MuonCalib {
@@ -23,7 +22,7 @@ namespace MuonCalib {
   template<typename data_type>
     StatusCode CscReadWriteCoolStr::procParameter3(std::istream & input, const std::string & name, const std::string & cat, const int & nBits, const int & shiftBits) {
       
-      m_log << MSG::INFO <<  "Processing parameter " << name << " for entry to CSC COOL database. Using version 3 processing" << endmsg;
+      ATH_MSG_INFO("Processing parameter " << name << " for entry to CSC COOL database. Using version 3 processing");
       //Retrieve collection of this parameter if we have seen it before.
       //Create new one if we have.
 
@@ -70,8 +69,7 @@ namespace MuonCalib {
 
       if(!coll)
       {
-        m_log << MSG::ERROR << "Collection is NULL in procParameter! This is a bug!" 
-          << endmsg;
+        ATH_MSG_ERROR("Collection is NULL in procParameter! This is a bug!");
         return StatusCode::RECOVERABLE;
       }
 
@@ -85,7 +83,7 @@ namespace MuonCalib {
 
         input >> std::hex >>  idString >> std::dec;
 
-        m_log << MSG::VERBOSE << "storing id " << idString << endmsg;
+        ATH_MSG_VERBOSE("storing id " << idString);
 
         //Check if at end of this parameter 
         if(idString == "<END_PAR>")
@@ -94,22 +92,22 @@ namespace MuonCalib {
         unsigned int index;
         if(!m_cscCoolStrSvc->stringIdToIndex(idString, cat, index).isSuccess())
         {
-          m_log << MSG::ERROR << "Failed at forming index from " << idString << endmsg;
+          ATH_MSG_ERROR("Failed at forming index from " << idString);
           return StatusCode::RECOVERABLE;
         }
-        m_log << MSG::DEBUG << "Reading index " << index << " (calculated from " << idString
-          <<  ")" << endmsg;
+        ATH_MSG_DEBUG("Reading index " << index << " (calculated from " << idString
+          <<  ")");
 
         if(index >= coll->getSize()){
-          m_log << MSG::ERROR << "Index " << index << " is above maximum of " 
-            << coll->getSize() -1 << endmsg;
+          ATH_MSG_ERROR("Index " << index << " is above maximum of " 
+            << coll->getSize() -1);
           return StatusCode::RECOVERABLE;
         }
 
         input >> datum;
 
-        m_log << MSG::VERBOSE << "Storing datum " << datum 
-          <<  " at index " << index << endmsg;
+        ATH_MSG_VERBOSE("Storing datum " << datum 
+          <<  " at index " << index);
 
         if(nBits >0) {
           data_type refDatum;
@@ -127,10 +125,10 @@ namespace MuonCalib {
 
 
         CscCondData<data_type> * condData = new CscCondData<data_type>(datum); 
-        if( (*coll)[index] != NULL && nBits <=0)
+        if( (*coll)[index] && nBits <=0)
         {
-          m_log << MSG::WARNING << "Writing to same index more than once (" << index 
-            << ") with value of " << datum << ". Overwriting previous value." << endmsg;
+          ATH_MSG_WARNING("Writing to same index more than once (" << index 
+            << ") with value of " << datum << ". Overwriting previous value.");
         }
 
         //Datavector will automatically delete old entry if its there
@@ -143,7 +141,7 @@ namespace MuonCalib {
   template<typename data_type>
     StatusCode CscReadWriteCoolStr::procParameter4(std::istream & input, const std::string & name, const std::string & cat, const int & nBits, const int & shiftBits) {
       
-      m_log << MSG::INFO <<  "Processing parameter " << name << " for entry to CSC COOL database. Using version 4 processing" << endmsg;
+      ATH_MSG_INFO("Processing parameter " << name << " for entry to CSC COOL database. Using version 4 processing");
       //Retrieve collection of this parameter if we have seen it before.
       //Create new one if we have.
 
@@ -190,8 +188,7 @@ namespace MuonCalib {
 
       if(!coll)
       {
-        m_log << MSG::ERROR << "Collection is NULL in procParameter! This is a bug!" 
-          << endmsg;
+        ATH_MSG_ERROR("Collection is NULL in procParameter! This is a bug!");
         return StatusCode::RECOVERABLE;
       }
 
@@ -211,7 +208,7 @@ namespace MuonCalib {
         if(cat != "CHANNEL"  && cat != "ASM"){
           //since we are assuming index = hash Id, we don't know what to do if we get 
           //a parameter that isn't one value per channel
-          m_log << MSG::FATAL << " category " << cat << " is not yet supported for input file type 04-00"  << endmsg;
+          ATH_MSG_FATAL(" category " << cat << " is not yet supported for input file type 04-00");
           return StatusCode::FAILURE;
         }
 
@@ -252,28 +249,28 @@ namespace MuonCalib {
             else if(direction == 'Y'  || direction == 'y')
               measuresPhi = 1;
             else{
-              m_log << MSG::FATAL << "Direction " << direction << " isn't valid!" << endmsg;
+              ATH_MSG_FATAL("Direction " << direction << " isn't valid!");
               return StatusCode::FAILURE;
             }
 
-            m_log << MSG::DEBUG << "looking up channel id for sector " << sector << " stationName " << stationName << " stationEta " << stationEta << " stationPhi " << stationPhi << " chamberLayer " << chamberLayer << " wireLayer " << wireLayer << " measuresPhi " << measuresPhi << " channel " << channel << endmsg;
+            ATH_MSG_DEBUG("looking up channel id for sector " << sector << " stationName " << stationName << " stationEta " << stationEta << " stationPhi " << stationPhi << " chamberLayer " << chamberLayer << " wireLayer " << wireLayer << " measuresPhi " << measuresPhi << " channel " << channel);
 
-            Identifier chanId = m_muonIdHelperTool->cscIdHelper().channelID(stationName, stationEta, stationPhi, 
+            Identifier chanId = m_idHelperSvc->cscIdHelper().channelID(stationName, stationEta, stationPhi, 
                 chamberLayer, wireLayer, measuresPhi, channel);
             IdentifierHash hash;
-            m_muonIdHelperTool->cscIdHelper().get_channel_hash(chanId, hash);
+            m_idHelperSvc->cscIdHelper().get_channel_hash(chanId, hash);
             unsigned int index = (int)hash;
 
-            m_log << MSG::DEBUG << "Reading index " << index << endmsg;
+            ATH_MSG_DEBUG("Reading index " << index);
 
             if(index >= coll->getSize()){
-              m_log << MSG::ERROR << "Index " << index << " is above maximum of " 
-                << coll->getSize() -1 << endmsg;
+              ATH_MSG_ERROR("Index " << index << " is above maximum of " 
+                << coll->getSize() -1);
               return StatusCode::RECOVERABLE;
             }
 
-            m_log << MSG::VERBOSE << "Storing datum " << datum 
-              <<  " at index " << index << endmsg;
+            ATH_MSG_VERBOSE("Storing datum " << datum 
+              <<  " at index " << index);
 
             if(nBits >0) {
               data_type refDatum;
@@ -292,10 +289,10 @@ namespace MuonCalib {
             //Store value in CSC Conditions data handle
             //(Values stored this way rather than raw in vector to allow data_type independant vectors of CscCondDataBase)
             CscCondData<data_type> * condData = new CscCondData<data_type>(datum); 
-            if( (*coll)[index] != NULL && nBits <=0)
+            if( (*coll)[index] && nBits <=0)
             {
-              m_log << MSG::WARNING << "Writing to same index more than once (" << index 
-                << ") with value of " << datum << ". Overwriting previous value." << endmsg;
+              ATH_MSG_WARNING("Writing to same index more than once (" << index 
+                << ") with value of " << datum << ". Overwriting previous value.");
             }
 
             //Datavector will automatically delete old entry if its there
@@ -340,10 +337,10 @@ namespace MuonCalib {
             //loop through all strips this ASM covers
             for(int layer_i = layerSince; layer_i < layerUntil; layer_i++){
               for(int strip_i = stripSince; strip_i < stripUntil ; strip_i++){
-                Identifier chanId = m_muonIdHelperTool->cscIdHelper().channelID(stationName, stationEta, stationPhi, 
+                Identifier chanId = m_idHelperSvc->cscIdHelper().channelID(stationName, stationEta, stationPhi, 
                     chamberLayer, layer_i, measuresPhi, strip_i);
                 IdentifierHash hash;
-                m_muonIdHelperTool->cscIdHelper().get_channel_hash(chanId, hash);
+                m_idHelperSvc->cscIdHelper().get_channel_hash(chanId, hash);
 
                 //assuming hashId = index
                 int index = hash;
@@ -366,10 +363,10 @@ namespace MuonCalib {
                 //Store value in CSC Conditions data handle
                 //(Values stored this way rather than raw in vector to allow data_type independant vectors of CscCondDataBase)
                 CscCondData<data_type> * condData = new CscCondData<data_type>(datum); 
-                if( (*coll)[index] != NULL && nBits <=0)
+                if( (*coll)[index] && nBits <=0)
                 {
-                  m_log << MSG::WARNING << "Writing to same index more than once (" << index 
-                    << ") with value of " << datum << ". Overwriting previous value." << endmsg;
+                  ATH_MSG_WARNING("Writing to same index more than once (" << index 
+                    << ") with value of " << datum << ". Overwriting previous value.");
                 }
 
                 //Datavector will automatically delete old entry if its there
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondInterface/MuonCondInterface/IRPCConditionsSvc.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondInterface/MuonCondInterface/IRPCConditionsSvc.h
index 84b3f541758f3b2161543187ffc27ebf32a116ee..d2d0efd0a519e2005ae91cffb6dcb18228297bc8 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondInterface/MuonCondInterface/IRPCConditionsSvc.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondInterface/MuonCondInterface/IRPCConditionsSvc.h
@@ -1,24 +1,23 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 //vitrual interface for all the Muon RPC technologies 
-//
+
 #ifndef IRPCConditionsSvc_h
 #define IRPCConditionsSvc_h
-//Gaudi Includes
+
 #include "GaudiKernel/IInterface.h"
+#include "AthenaKernel/IOVSvcDefs.h"
 
-//STL includes
 #include <list>
 #include <string>
-#include "AthenaKernel/IOVSvcDefs.h"
-//forward declarations
+#include <vector>
+#include <map>
+
 class Identifier;
-class IdentifierHash;
 class StatusCode;
 
-
 class IRPCConditionsSvc: virtual public IInterface{
 public:
   virtual ~IRPCConditionsSvc(){}
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/CSCCondSummarySvc.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/CSCCondSummarySvc.h
index 4cfeb58bc65b2badfff667516dbcee5666becf78..7774bf0f676f5ee07bc7a0a5b6b60f78fcab8c40 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/CSCCondSummarySvc.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/CSCCondSummarySvc.h
@@ -1,53 +1,34 @@
 /*
-  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 MUONCONDSVC_CSCCONDSUMMARYSVC_H
 #define MUONCONDSVC_CSCCONDSUMMARYSVC_H
-//STL includes
+
 #include <string>
 #include <set>
-
 #include <vector>
 
-//Gaudi Includes
+#include "MuonCondInterface/ICSCConditionsSvc.h"
 #include "AthenaBaseComps/AthService.h"
 #include "GaudiKernel/ServiceHandle.h"
-#include "GaudiKernel/ToolHandle.h"
 
-//local includes
 #include "MuonCondSvc/MuonHierarchy.h"
-#include "MuonCondInterface/ICSCConditionsSvc.h"
-//Gaudi includes
-#include "AthenaBaseComps/AthService.h"
-#include "GaudiKernel/ServiceHandle.h"
 #include "StoreGate/DataHandle.h"
 #include "StoreGate/StoreGateSvc.h"
-
-//Athena includes
-#include "Identifier/Identifier.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
-#include "MuonIdHelpers/MuonIdHelperTool.h"
-
-//forward declarations
 template <class TYPE> class SvcFactory;
 class ISvcLocator;
-class IdentifierHash;
-class StatusCode;
-
-class Identifier;
-class ICSCConditionsSvc;
-
 
-class CSCCondSummarySvc: virtual public ICSCConditionsSvc, public AthService{
+class CSCCondSummarySvc: virtual public ICSCConditionsSvc, public AthService {
   friend class SvcFactory<CSCCondSummarySvc>;
 public:
 
   CSCCondSummarySvc( const std::string & name, ISvcLocator* svc);
-  virtual ~CSCCondSummarySvc(){}
+  virtual ~CSCCondSummarySvc()=default;
   virtual StatusCode initialize();
-  virtual StatusCode finalize();
   virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface );
   static const InterfaceID & interfaceID();
 
@@ -73,12 +54,10 @@ public:
   //StringArrayProperty m_reportingServices; //!< list of services to be used
  ServiceHandleArray<ICSCConditionsSvc> m_reportingServices; //!< list of services to be used
  
- ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-   "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
+ ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
   
  std::vector<Identifier> m_emptyId;
  std::vector<std::string> m_empty;
- const CscIdHelper * m_cscHelper;
  
  ServiceHandle<StoreGateSvc> m_detStore;
  bool m_noReports; 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/MDTCondSummarySvc.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/MDTCondSummarySvc.h
index 3106150fce3dddbcc3e90d15a66a71b7128dc5b7..713805f1f93bd414f847222e626aaca6ecfe4acc 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/MDTCondSummarySvc.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/MDTCondSummarySvc.h
@@ -1,65 +1,38 @@
 /*
-  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 MUONCONDSVC_MDTCONDSUMMARYSVC_H
 #define MUONCONDSVC_MDTCONDSUMMARYSVC_H
-//STL includes
+
 #include <string>
 #include <set>
-
 #include <vector>
 
-//Gaudi Includes
+#include "MuonCondInterface/IMDTConditionsSvc.h"
 #include "AthenaBaseComps/AthService.h"
 #include "GaudiKernel/ServiceHandle.h"
-#include "GaudiKernel/ToolHandle.h"
 
-//local includes
 #include "MuonCondSvc/MuonHierarchy.h"
-
-#include "MuonCondInterface/IMDTConditionsSvc.h"
 #include "MuonCondInterface/IMDT_DCSConditionsSvc.h"
 #include "MuonCondInterface/IMDT_DCSConditionsRun2Svc.h"
-//Gaudi includes
-#include "AthenaBaseComps/AthService.h"
-#include "GaudiKernel/ServiceHandle.h"
 #include "StoreGate/DataHandle.h"
 #include "StoreGate/StoreGateSvc.h"
-
-//Athena includes
-#include "Identifier/Identifier.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
-#include "MuonIdHelpers/MuonIdHelperTool.h"
-
-
-
-
-//forward declarations
 template <class TYPE> class SvcFactory;
-class ISvcLocator;
-class IdentifierHash;
-class StatusCode;
-
-class Identifier;
-class IMDTConditionsSvc;
-class IMDT_DCSConditionsSvc;
-class IMDT_DCSConditionsRun2Svc;
-
 
 class MDTCondSummarySvc: virtual public IMDTConditionsSvc, public AthService{
   friend class SvcFactory<MDTCondSummarySvc>;
 public:
 
   MDTCondSummarySvc( const std::string & name, ISvcLocator* svc);
-  virtual ~MDTCondSummarySvc(){}
+  virtual ~MDTCondSummarySvc()=default;
   virtual StatusCode initialize();
-  virtual StatusCode finalize();
   virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface );
   static const InterfaceID & interfaceID();
 
-
   virtual StatusCode initInfo(IOVSVC_CALLBACK_ARGS_P(I,keys));
   StatusCode update_MDT(IOVSVC_CALLBACK_ARGS_P(I,keys));
  
@@ -85,13 +58,10 @@ private:
   
  std::vector<Identifier> m_emptyId;
  std::vector<std::string> m_empty;
- ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-   "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
-
+ ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
 
  ServiceHandle<StoreGateSvc> m_detStore;
 
-
  bool m_noReports; 
 
  //compare method for the binary search
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/RPCCondSummarySvc.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/RPCCondSummarySvc.h
index b37b4261c0433ad40c7ef3566a6b192bb423d909..cbcb2140ce11cef934c9b09a98bd5d1837a96aef 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/RPCCondSummarySvc.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/RPCCondSummarySvc.h
@@ -1,51 +1,33 @@
 /*
-  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 MUONCONDSVC_RPCCONDSUMMARYSVC_H
 #define MUONCONDSVC_RPCCONDSUMMARYSVC_H
-//STL includes
-#include <string>
-#include <set>
-#include <vector>
-//Gaudi includes
+
+#include "MuonCondInterface/IRPCConditionsSvc.h"
 #include "AthenaBaseComps/AthService.h"
 #include "GaudiKernel/ServiceHandle.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "StoreGate/DataHandle.h"
-#include "StoreGate/StoreGateSvc.h"
 
-//Athena includes
-#include "Identifier/Identifier.h"
+#include "StoreGate/DataHandle.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
-
-//local includes
-//#include "MuonCondInterface/IMuonConditionsSvc.h"
 #include "MuonCondSvc/MuonHierarchy.h"
-#include "MuonCondInterface/IRPCConditionsSvc.h"
 #include "MuonCondInterface/IRPC_STATUSConditionsSvc.h"
 #include "MuonCondInterface/IRPC_DCSConditionsSvc.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
-#include "MuonIdHelpers/MuonIdHelperTool.h"
-
+#include <set>
 
 //forward declarations
 template <class TYPE> class SvcFactory;
-class ISvcLocator;
-class IdentifierHash;
-class StatusCode;
-class IRPCConditionsSvc;
-class IRPC_STATUSConditionsSvc;
-class IRPC_DCSConditionsSvc;
 
 class RPCCondSummarySvc: virtual public IRPCConditionsSvc, public AthService{
   friend class SvcFactory<RPCCondSummarySvc>;
 public:
   
   RPCCondSummarySvc( const std::string & name, ISvcLocator* svc);
-  virtual ~RPCCondSummarySvc(){}
+  virtual ~RPCCondSummarySvc()=default;
   virtual StatusCode initialize();
-  virtual StatusCode finalize();
   virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface );
   static const InterfaceID & interfaceID();
 
@@ -90,8 +72,7 @@ public:
 private:
   
   ServiceHandleArray<IRPCConditionsSvc> m_reportingServices; //!< list of services to be used
-  ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-    "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
+  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
   ServiceHandle<StoreGateSvc> m_detStore;
   ServiceHandle<IRPC_STATUSConditionsSvc> m_rpc_StatusSvc   ;
   ServiceHandle<IRPC_DCSConditionsSvc>    m_rpc_DCSSvc      ;
@@ -99,9 +80,6 @@ private:
   bool m_noReports;
   std::vector<Identifier> m_emptyId;
   std::vector<std::string> m_empty;
- 
-
-
 
   //compare method for the binary search
   static bool Compare(const Identifier &a, const Identifier &b) {return (a>b);}
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/RpcCoolStrSvc.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/RpcCoolStrSvc.h
index 2175b433230045cadd6b4ba6428043fb6d9f90a8..632bd4496215f2a7a29656371b35fe08d1b0768c 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/RpcCoolStrSvc.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/RpcCoolStrSvc.h
@@ -4,48 +4,31 @@
 
 #ifndef MUONCONDSVC_RPCCOOLSTRSVC_H
 #define MUONCONDSVC_RPCCOOLSTRSVC_H
+
 /**RpcCoolStrSvc - Class with methods for reading and writing to cool databae*/
 
-#include <vector>
-#include <string>
-#include <fstream>
+#include "MuonCondInterface/RpcICoolStrSvc.h"
+#include "AthenaBaseComps/AthService.h"
 
-#include "GaudiKernel/Service.h"
-#include "GaudiKernel/MsgStream.h"
-#include "StoreGate/StoreGate.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "StoreGate/StoreGateSvc.h"
 #include "StoreGate/DataHandle.h"
 #include "GaudiKernel/IInterface.h"
-#include "AthenaBaseComps/AthService.h"
-
-
-//Added for attribute list declarations (might not need all of these)
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 #include "CoralBase/Attribute.h"
 #include "CoralBase/AttributeListSpecification.h"
-
-//Added to use RpcIdHelper
 #include "Identifier/Identifier.h"
-//#include "MuonGeoModel/MuonDetectorManager.h"
-// temporary includes to access CLOBs
-//#include "CoolKernel/ExtendedAttributeListSpecification.h"
-//#include "CoolKernel/PredefinedStorageHints.h"
-#include "MuonIdHelpers/MuonIdHelperTool.h"
-
-//Calib conditions data classes
 #include "MuonCondData/RpcCondParType.h"
 #include "MuonCondData/RpcCalibData.h"
 #include "MuonCondData/RpcOnlineDBEntry.h"
 #include "MuonCondData/RpcCalibDataContainer.h"
 
-#include "MuonCondInterface/RpcICoolStrSvc.h"
+#include <vector>
+#include <string>
+#include <fstream>
 
-class RpcIdHelper;
 template <class TYPE> class SvcFactory;
-namespace MuonCalib {
 
+namespace MuonCalib {
   /**
     @class RpcCoolStrSvc
 
@@ -64,15 +47,12 @@ namespace MuonCalib {
 
     public:
     RpcCoolStrSvc(const std::string& name, ISvcLocator* svc);
-    virtual ~RpcCoolStrSvc();
+    virtual ~RpcCoolStrSvc()=default;
 
     virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface);
 
     virtual const InterfaceID& type() const;
-
-
     virtual StatusCode initialize();
-    virtual StatusCode finalize();
 
     /**putFile copies data from a calibration file to the database. 
       @param filename The name of the file to copy from.
@@ -92,36 +72,15 @@ namespace MuonCalib {
     virtual StatusCode makeOnlineFile(const std::string filename) const;
 
     private:
-
-    //Private Data Members:
-
     /**p_detstore hold a pointer to the transient data storage*/
     StoreGateSvc* p_detstore;
 
-  
-
-    /**RpcIdHelper is used to convert from identifiers to hash ids. MuonDetector manager is a
-      requirement on RpcIdHelper*/
-
     mutable std::vector<const RpcCalibDBEntry*> m_theEntries;
     mutable std::vector<const RpcOnlineDBEntry*> m_theOnlineEntries;
 
-
-    ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-      "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
-
-    //      const MuonGM::MuonDetectorManager * m_muonMgr;
-
-    /// Conditions Attribute List collections used for getting datahandles for callback functions*/
-    // const CondAttrListCollection* m_runAtrColl;
-    // const CondAttrListCollection* m_pulserAtrColl;
-  /**m_log used for sending messages*/
-    mutable MsgStream m_log;
     /**Cool folder name*/
     std::string m_folder;
 
-    bool m_debugLevel;
-
     virtual StatusCode writeToDB() const;
     virtual StatusCode writeToOnlineDB() const;
 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/TGCCondSummarySvc.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/TGCCondSummarySvc.h
index a383b0f4e298214e060cdc0043009ff9c9436939..e73ddccdadc3ee70d95f841404151520ef6f49d0 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/TGCCondSummarySvc.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/MuonCondSvc/TGCCondSummarySvc.h
@@ -1,72 +1,46 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef MUONCONDSVC_TGCCONDSUMMARYSVC_H
 #define MUONCONDSVC_TGCCONDSUMMARYSVC_H
-//STL includes
+
 #include <string>
 #include <set>
-
 #include <vector>
 
-//Gaudi Includes
+#include "MuonCondInterface/ITGCConditionsSvc.h"
 #include "AthenaBaseComps/AthService.h"
 #include "GaudiKernel/ServiceHandle.h"
 
-//local includes
 #include "MuonCondSvc/MuonHierarchy.h"
-//#include "MuonCondInterface/IMuonConditionsSvc.h"
-#include "MuonCondInterface/ITGCConditionsSvc.h"
-//Gaudi includes
-#include "AthenaBaseComps/AthService.h"
-#include "GaudiKernel/ServiceHandle.h"
 #include "StoreGate/DataHandle.h"
-#include "StoreGate/StoreGateSvc.h"
-
-//Athena includes
 #include "Identifier/Identifier.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
 
 template <class TYPE> class SvcFactory;
-class ISvcLocator;
-class IdentifierHash;
-class TgcIdHelper;
-class StatusCode;
-
-class Identifier;
-class ITGCConditionsSvc;
-
 
 class TGCCondSummarySvc: virtual public ITGCConditionsSvc, public AthService{
   friend class SvcFactory<TGCCondSummarySvc>;
 public:
 
   TGCCondSummarySvc( const std::string & name, ISvcLocator* svc);
-  virtual ~TGCCondSummarySvc(){}
+  virtual ~TGCCondSummarySvc()=default;
   virtual StatusCode initialize();
-  virtual StatusCode finalize();
   virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface );
   static const InterfaceID & interfaceID();
 
   virtual StatusCode initInfo(IOVSVC_CALLBACK_ARGS_P(I,keys));
   StatusCode update_TGC(IOVSVC_CALLBACK_ARGS_P(I,keys));
 
-  // virtual bool isActive(const Identifier & elementId, const MuonConditions::Hierarchy h=MuonConditions::DEFAULT);
-  //virtual bool isActive(const IdentifierHash & elementHash);
   virtual bool isGoodChamber(const Identifier & Id);
- 
-  
   virtual const std::vector<Identifier> &deadStationsId();
-  
- 
+
 private:
 
  ServiceHandleArray<ITGCConditionsSvc> m_reportingServices; //!< list of services to be used
- 
   
  std::vector<Identifier> m_emptyId;
- const TgcIdHelper * m_pHelper;
  
  ServiceHandle<StoreGateSvc> m_detStore;
  bool m_noReports; 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CSCCondSummarySvc.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CSCCondSummarySvc.cxx
index a10f651560b6d3d7c9dd422c483de76dd2174410..2fdf4ff622b711b258a0c776676c6937ea3bb5f3 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CSCCondSummarySvc.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CSCCondSummarySvc.cxx
@@ -3,24 +3,18 @@
 */
 
 #include "MuonCondSvc/CSCCondSummarySvc.h"
+
 #include <vector>
 #include <list>
 #include <algorithm>
 #include <sstream>
 #include <iterator>
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/StatusCode.h"
-#include "Identifier/IdentifierHash.h"
-#include "MuonIdHelpers/CscIdHelper.h"
-#include "MuonCondInterface/ICSCConditionsSvc.h"
-#include "Identifier/Identifier.h"
 
 CSCCondSummarySvc::CSCCondSummarySvc( const std::string& name, ISvcLocator* pSvcLocator ) : 
   AthService(name, pSvcLocator),
   m_reportingServices(name),
   m_detStore("DetectorStore",name),
-  m_noReports(true){
-  //  m_reportingServices.push_back("CSC_DCSConditionsSvc");
+  m_noReports(true) {
   declareProperty("ConditionsServices",m_reportingServices);
   declareProperty("DetStore", m_detStore);
   declareProperty("UseSimulation",m_usesimulation=false);
@@ -29,63 +23,36 @@ CSCCondSummarySvc::CSCCondSummarySvc( const std::string& name, ISvcLocator* pSvc
 
 StatusCode
 CSCCondSummarySvc::initialize(){
-  StatusCode sc(StatusCode::FAILURE);
   m_noReports = m_reportingServices.empty();
- 
-  sc = m_detStore.retrieve();
-  if (sc.isFailure()) {
-    msg(MSG::FATAL) << "DetectorStore service not found !" << endmsg;
-    return sc;
-  } else {
-    msg(MSG::INFO) << "DetectorStore service found !" << endmsg;
-  } 
- 
-  ATH_CHECK( m_muonIdHelperTool.retrieve() );
+  ATH_CHECK(m_detStore.retrieve());
+  ATH_CHECK(m_idHelperSvc.retrieve());
   
   if(m_usesimulation) {
-    
     m_reportingServices.empty(); 
-    msg(MSG::INFO) << "Simulation setup: No Conditions Data for CSC !" << endmsg;
- 
-  } else msg(MSG::INFO) << "Data DCS Conditions CSC !" << endmsg;
+    ATH_MSG_DEBUG("Simulation setup: No Conditions Data for CSC !");
+  } else ATH_MSG_DEBUG("Data DCS Conditions CSC !");
   
   if (m_noReports){
-    sc=StatusCode::SUCCESS;
-    msg(MSG::INFO)<<"No services were selected for the CSC summary"<<endmsg;
+    ATH_MSG_DEBUG("No services were selected for the CSC summary");
   } else {
-    sc = m_reportingServices.retrieve();
-    if ( sc.isFailure() ) {
-      msg(MSG::FATAL) << "Failed to retrieve " << m_reportingServices << endmsg;
-      return StatusCode::FAILURE;
-    }
+    ATH_CHECK(m_reportingServices.retrieve());
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator pSvc= m_reportingServices.begin();
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator pLastSvc= m_reportingServices.end();
      for (;pSvc not_eq pLastSvc; ++pSvc){
    
        const std::string& svcName = pSvc->name();
-      msg(MSG::INFO)<<"Using "<< svcName << endmsg;
+      ATH_MSG_DEBUG("Using "<< svcName);
       if (m_detStore->regFcn(&ICSCConditionsSvc::initInfo,&**pSvc,
                            &CSCCondSummarySvc::update_CSC,this) != StatusCode::SUCCESS){ 
-        msg(MSG::WARNING)<<"Unable to register call back for "<<svcName<<endmsg; 
+        ATH_MSG_WARNING("Unable to register call back for "<<svcName); 
       } else {
-        msg(MSG::INFO)<<"initInfo registered for call-back for "<<svcName<<endmsg;
+        ATH_MSG_DEBUG("initInfo registered for call-back for "<<svcName);
       }
     }
   }
-  return sc;
-}
-
-
-
-//Finalize
-StatusCode
-CSCCondSummarySvc::finalize(){
-  msg(MSG::INFO)<<"Thank-you for using the CSCCondSummarySvc, version "<<PACKAGE_VERSION<<endmsg;
-  //Code
   return StatusCode::SUCCESS;
 }
 
-
 StatusCode
 CSCCondSummarySvc::queryInterface(const InterfaceID& riid, void** ppvInterface)
 {
@@ -100,27 +67,20 @@ CSCCondSummarySvc::queryInterface(const InterfaceID& riid, void** ppvInterface)
 }
 
 StatusCode CSCCondSummarySvc::update_CSC(IOVSVC_CALLBACK_ARGS){
-
-  msg(MSG::INFO)<<"Register Call Back for CSC System"<<endmsg;
-
-   return StatusCode::SUCCESS;
+  ATH_MSG_DEBUG("Register Call Back for CSC System");
+  return StatusCode::SUCCESS;
 }
 
 StatusCode CSCCondSummarySvc::initInfo(IOVSVC_CALLBACK_ARGS){
-
-  msg(MSG::INFO)<<"Not to be called just dummy"<<endmsg;
-   return StatusCode::SUCCESS;
+  ATH_MSG_DEBUG("Not to be called just dummy");
+  return StatusCode::SUCCESS;
 }
 
 
 bool CSCCondSummarySvc::isGoodWireLayer(const Identifier & Id) const{
   bool result=true;
   // check ID
-  
-  Identifier ChamberId = m_muonIdHelperTool->cscIdHelper().elementID(Id);
-  
-  // Identifier WireLayerId = m_muonIdHelperTool->cscIdHelper().channelID(ChamberId, 1, wirelayer,1,1);
-     
+  Identifier ChamberId = m_idHelperSvc->cscIdHelper().elementID(Id);
   if (not m_noReports){
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator svc= m_reportingServices.begin();
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator lastSvc= m_reportingServices.end();
@@ -129,15 +89,6 @@ bool CSCCondSummarySvc::isGoodWireLayer(const Identifier & Id) const{
 	bool found = std::binary_search((*svc)->deadStationsId().begin(),(*svc)->deadStationsId().end(),ChamberId,Compare);
 	if(found) result= false;
       }
-      
-    //   if ((*svc)->deadWireLayersId().size()!=0 && result==true){
-//  	bool found = std::binary_search((*svc)->deadWireLayersId().begin(),(*svc)->deadWireLayersId().end(),WirelayerId,Compare);
-//  	if(found) result= false;
-//       }
-//       else{
-// 	msg(MSG::INFO)<<" Dead Wirelayer from the service  are not availables "<<(*svc) <<endmsg;
-	
-//       }
     }
     
   } 
@@ -145,14 +96,9 @@ bool CSCCondSummarySvc::isGoodWireLayer(const Identifier & Id) const{
   return result;
 }
 
-
-
-
 bool CSCCondSummarySvc::isGood(const Identifier & Id) const{
   bool total_result = true;
-//  int counter=0;
-//  Identifier WirelayerId = m_muonIdHelperTool->cscIdHelper().multilayerID(Id);
-  Identifier ChamberId = m_muonIdHelperTool->cscIdHelper().elementID(Id);
+  Identifier ChamberId = m_idHelperSvc->cscIdHelper().elementID(Id);
   if (not m_noReports){
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator svc= m_reportingServices.begin();
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator lastSvc= m_reportingServices.end();
@@ -160,21 +106,14 @@ bool CSCCondSummarySvc::isGood(const Identifier & Id) const{
     for (;svc not_eq lastSvc;++svc){
       if ((*svc)->deadStationsId().size()!=0) 
 	{
-	  msg(MSG::VERBOSE)<<" dentro chamber dropped "<<endmsg; 
+	  ATH_MSG_VERBOSE(" dentro chamber dropped "); 
 	  bool found = std::binary_search( 
 					  (*svc)->deadStationsId().begin(),(*svc)->deadStationsId().end(),ChamberId,Compare);
 	  if(found) total_result = false;
-	  msg(MSG::VERBOSE)<<" Chamber Dropped by DCS or not installed at all "<<endmsg;
-	  
-// 	}else if ((*svc)->deadWireLayersId().size()!=0){
-	
-// 	bool found = std::binary_search( 
-// 					(*svc)->deadWireLayersId().begin(),(*svc)->deadWireLayersId().end(),WirelayerId,Compare);
-// 	if(found) total_result= false;
-// 	msg(MSG::VERBOSE)<<" Chamber with WireLayer Dropped  "<<endmsg;
-	
+	  ATH_MSG_VERBOSE(" Chamber Dropped by DCS or not installed at all ");
+
 	}else total_result = true;
-      msg(MSG::VERBOSE)<<"Thank-you for using the CSCCondSummarySvc,  service "<<endmsg;
+      ATH_MSG_VERBOSE("Thank-you for using the CSCCondSummarySvc,  service ");
     }   
   }
 
@@ -185,11 +124,10 @@ bool CSCCondSummarySvc::isGood(const Identifier & Id) const{
 bool CSCCondSummarySvc::isGoodChamber(const Identifier & Id) const{
   bool result=true;
   int counter =0;
-  //Identifier chamberId = m_muonIdHelperTool->cscIdHelper().elementID(Id);
    ServiceHandleArray<ICSCConditionsSvc>::const_iterator svc= m_reportingServices.begin();
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator lastSvc= m_reportingServices.end();
     for (;svc not_eq  lastSvc;svc++){
-      msg(MSG::INFO)<<" Dead Stations from the service , size= "<<(*svc)->deadStationsId().size()<<endmsg;
+      ATH_MSG_WARNING(" Dead Stations from the service , size= "<<(*svc)->deadStationsId().size());
       if ((*svc)->deadStationsId().size()!=0){
 
 	bool found = std::binary_search( 
@@ -198,13 +136,13 @@ bool CSCCondSummarySvc::isGoodChamber(const Identifier & Id) const{
 	if(found) counter++;
       }
       else{
-	msg(MSG::INFO)<<" Dead Stations from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Stations from the service  are not availables "<<(*svc));
 	
       }
     }
   
     if (counter!=0) result = false; 
-    msg(MSG::INFO)<<" Dead Stations from the service  "<< counter <<endmsg;
+    ATH_MSG_WARNING(" Dead Stations from the service  "<< counter);
     
     return result;
   
@@ -216,7 +154,6 @@ bool CSCCondSummarySvc::isGoodChamber(const Identifier & Id) const{
 
 
 const std::vector<Identifier>& CSCCondSummarySvc::deadStationsId() const{
-  //m_emptyId.clear();
   if (not m_noReports){
    ServiceHandleArray<ICSCConditionsSvc>::const_iterator svc= m_reportingServices.begin();
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator lastSvc= m_reportingServices.end();
@@ -225,7 +162,7 @@ const std::vector<Identifier>& CSCCondSummarySvc::deadStationsId() const{
       if ((*svc)->deadStationsId().size()!=0){
 	return (*svc)->deadStationsId();
       }else{
-	msg(MSG::INFO)<<" Dead Stations from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Stations from the service are not availables "<<(*svc));
       }
     }
     
@@ -236,7 +173,6 @@ const std::vector<Identifier>& CSCCondSummarySvc::deadStationsId() const{
 
 
 const std::vector<Identifier>& CSCCondSummarySvc::deadWireLayersId() const{
-  //m_emptyId.clear();
   if (not m_noReports){
      ServiceHandleArray<ICSCConditionsSvc>::const_iterator svc= m_reportingServices.begin();
      ServiceHandleArray<ICSCConditionsSvc>::const_iterator lastSvc= m_reportingServices.end();
@@ -245,7 +181,7 @@ const std::vector<Identifier>& CSCCondSummarySvc::deadWireLayersId() const{
       if ((*svc)->deadWireLayersId().size()!=0){
 	return (*svc)->deadWireLayersId();
       }else{
-	msg(MSG::INFO)<<" Dead Wire from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Wire from the service  are not availables "<<(*svc));
       }
     }
     
@@ -255,7 +191,6 @@ const std::vector<Identifier>& CSCCondSummarySvc::deadWireLayersId() const{
 
 
 const std::vector<std::string>& CSCCondSummarySvc::deadStations() const{
-  //m_emptyId.clear();
   if (not m_noReports){
    ServiceHandleArray<ICSCConditionsSvc>::const_iterator svc= m_reportingServices.begin();
     ServiceHandleArray<ICSCConditionsSvc>::const_iterator lastSvc= m_reportingServices.end();
@@ -264,7 +199,7 @@ const std::vector<std::string>& CSCCondSummarySvc::deadStations() const{
       if ((*svc)->deadStations().size()!=0){
 	return (*svc)->deadStations();
       }else{
-	msg(MSG::INFO)<<" Dead Stations from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Stations from the service  are not availables "<<(*svc));
       }
     }
     
@@ -275,7 +210,6 @@ const std::vector<std::string>& CSCCondSummarySvc::deadStations() const{
 
 
 const std::vector<std::string>& CSCCondSummarySvc::deadWireLayers() const{
-  //m_emptyId.clear();
   if (not m_noReports){
      ServiceHandleArray<ICSCConditionsSvc>::const_iterator svc= m_reportingServices.begin();
      ServiceHandleArray<ICSCConditionsSvc>::const_iterator lastSvc= m_reportingServices.end();
@@ -284,7 +218,7 @@ const std::vector<std::string>& CSCCondSummarySvc::deadWireLayers() const{
       if ((*svc)->deadWireLayers().size()!=0){
 	return (*svc)->deadWireLayers();
       }else{
-	msg(MSG::INFO)<<" Dead Wire from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Wire from the service  are not availables "<<(*svc));
       }
     }
     
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.cxx
index 0d3999864fb1f8c12bb05ff4f2321934f1c0af39..d246a5344563fdb2d5cf94a40cfd0187aa0f4226 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.cxx
@@ -2,10 +2,6 @@
   Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-//*****************************************************************************************8
-//******************************************************************************************
-//CscCoolStrSvc.cxx
-//******************************************************************************************
 //Service designed to read in calibration files to the cool database. Can also read them
 //back out again to check.
 // author lampen@physics.arizona.edu
@@ -18,12 +14,10 @@
 #include <algorithm>//for transform
 #include <cctype> //for toupper
 #include <inttypes.h> 
-#include "GaudiKernel/MsgStream.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 #include "CoralBase/Attribute.h"
 #include "CoralBase/AttributeListSpecification.h"
-#include "MuonIdHelpers/CscIdHelper.h"
 #include "MuonCondData/CscCondDataCollection.h"
 #include "MuonCondData/CscCondDataContainer.h"
 #include "StoreGate/DataHandle.h"
@@ -32,7 +26,6 @@ namespace MuonCalib {
   CscCoolStrSvc::CscCoolStrSvc(const std::string& name, ISvcLocator* svc) :
     AthService(name,svc),
     p_detstore(nullptr),
-    m_log(msgSvc(),name), 
     m_maxChamberHash(32), //retrieved later from cscIdHelper
     m_maxChanHash(61440), //retrieved later from cscIdHelper
     m_dbCache(0),
@@ -44,8 +37,6 @@ namespace MuonCalib {
     m_t0PhaseCondData(nullptr),
     m_t0BaseCondData(nullptr),
     m_statusCondData(nullptr),
-    m_debug(false),
-    m_verbose(false),
     m_numFailedRequests(0),
     m_maxChamberCoolChannel(32),
     m_maxLayerHash(255),
@@ -56,8 +47,6 @@ namespace MuonCalib {
     m_accBools(nullptr),
     m_accVoid(nullptr)
   {
-    //declare properties
-
     declareProperty("ParNames", m_parNameVec);          //Parameter name
     declareProperty("ParSGKeys", m_parSGKeyVec);        //Storegate key for retrieval
     declareProperty("ParFolders",m_parFolderVec);       //Not used here. Provided for access by outside algorithms, primarily for writing.
@@ -102,41 +91,12 @@ namespace MuonCalib {
   //-------------------------------------------------------------------
   StatusCode CscCoolStrSvc::initialize()
   {
-    // service initialisation 
-    m_log.setLevel(outputLevel());    //individual outputlevel not known before inialize
-    m_debug = (m_log.level() <= MSG::DEBUG);
-    m_verbose = (m_log.level() <= MSG::VERBOSE);
-
-    m_log << MSG::INFO << "Initializing CscCoolStrSvc" <<endmsg;
-
-    // get detector store, linked to cool database by other algorithms in your
-    // jobOptions file.
-    if (StatusCode::SUCCESS!=service("DetectorStore",p_detstore)) {
-      m_log << MSG::FATAL << "Detector store not found" << endmsg; 
-      return StatusCode::FAILURE;
-    }
-
-    //Setup CscIdHelper
-    StoreGateSvc* detStore= 0;
-    StatusCode sc = serviceLocator()->service("DetectorStore",detStore);
-
-    if(sc.isSuccess())
-    {
-      sc = m_muonIdHelperTool.retrieve();
-      if(sc.isFailure())
-      {
-        m_log << MSG::FATAL << "Cannot retrieve MuonIdHelperTool" << endmsg;
-        return sc;
-      }
-    }
-    else
-    {
-      m_log << MSG::FATAL << "DetectorStore service not found " << endmsg;
-      return StatusCode::FAILURE;
-    } 
+    ATH_MSG_DEBUG("Initializing CscCoolStrSvc");
+    ATH_CHECK(service("DetectorStore",p_detstore));
+    ATH_CHECK(m_idHelperSvc.retrieve());
 
-    m_moduleContext = m_muonIdHelperTool->cscIdHelper().module_context();
-    m_channelContext = m_muonIdHelperTool->cscIdHelper().channel_context();
+    m_moduleContext = m_idHelperSvc->cscIdHelper().module_context();
+    m_channelContext = m_idHelperSvc->cscIdHelper().channel_context();
 
     m_rmsCondData = 0;
     m_slopeCondData = 0;
@@ -161,7 +121,7 @@ namespace MuonCalib {
           {
             for(int measuresPhi = 0; measuresPhi <2; measuresPhi++)
             {
-              Identifier id = m_muonIdHelperTool->cscIdHelper().channelID(
+              Identifier id = m_idHelperSvc->cscIdHelper().channelID(
                   stationName+1,
                   (stationEta? 1:-1),
                   stationPhi+1,
@@ -172,7 +132,7 @@ namespace MuonCalib {
                   );
               unsigned int onlineId;
               if(!offlineToOnlineId(id, onlineId).isSuccess()) {
-                m_log << MSG::ERROR << "Failed at geting online id!" << endmsg; 
+                ATH_MSG_ERROR("Failed at geting online id!"); 
                 return StatusCode::RECOVERABLE;
               }
               m_onlineChannelIdsFromLayerHash.push_back(onlineId);
@@ -197,7 +157,7 @@ namespace MuonCalib {
       {
         for(int stationPhi = 0; stationPhi <8; stationPhi++)
         {
-              Identifier id = m_muonIdHelperTool->cscIdHelper().channelID(
+              Identifier id = m_idHelperSvc->cscIdHelper().channelID(
                   stationName+1,
                   (stationEta? 1:-1),
                   stationPhi+1,
@@ -208,7 +168,7 @@ namespace MuonCalib {
                   );
               unsigned int onlineId;
               if(!offlineToOnlineId(id, onlineId).isSuccess()) {
-                m_log << MSG::ERROR << "Failed at geting online id!" << endmsg; 
+                ATH_MSG_ERROR("Failed at geting online id!"); 
                 return StatusCode::RECOVERABLE;
               }
 
@@ -218,22 +178,19 @@ namespace MuonCalib {
       }
     }
     *(const_cast<unsigned int*>(&m_maxChamberCoolChannel)) = hash - 1; //-1 because hash overshoots in loop
-    //*(const_cast<unsigned int*>(&m_maxChamberHash)) = m_muonIdHelperTool->cscIdHelper().module_hash_max() - 1;
-    *(const_cast<unsigned int*>(&m_maxChanHash)) = m_muonIdHelperTool->cscIdHelper().channel_hash_max() - 1;
+    *(const_cast<unsigned int*>(&m_maxChanHash)) = m_idHelperSvc->cscIdHelper().channel_hash_max() - 1;
 
-    if(m_debug) m_log << MSG::DEBUG << "Maximum Chamber hash is " << m_maxChamberHash 
-      << endmsg;
-    if(m_debug) m_log << MSG::DEBUG << "Maximum Chamber COOL Channel is " 
-      << m_maxChamberCoolChannel << endmsg;
-    if(m_debug) m_log << MSG::DEBUG << "Maximum Layer hash is " << m_maxLayerHash 
-      << endmsg;
-    if(m_debug) m_log << MSG::DEBUG << "Maximum Channel hash is " << m_maxChanHash 
-      << endmsg;
+    if(msgLvl(MSG::DEBUG)) {
+      ATH_MSG_DEBUG("Maximum Chamber hash is " << m_maxChamberHash);
+      ATH_MSG_DEBUG("Maximum Chamber COOL Channel is "<< m_maxChamberCoolChannel);
+      ATH_MSG_DEBUG("Maximum Layer hash is " << m_maxLayerHash);
+      ATH_MSG_DEBUG("Maximum Channel hash is " << m_maxChanHash);
+    }
 
 
     ////////////
     // Loop over csc detector elements and add in the hash ids
-    std::vector<Identifier> modules = m_muonIdHelperTool->cscIdHelper().idVector();
+    std::vector<Identifier> modules = m_idHelperSvc->cscIdHelper().idVector();
 
     //Prepare local cache.
     m_dbCache = new CscCondDataContainer();
@@ -241,7 +198,7 @@ namespace MuonCalib {
 
     unsigned int numPars = m_parNameVec.size(); 
     if(numPars == 0) {
-      m_log << MSG::WARNING << "No parameters requested for CscCoolStrSvc. No COOL CSC data will be available from this service." << endmsg;
+      ATH_MSG_WARNING("No parameters requested for CscCoolStrSvc. No COOL CSC data will be available from this service.");
     }
 
     //Ensure all vectors have exactly numPars
@@ -251,14 +208,13 @@ namespace MuonCalib {
         || m_parCatVec.size() != numPars 
         || m_parDefaultVec.size() != numPars
       ) {
-      m_log << MSG::FATAL << "Need identical number of entries in each parameter definition vector!"
+      ATH_MSG_FATAL("Need identical number of entries in each parameter definition vector!"
         << "\nParNames:\t" << m_parNameVec.size() 
         << "\nParSGKeys:\t" << m_parSGKeyVec.size()
         << "\nParFolders:\t" << m_parFolderVec.size()
         << "\nParDataTypes:\t" << m_parDataTypeVec.size()
         << "\nParCats:\t" << m_parCatVec.size()
-        << "\nParDefault:\t" << m_parDefaultVec.size()
-        << endmsg;
+        << "\nParDefault:\t" << m_parDefaultVec.size());
       return StatusCode::FAILURE;
     }
 
@@ -292,7 +248,7 @@ namespace MuonCalib {
         if (sgKey=="CSC_PSLOPE") continue;
       }
 
-      if(m_debug) m_log << MSG::DEBUG << "Entering new parameter." 
+      if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Entering new parameter." 
         << "\nName:\t" << name
           << "\nStoreGateKey:\t" << sgKey
           << "\nDataType:\t" << dataType
@@ -300,17 +256,17 @@ namespace MuonCalib {
           << "\nDefaultVal:\t" << defaultVal
           << "\nSgKey:\t" << sgKey 
           << "\nFolder:\t" << folder
-          << endmsg;
+         );
 
       if(m_parNameMap.count(name)) {
-        m_log << MSG::WARNING << "Multiple parameters with name " << name
-          << ". This isn't allowed! Skipping extra entries." << endmsg;
+        ATH_MSG_WARNING("Multiple parameters with name " << name
+          << ". This isn't allowed! Skipping extra entries.");
         continue;
       }
 
       if(m_parSGKeyMap.count(sgKey)) {
-        m_log << MSG::WARNING << "Multiple parameters with storegate key " << sgKey 
-          << ". This isn't allowed! Skipping extra entries." << endmsg;
+        ATH_MSG_WARNING("Multiple parameters with storegate key " << sgKey 
+          << ". This isn't allowed! Skipping extra entries.");
         continue;
       }
 
@@ -343,8 +299,8 @@ namespace MuonCalib {
         coll = new CscCondDataCollection<bool>();
       }
       else {
-        m_log << MSG::WARNING << "Don't recognize requested data type " 
-          << dataType << endmsg;
+        ATH_MSG_WARNING("Don't recognize requested data type " 
+          << dataType);
       }
 
       //Store details of parameter for easy lookup later
@@ -358,7 +314,7 @@ namespace MuonCalib {
       StatusCode extractStatus= initCscCondDataCollection(coll);
       if(!extractStatus.isSuccess()) {
         //noneFailed = false;
-        m_log << MSG::WARNING << "Failed to register " << name << ". Continuing without..." << endmsg;
+        ATH_MSG_WARNING("Failed to register " << name << ". Continuing without...");
         continue;
       }
 
@@ -381,20 +337,20 @@ namespace MuonCalib {
       else if( name == "t0base" ) m_t0BaseCondData = dynamic_cast<CscCondDataCollection<float>*>(coll);
       else if( name == m_defaultChanStatusName ) {
         m_statusCondData = dynamic_cast<CscCondDataCollection<uint32_t>*>(coll);
-        if( !m_statusCondData ) m_log << MSG::WARNING << "Wrong data type for status bit " << dataType << endmsg;
-      }else  m_log << MSG::WARNING << "Data type not cached, a direct access should be provided " << name << endmsg;
+        if( !m_statusCondData ) ATH_MSG_WARNING("Wrong data type for status bit " << dataType);
+      }else  ATH_MSG_WARNING("Data type not cached, a direct access should be provided " << name);
       
       const DataHandle<CondAttrListCollection> & dataHandle = coll->atrcHandle();
 
       //Registering callback function. The callback funciton will now be called
       //whenever the parameter in question is altered. i.e. whenever it goes
       //into a new interval of validity.
-      if(m_debug) m_log << MSG::DEBUG << "Registering " << name << " with storegate key " << sgKey << endmsg;
+      if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Registering " << name << " with storegate key " << sgKey);
 
       if(m_doCaching)
         if(StatusCode::SUCCESS != p_detstore->regFcn(&CscCoolStrSvc::callback,this,
               dataHandle, sgKey, true)) {
-          m_log << MSG::ERROR << "Failed to register parameter " << name << " with storeGate Key " << sgKey << endmsg;
+          ATH_MSG_ERROR("Failed to register parameter " << name << " with storeGate Key " << sgKey);
         }
 
       //Precaching. We shouldn't need to do this, but some rare cases it seems the callbacks are not called in time for the begining of the run.
@@ -408,15 +364,6 @@ namespace MuonCalib {
     return StatusCode::SUCCESS;
   }//end initialize()
 
-
-  //-------------------------------------------------------------------
-  StatusCode CscCoolStrSvc::finalize()
-  {
-    if(m_debug) m_log << MSG::DEBUG << "in finalize()" << endmsg;
-    return StatusCode::SUCCESS;
-  }//end finalize()
-
-
   //-------------------------------------------------------------------
   //Here we define the hard coded categories. We define what their indices 
   //correspond to, as well as the cool channel range they cover. 
@@ -497,7 +444,7 @@ namespace MuonCalib {
     //Don't recognize category... 
     else
     {
-      m_log << MSG::WARNING << "Don't recognize category " << cat << " as a parameter category. " << endmsg;
+      ATH_MSG_WARNING("Don't recognize category " << cat << " as a parameter category. ");
     }
 
     coll->reset(); //clears collection
@@ -530,7 +477,7 @@ namespace MuonCalib {
   bool CscCoolStrSvc::getVal( float& val, const CscCondDataCollection<float>& coll, unsigned int index) const {
     const CscCondData<float>* condData = coll[index];
     if( !condData ){
-      m_log << MSG::WARNING << " No data available for hash " << index << endmsg;
+      ATH_MSG_WARNING(" No data available for hash " << index);
       return false;
     }
     val = condData->getValue();
@@ -539,7 +486,7 @@ namespace MuonCalib {
   bool CscCoolStrSvc::getVal( bool& val, const CscCondDataCollection<bool>& coll, unsigned int index) const {
     const CscCondData<bool>* condData = coll[index];
     if( !condData ){
-      m_log << MSG::WARNING << " No data available for hash " << index << endmsg;
+      ATH_MSG_WARNING(" No data available for hash " << index);
       return false;
     }
     val = condData->getValue();
@@ -549,7 +496,7 @@ namespace MuonCalib {
   bool CscCoolStrSvc::getVal(uint32_t& val, const CscCondDataCollection<uint32_t>& coll, unsigned int index) const {
     const CscCondData<uint32_t>* condData = coll[index];
     if( !condData ){
-      m_log << MSG::WARNING << " No data available for hash " << index << endmsg;
+      ATH_MSG_WARNING(" No data available for hash " << index);
       return false;
     }
     val = condData->getValue();
@@ -558,7 +505,7 @@ namespace MuonCalib {
 
   bool CscCoolStrSvc::getRMS( float& val, const unsigned int & index) const {
     if( !m_rmsCondData ) {
-      m_log << MSG::WARNING << " No RMS data available" << endmsg;
+      ATH_MSG_WARNING(" No RMS data available");
       return false;
     }
     return getVal(val,*m_rmsCondData,index);
@@ -575,35 +522,35 @@ namespace MuonCalib {
   }
   bool CscCoolStrSvc::getF001( float& val, const unsigned int & index) const {
     if( !m_f001CondData ) {
-      m_log << MSG::WARNING << " No f001 data available" << endmsg;
+      ATH_MSG_WARNING(" No f001 data available");
       return false;
     }
     return getVal(val,*m_f001CondData,index);
   }
   bool CscCoolStrSvc::getPedestal( float& val, const unsigned int & index) const {
     if( !m_pedestalCondData ) {
-      m_log << MSG::WARNING << " No pedestal data available" << endmsg;
+      ATH_MSG_WARNING(" No pedestal data available");
       return false;
     }
     return getVal(val,*m_pedestalCondData,index);
   }
   bool CscCoolStrSvc::getT0Base( float& val, const unsigned int & index) const {
     if( !m_t0BaseCondData ) {
-      m_log << MSG::WARNING << " No t0base data available" << endmsg;
+      ATH_MSG_WARNING(" No t0base data available");
       return false;
     }
     return getVal(val,*m_t0BaseCondData,index);
   }
   bool CscCoolStrSvc::getT0Phase( bool& val, const unsigned int & index) const {
     if( !m_t0PhaseCondData ) {
-      m_log << MSG::WARNING << " No t0phase data available" << endmsg;
+      ATH_MSG_WARNING(" No t0phase data available");
       return false;
     }
     return getVal(val,*m_t0PhaseCondData,index);
   }
   bool CscCoolStrSvc::getNoise( float& val, const unsigned int & index) const {
     if( !m_noiseCondData ) {
-      m_log << MSG::WARNING << " No noise data available" << endmsg;
+      ATH_MSG_WARNING(" No noise data available");
       return false;
     }
     return getVal(val,*m_noiseCondData,index);
@@ -612,7 +559,7 @@ namespace MuonCalib {
   //Returns the status. This is only here for backwards compatibility
   bool CscCoolStrSvc::getStatus(uint32_t &val, const unsigned int &index) const  {
     if( !m_statusCondData ) {
-      m_log << MSG::WARNING << " No status data available" << endmsg;
+      ATH_MSG_WARNING(" No status data available");
       return false;
     }
     return getVal(val,*m_statusCondData,index);
@@ -627,8 +574,8 @@ namespace MuonCalib {
     sc =  getParameterTemplated(data, parName,index);
     retData = data;
     
-     m_log << MSG::WARNING << " The use of this function is very expensive, please use the direct call instead: parName " 
-           << parName << endmsg;
+     ATH_MSG_WARNING(" The use of this function is very expensive, please use the direct call instead: parName " 
+           << parName);
     return sc;
   }
 
@@ -639,88 +586,84 @@ namespace MuonCalib {
     StatusCode sc;
     sc =  getParameterTemplated(data, parName,index);
     retData = data;
-     m_log << MSG::WARNING << " The use of this function is very expensive, please use the direct call instead: parName " 
-           << parName << endmsg;
+     ATH_MSG_WARNING(" The use of this function is very expensive, please use the direct call instead: parName " 
+           << parName);
     return sc;
   }
 
   StatusCode CscCoolStrSvc::getParameter(uint32_t &retData, const std::string &name, const unsigned int & index) const 
   {
     //We only have uint8_t parameters, so they probably meant that...
-     // m_log << MSG::WARNING << " The use of this function is very expensive, please use the direct call instead: parName " 
-     //       << parName << endmsg;
      StatusCode sc = getParameterTemplated(retData, name, index);
      if( name == m_defaultChanStatusName ) {
        uint32_t val = 0;
        if( !getStatus( val, index) ) {
-         m_log << MSG::WARNING << " Failed to retrieve data " << name << endmsg;
+         ATH_MSG_WARNING(" Failed to retrieve data " << name);
        }
        if( val != retData ){
-         m_log << MSG::WARNING << " Bad conversion of rms " << retData << " --> " << val << " " << name << endmsg;
+         ATH_MSG_WARNING(" Bad conversion of rms " << retData << " --> " << val << " " << name);
        }
-     }else  m_log << MSG::WARNING << "Data type not cached, a direct access should be provided " << name << endmsg;
+     }else ATH_MSG_WARNING("Data type not cached, a direct access should be provided " << name);
      return sc;
   }
 
   StatusCode CscCoolStrSvc::getParameter(int &retData, const std::string &parName, const unsigned int & index) const 
   {
-     m_log << MSG::WARNING << " The use of this function is very expensive, please use the direct call instead: parName " 
-           << parName << endmsg;
+     ATH_MSG_WARNING(" The use of this function is very expensive, please use the direct call instead: parName " 
+           << parName);
     return getParameterTemplated(retData, parName, index);
   }
 
   StatusCode CscCoolStrSvc::getParameter(float &retData, const std::string &name, const unsigned int & index) const 
   {
-     // m_log << MSG::WARNING << " The use of this function is very expensive, please use the direct call instead: parName " 
-     //       << parName << endmsg;
      StatusCode sc = getParameterTemplated(retData, name, index);
      if( name == "rms" ){
        float val = 0;
        if( !getRMS( val, index) ) {
-         m_log << MSG::WARNING << " Failed to retrieve data " << name << endmsg;
+         ATH_MSG_WARNING(" Failed to retrieve data " << name);
        }
        if( val != retData ){
-         m_log << MSG::WARNING << " Bad conversion of rms " << retData << " --> " << val << " " << name << endmsg;
+         ATH_MSG_WARNING(" Bad conversion of rms " << retData << " --> " << val << " " << name);
        }
      }else if( name == "pslope" ){
        float val = 0;
        if( !getSlope( val, index) ) {
-                  m_log << MSG::WARNING << " Failed to retrieve data " << name << endmsg;
+                  ATH_MSG_WARNING(" Failed to retrieve data " << name);
        }
        if( val != retData ){
-         m_log << MSG::WARNING << " Bad conversion of rms " << retData << " --> " << val << " " << name << endmsg;
+         ATH_MSG_WARNING(" Bad conversion of rms " << retData << " --> " << val << " " << name);
        }       
      }else if( name == "noise" ){
        float val = 0;
        if( !getNoise( val, index) ) {
-                  m_log << MSG::WARNING << " Failed to retrieve data " << name << endmsg;
+                  ATH_MSG_WARNING(" Failed to retrieve data " << name);
        }
        if( val != retData ){
-         m_log << MSG::WARNING << " Bad conversion of rms " << retData << " --> " << val << " " << name << endmsg;
+         ATH_MSG_WARNING(" Bad conversion of rms " << retData << " --> " << val << " " << name);
        }       
      }else if( name == "f001" ) {
        float val = 0;
        if( !getF001( val, index) ) {
-                  m_log << MSG::WARNING << " Failed to retrieve data " << name << endmsg;
+                  ATH_MSG_WARNING(" Failed to retrieve data " << name);
        }
        if( val != retData ){
-         m_log << MSG::WARNING << " Bad conversion of rms " << retData << " --> " << val << " " << name << endmsg;
+         ATH_MSG_WARNING(" Bad conversion of rms " << retData << " --> " << val << " " << name);
        }       
      }else if( name == "ped" ) {
        float val = 0;
        if( !getPedestal( val, index) ) {
-                  m_log << MSG::WARNING << " Failed to retrieve data " << name << endmsg;
+                  ATH_MSG_WARNING(" Failed to retrieve data " << name);
        }
        if( val != retData ){
-         m_log << MSG::WARNING << " Bad conversion of rms " << retData << " --> " << val << " " << name << endmsg;
+         ATH_MSG_WARNING(" Bad conversion of rms " << retData << " --> " << val << " " << name);
        }       
      }else if( name == "t0base" ){
        float val = 0;
        if( !getT0Base( val, index) ) {
-                  m_log << MSG::WARNING << " Failed to retrieve data " << name << endmsg;
+                  ATH_MSG_WARNING(" Failed to retrieve data " << name);
        }
        if( val != retData ){
-         m_log << MSG::WARNING << " Bad conversion of rms " << retData << " --> " << val << " " << name << endmsg;
+         ATH_MSG_WARNING(" Bad conversion of rms " << retData << " --> " << val << " " << name);
        }       
      }
      return sc;
@@ -728,15 +671,13 @@ namespace MuonCalib {
   
   StatusCode CscCoolStrSvc::getParameter(bool &retData, const std::string &name, const unsigned int & index) const 
   {
-    // m_log << MSG::WARNING << " The use of this function is very expensive, please use the direct call instead: parName " 
-    //       << parName << endmsg;
     if( name == "t0phase" ) {
       bool val = false;
       if( !getT0Phase( val, index) ) {
-        m_log << MSG::WARNING << " Failed to retrieve data " << name << endmsg;
+        ATH_MSG_WARNING(" Failed to retrieve data " << name);
       }
       if( val != retData ){
-        m_log << MSG::WARNING << " Bad conversion of rms " << retData << " --> " << val << " " << name << endmsg;
+        ATH_MSG_WARNING(" Bad conversion of rms " << retData << " --> " << val << " " << name);
       }
     }
     return getParameterTemplated(retData, name, index);
@@ -751,8 +692,6 @@ namespace MuonCalib {
     StatusCode sc;
     sc = getParameter(theStatus, m_defaultChanStatusName, stripID);
     status = static_cast<uint8_t>(theStatus);
-    // m_log << MSG::WARNING << " The use of this function is very expensive, please use the direct call instead " 
-    //       << endmsg;
     return sc;
   }
 
@@ -769,8 +708,8 @@ namespace MuonCalib {
       data=atr["Data"].data<std::string>();
     }
     else {
-      m_log << MSG::DEBUG << "Couldn't find a requested COOL channel number." 
-        << coolChannel << endmsg;
+      ATH_MSG_DEBUG("Couldn't find a requested COOL channel number." 
+        << coolChannel);
       return StatusCode::RECOVERABLE;
     }
     return StatusCode::SUCCESS;
@@ -781,17 +720,14 @@ namespace MuonCalib {
   /** Merge and then write to cool database*/ 
   StatusCode CscCoolStrSvc::mergeAndSubmitCondDataContainer(const CscCondDataContainer * newCont) {
 
-    m_log <<MSG::INFO 
-      << "Merging provided csc conditions data into the COOL data string for writing to database." 
-      << endmsg;
+    ATH_MSG_DEBUG("Merging provided csc conditions data into the COOL data string for writing to database.");
     //CscCondDataContainer mergedContainer
     CscCondDataContainer::const_iterator newItr = newCont->begin();
     CscCondDataContainer::const_iterator endItr = newCont->end();
     for(; newItr != endItr ; newItr++) {
       if(!(*newItr))
       {
-        m_log << MSG::ERROR << "Empty element in container with new data. Can't merge" 
-          << endmsg;
+        ATH_MSG_ERROR("Empty element in container with new data. Can't merge");
         return StatusCode::RECOVERABLE;
       }
 
@@ -802,7 +738,7 @@ namespace MuonCalib {
         m_parNameMap.find(parName);
       if(refItr == m_parNameMap.end())
       {
-        m_log << MSG::ERROR << "Parameter " << parName << " not loaded. Can't merge. Check your JobOptions." << endmsg;
+        ATH_MSG_ERROR("Parameter " << parName << " not loaded. Can't merge. Check your JobOptions.");
       }
       const CscCondDataCollectionBase *refColl = refItr->second;
 
@@ -811,35 +747,34 @@ namespace MuonCalib {
 
       if(dataType != newColl->getParDataType())
       {
-        m_log << MSG::ERROR << "When merging parameter " << refColl->getParName()
+        ATH_MSG_ERROR("When merging parameter " << refColl->getParName()
           << " found that new data has type " << newColl->getParDataType() 
-          << " and reference has type " << dataType << ". quiting merging..."
-          << endmsg;
+          << " and reference has type " << dataType << ". quiting merging...");
         return StatusCode::RECOVERABLE;
       }
 
       //now merge them 
       if(dataType == "uint32_t") {
         if(!mergeCollections<uint32_t>(newColl, refColl).isSuccess()){
-          m_log << MSG::ERROR << "Failed merging " << parName << endmsg;
+          ATH_MSG_ERROR("Failed merging " << parName);
           return StatusCode::RECOVERABLE;
         }
       }
       if(dataType == "int") {
         if(!mergeCollections<int>(newColl, refColl).isSuccess()){
-          m_log << MSG::ERROR << "Failed merging " << parName << endmsg;
+          ATH_MSG_ERROR("Failed merging " << parName);
           return StatusCode::RECOVERABLE;
         }
       }
       if(dataType == "float") {
         if(!mergeCollections<float>(newColl, refColl).isSuccess()){
-          m_log << MSG::ERROR << "Failed merging " << parName << endmsg;
+          ATH_MSG_ERROR("Failed merging " << parName);
           return StatusCode::RECOVERABLE;
         }
       }
       if(dataType == "bool") {
         if(!mergeCollections<bool>(newColl, refColl).isSuccess()){
-          m_log << MSG::ERROR << "Failed merging " << parName << endmsg;
+          ATH_MSG_ERROR("Failed merging " << parName);
           return StatusCode::RECOVERABLE;
         }
       }
@@ -856,7 +791,7 @@ namespace MuonCalib {
     std::list<std::string>::const_iterator keyEnd = keys.end();
     for(; keyItr != keyEnd; keyItr++) {
       if(!cacheParameter(*keyItr).isSuccess()) {
-        m_log << MSG::WARNING << "Failed at caching key " << (*keyItr) << endmsg;
+        ATH_MSG_WARNING("Failed at caching key " << (*keyItr));
       }
     } 
     return StatusCode::SUCCESS;
@@ -867,14 +802,14 @@ namespace MuonCalib {
   //Extracts parameter from database, reads it into the database mirror;
   StatusCode CscCoolStrSvc::cacheParameter(const std::string & parKey)
   {
-    if(m_debug) m_log << MSG::DEBUG << "Caching parameter " << parKey << endmsg;
+    if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Caching parameter " << parKey);
     ///*****//
     std::map<std::string, CscCondDataCollectionBase*>::iterator collItr = m_parSGKeyMap.find(parKey);
 
     if(collItr == m_parSGKeyMap.end())
     {
-      m_log << MSG::ERROR << "Failed caching " << parKey 
-        << ". It doens't seem to be registered." << endmsg;
+      ATH_MSG_ERROR("Failed caching " << parKey 
+        << ". It doens't seem to be registered.");
       return StatusCode::RECOVERABLE;
     }
 
@@ -895,26 +830,26 @@ namespace MuonCalib {
 
     for(unsigned int coolItr=1; coolItr <= numCoolChannels;  coolItr++)
     {
-      if(m_debug) m_log << MSG::DEBUG << "Attempting to retrieve cool channel " 
-        << coolItr << " with key " << parKey <<  endmsg;
+      if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Attempting to retrieve cool channel " 
+        << coolItr << " with key " << parKey);
       //retrieve datastring from db			
       std::string dataStr;
       if (StatusCode::SUCCESS != getCoolChannelString(atrc, coolItr, dataStr))
       {
-        if(m_debug) m_log << MSG::DEBUG << "Couldn't find cool channel " << coolItr << endmsg;
+        if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Couldn't find cool channel " << coolItr);
         continue;
       }
 
       numCoolChannelsFound = numCoolChannelsFound + 1;
 
 
-      if(m_debug) m_log << MSG::VERBOSE  << "For cool channel " << coolItr << ", String is \n[" << dataStr << "]" << endmsg;
+      if(msgLvl(MSG::DEBUG)) ATH_MSG_VERBOSE("For cool channel " << coolItr << ", String is \n[" << dataStr << "]");
       //now decode string into numeric parameters.
       std::istringstream ss(dataStr);
 
       if(!ss.good()) 
       {
-        m_log << MSG::WARNING << "Failed forming stringstream during caching of " << coll->getParName() << endmsg;
+        ATH_MSG_WARNING("Failed forming stringstream during caching of " << coll->getParName());
         continue;
       }
 
@@ -932,11 +867,11 @@ namespace MuonCalib {
 
     }//end cool channel loop
     if(!numCoolChannelsFound) {
-      m_log << MSG::ERROR << "Found no COOL channels!" << endmsg;
+      ATH_MSG_ERROR("Found no COOL channels!");
       return StatusCode::RECOVERABLE;
     }
     if(numCoolChannelsFound < numCoolChannels) {
-      m_log << MSG::WARNING << "Only could retrieve " << numCoolChannelsFound << " out of " << numCoolChannels << " cool channels. This should never happen for a normal dataset, and could be a serious problem." << endmsg;
+      ATH_MSG_WARNING("Only could retrieve " << numCoolChannelsFound << " out of " << numCoolChannels << " cool channels. This should never happen for a normal dataset, and could be a serious problem.");
     }
 
     return StatusCode::SUCCESS;
@@ -945,9 +880,9 @@ namespace MuonCalib {
   //-------------------------------------------------------------------
   StatusCode CscCoolStrSvc::cache(std::istringstream& ss, CscCondDataCollectionBase* const coll) {
 
-    if(m_debug) m_log << MSG::DEBUG << "Caching " << coll->getParName()
+    if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Caching " << coll->getParName()
                       << " (category " << coll->getParCat() << "). Database string is version 2" 
-                      << endmsg;
+                     );
     unsigned int numUpdated = 0;
     std::string indexStr,valueStr;
 
@@ -979,15 +914,14 @@ namespace MuonCalib {
         unsigned int index = 0;
         if(cat != "CSC") {
           if(!stringIdToIndex(str, cat, index).isSuccess()) {
-            m_log << MSG::ERROR << "Failed converting string Id to index"
-                  << endmsg;
+            ATH_MSG_ERROR("Failed converting string Id to index");
             return StatusCode::RECOVERABLE;
           }
           ss >> str;
         }
 
-        if(m_verbose) m_log << MSG::VERBOSE << "[cache version 2 (CHANNEL) ] Recording " 
-          << str << " at index " << index << endmsg;
+        if(msgLvl(MSG::VERBOSE)) ATH_MSG_VERBOSE("[cache version 2 (CHANNEL) ] Recording " 
+          << str << " at index " << index);
 
         if (index==UINT_MAX) continue;
         if (index>=numEntries) continue;
@@ -995,15 +929,15 @@ namespace MuonCalib {
         //Now str has a value in it. We pass it to the collection.
         std::istringstream valueSS(str);
         if(!coll->recordFromSS(valueSS, index).isSuccess()) {
-          m_log << MSG::WARNING << "Failed caching to index " << index << " for parameter" 
+          ATH_MSG_WARNING("Failed caching to index " << index << " for parameter" 
             << coll->getParName()
             << ". Likely tried to recache to same index twice."
-            << " Likely a bug when the data was orginally put in COOL." << endmsg;
+            << " Likely a bug when the data was orginally put in COOL.");
         }
-        if(m_debug) numUpdated++;
+        if(msgLvl(MSG::DEBUG)) numUpdated++;
         if (cnt==(numEntries-1)) {
-          m_log << MSG::ERROR << "Something wrong with <END_DATA>"
-                << " in COOL tag in cacheVersion2" << endmsg;
+          ATH_MSG_ERROR("Something wrong with <END_DATA>"
+                << " in COOL tag in cacheVersion2");
           return StatusCode::RECOVERABLE;
         }
       }  // for cnt
@@ -1034,7 +968,7 @@ namespace MuonCalib {
       {	ss >> asmIDstr;  /*  asm cool tag id string which is
           ASM[#:1-5]_[StationEtaString:AorC][stationPhi:1-8]_[stationName:50-51]
           xxx   3   x                  5                6   x             x9      */
-        if(m_verbose) m_log << MSG::VERBOSE << "ASM ID String: " << asmIDstr << endmsg;
+        if(msgLvl(MSG::VERBOSE)) ATH_MSG_VERBOSE("ASM ID String: " << asmIDstr);
         if  ( asmIDstr == "<END_DATA>" )  break;
 
         asmNum = atoi(asmIDstr.substr(3,1).c_str());
@@ -1042,7 +976,7 @@ namespace MuonCalib {
         if  ( asmIDstr[5] == 'A' )  stationEta =  1;
         else if( asmIDstr[5] == 'C')   stationEta = -1;   
         else{
-          m_log << MSG::FATAL << "Bad ASMID String in CSC COOL database \"" << asmIDstr << "\" (wheel " << asmIDstr[5] << " doesn't exist" << endmsg;
+          ATH_MSG_FATAL("Bad ASMID String in CSC COOL database \"" << asmIDstr << "\" (wheel " << asmIDstr[5] << " doesn't exist");
           return StatusCode::FAILURE;
         }
          
@@ -1051,14 +985,14 @@ namespace MuonCalib {
         stationName = atoi(asmIDstr.substr(8,2).c_str());
         
         if(stationPhi < 1 || stationPhi > 8 || stationName <50 || stationName > 51){
-          m_log << MSG::FATAL << "Bad ASMID String in CSC COOL database: \"" << asmIDstr << "\""<< endmsg;
+          ATH_MSG_FATAL("Bad ASMID String in CSC COOL database: \"" << asmIDstr << "\"");
 
-          m_log << MSG::FATAL << "Read station phi: " << stationPhi << ", stationName " << stationName << endmsg;
+          ATH_MSG_FATAL("Read station phi: " << stationPhi << ", stationName " << stationName);
           return StatusCode::FAILURE;
         }
 
         if ( !getAsmScope(asmNum, measuresPhi, layerSince, layerUntil, stripSince, stripUntil) )
-        { m_log << MSG::FATAL << "Failure of getAsmScope in cacheVersion2." << endmsg;
+        { ATH_MSG_FATAL("Failure of getAsmScope in cacheVersion2.");
           return StatusCode::FAILURE;
         }
 
@@ -1072,7 +1006,7 @@ namespace MuonCalib {
           // This is currently required to be checked when running with layouts which do not contain all CSCs anymore, since the
           // CSCCool database contains still all CSCs. A clean fix would be to have a dedicated database for every layout.
           bool isValid = true;
-          chanId = m_muonIdHelperTool->cscIdHelper().channelID(stationName, stationEta, stationPhi, chamberLayer, iLayer, measuresPhi, iStrip, true, &isValid);
+          chanId = m_idHelperSvc->cscIdHelper().channelID(stationName, stationEta, stationPhi, chamberLayer, iLayer, measuresPhi, iStrip, true, &isValid);
           static bool conversionFailPrinted = false;
           if (!isValid) {
             if (!conversionFailPrinted) {
@@ -1083,12 +1017,12 @@ namespace MuonCalib {
             }
             continue;
           }
-          if (m_muonIdHelperTool->cscIdHelper().get_channel_hash(chanId, hashIdentifier)) {
+          if (m_idHelperSvc->cscIdHelper().get_channel_hash(chanId, hashIdentifier)) {
             ATH_MSG_WARNING("Failed to retrieve channel hash for identifier " << chanId.get_compact());
           }
 
           index = (int)hashIdentifier;
-          if ( m_verbose ) m_log << MSG::VERBOSE << "(ASM) Recording " 
+          if ( msgLvl(MSG::VERBOSE) ) ATH_MSG_VERBOSE("(ASM) Recording " 
             << valueStr << " at index " << index 
               << "\nstationName " << stationName
               <<"\nstationEta " << stationEta
@@ -1097,7 +1031,7 @@ namespace MuonCalib {
               << "\niLayer " << iLayer
               << "\nmeasuresPhi " << measuresPhi
               << "\niStrip " << iStrip 
-              << endmsg;
+             );
 
           if (index==UINT_MAX) continue;
           if (index>=numEntries) continue;
@@ -1105,20 +1039,20 @@ namespace MuonCalib {
                     //Now valueStr has a value in it. We pass it to the collection.
           std::istringstream valueSS(valueStr);
           if ( !coll->recordFromSS(valueSS, index).isSuccess() )
-          { m_log << MSG::WARNING << "Failed caching to index " << index 
+          { ATH_MSG_WARNING("Failed caching to index " << index 
             << " for parameter " << coll->getParName()
               << " (data string version 2)."
               << " Likely tried to recache to same index twice."
-              << " Likely a bug when the data was orginally put in COOL." << endmsg;
+              << " Likely a bug when the data was orginally put in COOL.");
           }
-          if ( m_debug ) numUpdated++;
+          if ( msgLvl(MSG::DEBUG) ) numUpdated++;
           if ( cnt==(numEntries-1) )
-          { m_log << MSG::ERROR << "Something wrong with <END_DATA> in"
-            << " COOL tag in cacheVersion2" << endmsg;
+          { ATH_MSG_ERROR("Something wrong with <END_DATA> in"
+            << " COOL tag in cacheVersion2");
             return StatusCode::RECOVERABLE;
           } } } } }  //  cat=="ASM"
 
-          if ( m_debug ) m_log << MSG::DEBUG << "Number updated is " << numUpdated << endmsg;
+          if ( msgLvl(MSG::DEBUG) ) ATH_MSG_DEBUG("Number updated is " << numUpdated);
           return StatusCode::SUCCESS;
   }  //  end cacheVersion2
 
@@ -1126,19 +1060,19 @@ namespace MuonCalib {
   //-------------------------------------------------------------------
   int CscCoolStrSvc::swapChamberLayerReturnHash(const Identifier & id) const
   {
-    int stationName = m_muonIdHelperTool->cscIdHelper().stationName(id);
-    int stationEta = m_muonIdHelperTool->cscIdHelper().stationEta(id); 
-    int stationPhi = m_muonIdHelperTool->cscIdHelper().stationPhi(id); 
-    int chamberLayer = m_muonIdHelperTool->cscIdHelper().chamberLayer(id) == 1 ? 2 : 1; //Swap chamber layer
-    int measuresPhi = m_muonIdHelperTool->cscIdHelper().measuresPhi(id); 
-    int wireLayer = m_muonIdHelperTool->cscIdHelper().wireLayer(id);
-    int strip = m_muonIdHelperTool->cscIdHelper().strip(id);
-    Identifier newId = m_muonIdHelperTool->cscIdHelper().channelID(stationName, stationEta, stationPhi, 
+    int stationName = m_idHelperSvc->cscIdHelper().stationName(id);
+    int stationEta = m_idHelperSvc->cscIdHelper().stationEta(id); 
+    int stationPhi = m_idHelperSvc->cscIdHelper().stationPhi(id); 
+    int chamberLayer = m_idHelperSvc->cscIdHelper().chamberLayer(id) == 1 ? 2 : 1; //Swap chamber layer
+    int measuresPhi = m_idHelperSvc->cscIdHelper().measuresPhi(id); 
+    int wireLayer = m_idHelperSvc->cscIdHelper().wireLayer(id);
+    int strip = m_idHelperSvc->cscIdHelper().strip(id);
+    Identifier newId = m_idHelperSvc->cscIdHelper().channelID(stationName, stationEta, stationPhi, 
         chamberLayer, wireLayer, measuresPhi, strip);
     IdentifierHash hash;
-    m_muonIdHelperTool->cscIdHelper().get_channel_hash(newId, hash);
-    m_log << MSG::INFO << "swap chamber layer " << m_muonIdHelperTool->cscIdHelper().show_to_string(id) 
-          << " to " << m_muonIdHelperTool->cscIdHelper().show_to_string(newId) << " (" << hash << ")" << endmsg;
+    m_idHelperSvc->cscIdHelper().get_channel_hash(newId, hash);
+    ATH_MSG_DEBUG("swap chamber layer " << m_idHelperSvc->cscIdHelper().show_to_string(id) 
+          << " to " << m_idHelperSvc->cscIdHelper().show_to_string(newId) << " (" << hash << ")");
     return (int)hash;
   }
 
@@ -1150,20 +1084,20 @@ namespace MuonCalib {
     //Phi,wireLayer,and strip all are offset by one between the two schemes.
     //Also, station name is 50 or 51 in Identifiers, but only 0 or 1 in 
     //the online id.
-    int stationName  	((m_muonIdHelperTool->cscIdHelper().stationName(id) -50)&0x1 );		// 0001 0000 0000 0000 0000
-    int phi =   		(m_muonIdHelperTool->cscIdHelper().stationPhi(id) - 1)&0x7  ;		    // 0000 1110 0000 0000 0000
-    int eta = 		((m_muonIdHelperTool->cscIdHelper().stationEta(id) == 1) ? 1:0) &0x1;  // 0000 0001 0000 0000 0000
-    int chamLay = 		(m_muonIdHelperTool->cscIdHelper().chamberLayer(id)-1) &0x1;		    // 0000 0000 1000 0000 0000
-    int wireLay = 		(m_muonIdHelperTool->cscIdHelper().wireLayer(id)-1) &0x3;		      // 0000 0000 0110 0000 0000
-    int measuresPhi = 	(m_muonIdHelperTool->cscIdHelper().measuresPhi(id) &0x1);		    // 0000 0000 0001 0000 0000
+    int stationName  	((m_idHelperSvc->cscIdHelper().stationName(id) -50)&0x1 );		// 0001 0000 0000 0000 0000
+    int phi =   		(m_idHelperSvc->cscIdHelper().stationPhi(id) - 1)&0x7  ;		    // 0000 1110 0000 0000 0000
+    int eta = 		((m_idHelperSvc->cscIdHelper().stationEta(id) == 1) ? 1:0) &0x1;  // 0000 0001 0000 0000 0000
+    int chamLay = 		(m_idHelperSvc->cscIdHelper().chamberLayer(id)-1) &0x1;		    // 0000 0000 1000 0000 0000
+    int wireLay = 		(m_idHelperSvc->cscIdHelper().wireLayer(id)-1) &0x3;		      // 0000 0000 0110 0000 0000
+    int measuresPhi = 	(m_idHelperSvc->cscIdHelper().measuresPhi(id) &0x1);		    // 0000 0000 0001 0000 0000
     int strip;     		                                          // 0000 0000 0000 1111 1111
 
     //Online and offline phi ids are flipped on A wheel
     if(m_onlineOfflinePhiFlip && measuresPhi && eta == 1){
-      strip = (48 - (m_muonIdHelperTool->cscIdHelper().strip(id))) & 0xff;  
+      strip = (48 - (m_idHelperSvc->cscIdHelper().strip(id))) & 0xff;  
     }
     else {
-      strip = (m_muonIdHelperTool->cscIdHelper().strip(id)-1) & 0xff;     		     
+      strip = (m_idHelperSvc->cscIdHelper().strip(id)-1) & 0xff;     		     
     }
 
 
@@ -1182,13 +1116,13 @@ namespace MuonCalib {
   StatusCode CscCoolStrSvc::offlineToAsmId(const Identifier & id, std::string & AsmId,
       unsigned int & iChamber, unsigned int & iASM) const
   { 
-    int stationEta  = m_muonIdHelperTool->cscIdHelper().stationEta(id);
+    int stationEta  = m_idHelperSvc->cscIdHelper().stationEta(id);
     std::string stationEtaString  = (stationEta == 1 ? "A":"C");
-    int stationPhi  = m_muonIdHelperTool->cscIdHelper().stationPhi(id);
-    int stationName = m_muonIdHelperTool->cscIdHelper().stationName(id);
-    int wireLayer   = m_muonIdHelperTool->cscIdHelper().wireLayer(id);
-    int measuresPhi = m_muonIdHelperTool->cscIdHelper().measuresPhi(id);
-    int strip       = m_muonIdHelperTool->cscIdHelper().strip(id);
+    int stationPhi  = m_idHelperSvc->cscIdHelper().stationPhi(id);
+    int stationName = m_idHelperSvc->cscIdHelper().stationName(id);
+    int wireLayer   = m_idHelperSvc->cscIdHelper().wireLayer(id);
+    int measuresPhi = m_idHelperSvc->cscIdHelper().measuresPhi(id);
+    int strip       = m_idHelperSvc->cscIdHelper().strip(id);
 
     iChamber = getChamberCoolChannel(id) - 1; //0-31
 
@@ -1218,9 +1152,9 @@ namespace MuonCalib {
     //Phi,wireLayer,and strip all are offset by one between the two schemes.
     //Also, station name is 50 or 51 in Identifiers, but only 0 or 1 in 
     //the online id.
-    int stationName  	((m_muonIdHelperTool->cscIdHelper().stationName(id) -50)&0x1 );		// 0001 0000 0000 0000 0000
-    int phi =   		(m_muonIdHelperTool->cscIdHelper().stationPhi(id) - 1)&0x7  ;		// 0000 1110 0000 0000 0000
-    int eta = 		((m_muonIdHelperTool->cscIdHelper().stationEta(id) == 1) ? 1:0) &0x1;  	// 0000 0001 0000 0000 0000
+    int stationName  	((m_idHelperSvc->cscIdHelper().stationName(id) -50)&0x1 );		// 0001 0000 0000 0000 0000
+    int phi =   		(m_idHelperSvc->cscIdHelper().stationPhi(id) - 1)&0x7  ;		// 0000 1110 0000 0000 0000
+    int eta = 		((m_idHelperSvc->cscIdHelper().stationEta(id) == 1) ? 1:0) &0x1;  	// 0000 0001 0000 0000 0000
     int chamLay = 		1;		// 0000 0000 1000 0000 0000
     int wireLay = 		0;		// 0000 0000 0110 0000 0000
     int measuresPhi = 0;		// 0000 0000 0001 0000 0000
@@ -1256,12 +1190,12 @@ namespace MuonCalib {
       strip = ((onlineId)&0xff) +1;
     }
 
-    elementId = m_muonIdHelperTool->cscIdHelper().elementID(stationName,eta,phi);
+    elementId = m_idHelperSvc->cscIdHelper().elementID(stationName,eta,phi);
     // The following call of channelID with check=true ensures that the identifier is checked to be physically valid.
     // This is currently required to be checked when running with layouts which do not contain all CSCs anymore, since the
     // CSCCool database contains still all CSCs. A clean fix would be to have a dedicated database for every layout.
     bool isValid = true;
-    channelId = m_muonIdHelperTool->cscIdHelper().channelID(stationName,eta,phi,chamLay,wireLay,measuresPhi,strip,true,&isValid);
+    channelId = m_idHelperSvc->cscIdHelper().channelID(stationName,eta,phi,chamLay,wireLay,measuresPhi,strip,true,&isValid);
     static bool conversionFailPrinted = false;
     if (!isValid) {
       if (!conversionFailPrinted) {
@@ -1284,7 +1218,7 @@ namespace MuonCalib {
     int phi =               ((onlineId >> 13)&0x7)+1;
     int eta =               ((((onlineId >> 12)&0x1) == 1) ? 1:-1);
 
-    elementId = m_muonIdHelperTool->cscIdHelper().elementID(stationName,eta,phi);
+    elementId = m_idHelperSvc->cscIdHelper().elementID(stationName,eta,phi);
 
     return StatusCode::SUCCESS;
   }
@@ -1309,7 +1243,7 @@ namespace MuonCalib {
       strip = ((onlineId)&0xff) +1;
     }
 
-    chanId = m_muonIdHelperTool->cscIdHelper().channelID(stationName,eta,phi,chamLay,wireLay,measuresPhi,strip);
+    chanId = m_idHelperSvc->cscIdHelper().channelID(stationName,eta,phi,chamLay,wireLay,measuresPhi,strip);
 
     return StatusCode::SUCCESS;
   }
@@ -1318,16 +1252,16 @@ namespace MuonCalib {
   //-----------------------------------------------------------------------------------
   unsigned int CscCoolStrSvc::getLayerHash( const Identifier & id) const 
   {
-    unsigned int stationName = m_muonIdHelperTool->cscIdHelper().stationName(id);
-    if(m_muonIdHelperTool->cscIdHelper().stationName(id) >= 50 ) stationName = stationName - 50;
+    unsigned int stationName = m_idHelperSvc->cscIdHelper().stationName(id);
+    if(m_idHelperSvc->cscIdHelper().stationName(id) >= 50 ) stationName = stationName - 50;
     else {
       ATH_MSG_ERROR("stationName: " << stationName << " is not CSC - emergency stop.");
       throw std::runtime_error(Form("File: %s, Line: %d\nCscCoolStrSvc::getLayerHash() - given identifier is no CSC identifier", __FILE__, __LINE__));
     }
-    unsigned int stationEta = (m_muonIdHelperTool->cscIdHelper().stationEta(id) == 1 ? 1 :0);
-    unsigned int stationPhi = m_muonIdHelperTool->cscIdHelper().stationPhi(id) -1; 
-    unsigned int wireLayer = m_muonIdHelperTool->cscIdHelper().wireLayer(id) -1;
-    unsigned int measuresPhi = m_muonIdHelperTool->cscIdHelper().measuresPhi(id);
+    unsigned int stationEta = (m_idHelperSvc->cscIdHelper().stationEta(id) == 1 ? 1 :0);
+    unsigned int stationPhi = m_idHelperSvc->cscIdHelper().stationPhi(id) -1; 
+    unsigned int wireLayer = m_idHelperSvc->cscIdHelper().wireLayer(id) -1;
+    unsigned int measuresPhi = m_idHelperSvc->cscIdHelper().measuresPhi(id);
 
     return m_layerHashes[stationName][stationEta][stationPhi][wireLayer][measuresPhi];
   }
@@ -1337,19 +1271,18 @@ namespace MuonCalib {
   unsigned int CscCoolStrSvc::getChamberCoolChannel( const Identifier & id) const
   {
 
-    unsigned int stationName = m_muonIdHelperTool->cscIdHelper().stationName(id) -50;
-    unsigned int eta = (m_muonIdHelperTool->cscIdHelper().stationEta(id) == 1 ? 1 : 0);
-    unsigned int phi = m_muonIdHelperTool->cscIdHelper().stationPhi(id) -1; 
+    unsigned int stationName = m_idHelperSvc->cscIdHelper().stationName(id) -50;
+    unsigned int eta = (m_idHelperSvc->cscIdHelper().stationEta(id) == 1 ? 1 : 0);
+    unsigned int phi = m_idHelperSvc->cscIdHelper().stationPhi(id) -1; 
 
     if(stationName > 1
         || phi > 7
         || eta > 1
       ) {
-      m_log <<MSG::ERROR << "when creating chamber cool channel, inputs were:\nstationName: " 
+      ATH_MSG_ERROR("when creating chamber cool channel, inputs were:\nstationName: " 
         << stationName 
         << "\nPhi: " << phi
-        << "\neta: " << eta
-        << endmsg;
+        << "\neta: " << eta);
       return 1;
     }
 
@@ -1385,8 +1318,8 @@ namespace MuonCalib {
   StatusCode CscCoolStrSvc::layerHashToOnlineId(const unsigned int & layerHash, unsigned int & onlineId) const {
     if(layerHash > m_onlineChannelIdsFromLayerHash.size())
     {
-      m_log << MSG::ERROR << "Tried to lookup online id from layer hash " 
-        << layerHash <<". Max is " << m_onlineChannelIdsFromLayerHash.size()<<  endmsg;
+      ATH_MSG_ERROR("Tried to lookup online id from layer hash " 
+        << layerHash <<". Max is " << m_onlineChannelIdsFromLayerHash.size());
       return StatusCode::SUCCESS;
     }
     onlineId = m_onlineChannelIdsFromLayerHash[layerHash];
@@ -1404,8 +1337,8 @@ namespace MuonCalib {
 
     chamCoolChan = m_chamberCoolChannels[stationName][eta][phi];
     if(chamCoolChan < 1 || chamCoolChan > 32) {
-      m_log << MSG::ERROR << "created chamber cool channel is " 
-        << chamCoolChan << endmsg;
+      ATH_MSG_ERROR("created chamber cool channel is " 
+        << chamCoolChan);
       return StatusCode::RECOVERABLE;
     }
     return StatusCode::SUCCESS;
@@ -1416,8 +1349,8 @@ namespace MuonCalib {
 
     if(chamCoolChan > m_onlineChannelIdsFromChamberCoolChannel.size()
         || chamCoolChan ==0 ) {
-      m_log << "Requested online ID for chamber Cool Channel " << chamCoolChan 
-        <<"which can't be more than " << m_onlineChannelIdsFromChamberCoolChannel.size();
+      ATH_MSG_ERROR("Requested online ID for chamber Cool Channel " << chamCoolChan 
+        <<"which can't be more than " << m_onlineChannelIdsFromChamberCoolChannel.size());
     }
     onlineId = m_onlineChannelIdsFromChamberCoolChannel[chamCoolChan-1];
     return StatusCode::SUCCESS;
@@ -1484,8 +1417,8 @@ namespace MuonCalib {
         index = 0;
       else
       {
-        m_log << MSG::ERROR << "Unknown idString of " << idString 
-          << " asked for ENDCAP cateogry." << endmsg;
+        ATH_MSG_ERROR("Unknown idString of " << idString 
+          << " asked for ENDCAP cateogry.");
         return StatusCode::RECOVERABLE;
       }
 
@@ -1507,7 +1440,7 @@ namespace MuonCalib {
     if(cat == "CHAMBER")
     {
       IdentifierHash chamberHash;
-      m_muonIdHelperTool->cscIdHelper().get_geo_module_hash(chamberId,chamberHash);
+      m_idHelperSvc->cscIdHelper().get_geo_module_hash(chamberId,chamberHash);
       index = (unsigned int)chamberHash; 
     } 
     else if(cat == "LAYER")
@@ -1517,7 +1450,7 @@ namespace MuonCalib {
     else if(cat == "CHANNEL")
     {
       IdentifierHash chanHash;
-      m_muonIdHelperTool->cscIdHelper().get_channel_hash(channelId, chanHash);
+      m_idHelperSvc->cscIdHelper().get_channel_hash(channelId, chanHash);
       index = (unsigned int)chanHash;
     }
 
@@ -1539,8 +1472,8 @@ namespace MuonCalib {
       if(index == 1)
         idString = "1";
       else {
-        m_log << MSG::ERROR << "Requested index " << index 
-          << " can't be converted to a string Id for the category " << cat << endmsg;
+        ATH_MSG_ERROR("Requested index " << index 
+          << " can't be converted to a string Id for the category " << cat);
         return StatusCode::RECOVERABLE;
       }
     }
@@ -1552,11 +1485,9 @@ namespace MuonCalib {
     {
 
       Identifier chamberId;
-      m_muonIdHelperTool->cscIdHelper().get_id(IdentifierHash(index), chamberId, &m_moduleContext);
+      m_idHelperSvc->cscIdHelper().get_id(IdentifierHash(index), chamberId, &m_moduleContext);
       if(!offlineElementToOnlineId(chamberId, onlineId).isSuccess()) {
-        m_log << MSG::ERROR 
-          << "Failed converting chamber identifier to online id during stringId gen. " 
-          << endmsg;
+        ATH_MSG_ERROR("Failed converting chamber identifier to online id during stringId gen. ");
         return StatusCode::RECOVERABLE;
       }
     } 
@@ -1564,19 +1495,15 @@ namespace MuonCalib {
     {
       unsigned int onlineId;
       if(!layerHashToOnlineId(index, onlineId)){
-        m_log <<MSG::ERROR
-          << "Failed at getting online id from layer hash during stringId gen" 
-          << endmsg;
+        ATH_MSG_ERROR("Failed at getting online id from layer hash during stringId gen");
       }
     }
     else if(cat == "CHANNEL")
     {
       Identifier channelId;
-      m_muonIdHelperTool->cscIdHelper().get_id(IdentifierHash(index), channelId, &m_channelContext);
+      m_idHelperSvc->cscIdHelper().get_id(IdentifierHash(index), channelId, &m_channelContext);
       if(!offlineToOnlineId(channelId, onlineId).isSuccess()) {
-        m_log << MSG::ERROR
-          << "Failed converting chamber identifier to online id during stringId gen. "
-          << endmsg;
+        ATH_MSG_ERROR("Failed converting chamber identifier to online id during stringId gen. ");
         return StatusCode::RECOVERABLE;
       }
     }
@@ -1634,7 +1561,7 @@ namespace MuonCalib {
       measuresPhi = 1;
     }
     else{
-      m_log << MSG::FATAL << "ASM  number  \"" << asmNum << "\" is invalid. It needs to end in a number from 1-5." << endmsg;
+      ATH_MSG_FATAL("ASM  number  \"" << asmNum << "\" is invalid. It needs to end in a number from 1-5.");
       return StatusCode::FAILURE;
     }
     return StatusCode::SUCCESS;
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.h
index 1c783e74271088e873c17627f46aacca12dd8ce1..494469bf69a23a69fcaeff0c54409b7a48a405d5 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.h
@@ -1,37 +1,29 @@
 /*
-  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 MUONCONDSVC_CSCCOOLSTRSVC_H
 #define MUONCONDSVC_CSCCOOLSTRSVC_H
-/**CscCoolStrSvc - Class with methods for reading and writing to cool databae*/ 
-#include <vector>
-#include <string>
-#include <sstream>
-#include <fstream>
 
-#include "GaudiKernel/Service.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "StoreGate/StoreGate.h"
+#include "MuonCondInterface/CscICoolStrSvc.h"
 #include "AthenaBaseComps/AthService.h"
+#include "GaudiKernel/ServiceHandle.h"
 
-//Added for attribute list declarations (might not need all of these)
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 #include "CoralBase/Attribute.h"
 #include "CoralBase/AttributeListSpecification.h"
-
-//Added to use CscIdHelper
-#include "Identifier/Identifier.h"
-#include "MuonIdHelpers/MuonIdHelperTool.h"
-
-//Calib conditions data classes
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 #include "MuonCondData/CscCondDataContainer.h"
 #include "MuonCondData/CscCondDataCollection.h"
-#include "MuonCondInterface/CscICoolStrSvc.h"
 
-    template <class TYPE> class SvcFactory;
+#include <vector>
+#include <string>
+#include <sstream>
+#include <fstream>
+
+template <class TYPE> class SvcFactory;
+
 namespace MuonCalib {
 
   /**
@@ -55,9 +47,7 @@ namespace MuonCalib {
 
     virtual const InterfaceID& type() const;
 
-
     virtual StatusCode initialize();
-    virtual StatusCode finalize();
 
     /**mergeAndSubmitCondDataContainer merges the data in newCont with what is currently cached from COOL.
       Then, it submits the new merged data for entry to cool (as of this writing the final write is done
@@ -180,18 +170,7 @@ namespace MuonCalib {
     /**p_detstore hold a pointer to the transient data storage*/
     StoreGateSvc* p_detstore;
 
-    /**m_log used for sending messages*/
-    mutable MsgStream m_log;
-
-    /**CscIdHelper is used to convert from identifiers to hash ids. MuonDetector manager is a
-      requirement on CscIdHelper*/
-    ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-      "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
-    //      const MuonGM::MuonDetectorManager * m_muonMgr;
-
-    /// Conditions Attribute List collections used for getting datahandles for callback functions*/
-    // const CondAttrListCollection* m_runAtrColl;
-    // const CondAttrListCollection* m_pulserAtrColl;
+    ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
 
     //maximum channel and chamber hashes (num of each -1). These are set
     //with a const_cast from the id helper
@@ -217,7 +196,6 @@ namespace MuonCalib {
     /**Flags*/
     bool m_preCache;
 
-    bool m_debug, m_verbose;
     mutable int m_numFailedRequests;
     int m_maxFailedRequests;
 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.icc b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.icc
index 941c78b8bc53db0ec4b5e9bfbf9407ad2899bb82..99cb5e94308e9de20c28f99a1a7edd8e85757259 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.icc
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/CscCoolStrSvc.icc
@@ -1,8 +1,7 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-
 namespace MuonCalib {
   //Retrieve a requested parameter by strip hashID from the local cache for the client.
   //Only reason for this template is so we don't have to retype same code for every
@@ -20,28 +19,27 @@ namespace MuonCalib {
     {
       if(parName == "t0phase" || parName == "t0base"){
         static bool firstTime = true;
-        if(firstTime) m_log << MSG::WARNING << "Attempted to request t0 parameters (t0phase or t0base) from CscCoolStrSvc. These are not yet implemented but will be in the near future. You can probably ignore this WARNING." << std::endl;
+        if(firstTime) ATH_MSG_WARNING("Attempted to request t0 parameters (t0phase or t0base) from CscCoolStrSvc. These are not yet implemented but will be in the near future. You can probably ignore this WARNING.");
         firstTime = false;
         return StatusCode::RECOVERABLE;
       }
       
-      m_log << MSG::ERROR << "There is no parameter loaded with name " << parName << ". Check spelling, or ensure you had it added in your jobOptions." << endmsg; 
+      ATH_MSG_ERROR("There is no parameter loaded with name " << parName << ". Check spelling, or ensure you had it added in your jobOptions."); 
       return StatusCode::RECOVERABLE;
     }
 
     CscCondDataCollection<data_type> * coll = dynamic_cast<CscCondDataCollection<data_type> *>( itr->second);
     if(!coll){
-      m_log << MSG::ERROR  <<  "Failed to cast datatype properly for parameter \"" << parName << "\"" << endmsg;
+      ATH_MSG_ERROR("Failed to cast datatype properly for parameter \"" << parName << "\"");
       return StatusCode::RECOVERABLE;
     }
 
     if(index > coll->size() -1)
     {
-      m_log << MSG::ERROR 
-        << "Requested index " << (coll->getParCat() == "CHANNEL" ? " (channel hash) ":"") << index 
+      ATH_MSG_ERROR("Requested index " << (coll->getParCat() == "CHANNEL" ? " (channel hash) ":"") << index 
         << " is too large for " << parName <<". The requested parameter (" << coll->getParName() << ") is of the  \"" << coll->getParCat() 
         << "\" category, which has a defined maximum value of "  << (coll->getSize()-1)
-        << ". This is likely an error upstream of CscCoolStrSvc creating an invalid identifier or hash id." <<  endmsg;
+        << ". This is likely an error upstream of CscCoolStrSvc creating an invalid identifier or hash id.");
       retData = coll->getParDefault();
       return StatusCode::RECOVERABLE;
     }
@@ -55,21 +53,19 @@ namespace MuonCalib {
 
       //If we are looking at invalid chamber layer (1), check corresponding channel in chamber layer 2
       Identifier id;
-      m_muonIdHelperTool->cscIdHelper().get_id(index,id,&m_channelContext);
-      if(m_muonIdHelperTool->cscIdHelper().chamberLayer(id) == 1)
+      m_idHelperSvc->cscIdHelper().get_id(index,id,&m_channelContext);
+      if(m_idHelperSvc->cscIdHelper().chamberLayer(id) == 1)
       {
         int newHash = swapChamberLayerReturnHash(id); 
         condData = coll->at(newHash);
         if(condData)  
         {
           if(m_numFailedRequests < m_maxFailedRequests)
-            m_log << MSG::WARNING << "Invalid chamber layer requested when retrieveing "
+            ATH_MSG_WARNING("Invalid chamber layer requested when retrieveing "
                   << parName
-                  << ". Tried corresponding channel in valid chamber layer and found good data."
-                  << endmsg;
+                  << ". Tried corresponding channel in valid chamber layer and found good data.");
           if(m_numFailedRequests++ == m_maxFailedRequests)
-            m_log << MSG::WARNING << "Reached maximum number of problematic requests to CscCoolStrSvc. No further warnings will be printed."
-                  << endmsg;
+            ATH_MSG_WARNING("Reached maximum number of problematic requests to CscCoolStrSvc. No further warnings will be printed.");
         }
       }
     }//end if "CHANNEL" category
@@ -81,9 +77,9 @@ namespace MuonCalib {
       //Return a default value
       retData = coll->getParDefault();
       if(m_numFailedRequests < m_maxFailedRequests) {
-        m_log << MSG::WARNING << "Requested index " << index << " has no data cached for parameter " << parName << ". Either its not valid (such as a hash Id for a chamber never installed) or there was a problem caching the database to memory. Returning default value of " << retData << endmsg;
+        ATH_MSG_WARNING("Requested index " << index << " has no data cached for parameter " << parName << ". Either its not valid (such as a hash Id for a chamber never installed) or there was a problem caching the database to memory. Returning default value of " << retData);
       }
-      if(m_numFailedRequests++ == m_maxFailedRequests) m_log << MSG::WARNING << "Reached maximum number of failed requests to CscCoolStrSvc. No further warnings will be printed." << endmsg; 
+      if(m_numFailedRequests++ == m_maxFailedRequests) ATH_MSG_WARNING("Reached maximum number of failed requests to CscCoolStrSvc. No further warnings will be printed."); 
     }
     else
     {
@@ -104,17 +100,17 @@ namespace MuonCalib {
   template <typename data_type> StatusCode CscCoolStrSvc::mergeCollections(const CscCondDataCollectionBase * & newCollBase, 
       const CscCondDataCollectionBase * & refCollBase)
   {
-    if(m_debug) m_log << MSG::DEBUG << "Merging collections for parameter " << newCollBase->getParName() << endmsg;
+    if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Merging collections for parameter " << newCollBase->getParName());
 
     const CscCondDataCollection<data_type> * newColl = dynamic_cast<const CscCondDataCollection<data_type>*>(newCollBase);
     if(!newColl){
-      m_log << MSG::ERROR  <<  "Failed to cast datatype properly for newColl in mergeCollections. Maybe a configuration problem in CSCCondDB.py?" << endmsg;
+      ATH_MSG_ERROR("Failed to cast datatype properly for newColl in mergeCollections. Maybe a configuration problem in CSCCondDB.py?");
       return StatusCode::RECOVERABLE;
     }
 
     const CscCondDataCollection<data_type> * refColl = dynamic_cast<const CscCondDataCollection<data_type>*>(refCollBase);
     if(!refColl){
-      m_log << MSG::ERROR  <<  "Failed to cast datatype properly for refColl in mergeCollections. Maybe a configuration problem in CSCCondDB.py?" << endmsg;
+      ATH_MSG_ERROR("Failed to cast datatype properly for refColl in mergeCollections. Maybe a configuration problem in CSCCondDB.py?");
       return StatusCode::RECOVERABLE;
     }
 
@@ -124,8 +120,8 @@ namespace MuonCalib {
     unsigned int numEntries = newColl->size();
     if(numEntries != newColl->size() )
     {
-      m_log << MSG::ERROR << "New collection has " << newColl->size() 
-        << " entries. Reference has " << refColl->size() << "." << endmsg;
+      ATH_MSG_ERROR("New collection has " << newColl->size() 
+        << " entries. Reference has " << refColl->size() << ".");
       return StatusCode::RECOVERABLE;
     }
 
@@ -134,8 +130,8 @@ namespace MuonCalib {
     //getChamberCoolChannel
 
     const unsigned int maxCoolChan = refColl->getNumCoolChan(); //cool channels start at 1
-    if(m_verbose) m_log << MSG::VERBOSE << "Maximum cool channel for this parameter is " 
-      << maxCoolChan << endmsg;
+    if(msgLvl(MSG::VERBOSE)) ATH_MSG_VERBOSE("Maximum cool channel for this parameter is " 
+      << maxCoolChan);
 
     //strVec is a vector of the strings we'll store in the database. The indices of the
     //vector are the cool channel -1.
@@ -173,8 +169,8 @@ namespace MuonCalib {
       else if(refDatum && m_doMerge)
         mergeDatum = refDatum;
 
-      if(m_verbose) m_log << MSG::VERBOSE << "Merged index: " << index 
-        << " with pointer at ref " << mergeDatum << endmsg;
+      if(msgLvl(MSG::VERBOSE)) ATH_MSG_VERBOSE("Merged index: " << index 
+        << " with pointer at ref " << mergeDatum);
 
       //Only put data if there is data available for it!
       if(mergeDatum) { 
@@ -208,8 +204,8 @@ namespace MuonCalib {
 
           unsigned int onlineId;
           if(!coolChamberChannelToOnlineId(index+1, onlineId ).isSuccess()){
-            m_log << MSG::ERROR << "Failed to retrieve online Id for chamber during merge." 
-              << endmsg;
+            ATH_MSG_ERROR("Failed to retrieve online Id for chamber during merge." 
+             );
           }
 
           ss << " " << std::hex << onlineId <<  " " << std::dec <<  mergeDatum->getValue();
@@ -220,53 +216,53 @@ namespace MuonCalib {
 
           unsigned int onlineId;
           if(!(layerHashToOnlineId(index, onlineId).isSuccess())) {
-            m_log << MSG::ERROR << "Failed at gettin layer hash" << endmsg;
+            ATH_MSG_ERROR("Failed at gettin layer hash");
             return StatusCode::RECOVERABLE;
           }
 
           ss << " " << std::hex << onlineId << " " <<  std::dec <<  mergeDatum->getValue();
 
           if(!onlineIdToCoolChamberChannel(onlineId, coolChan)) {
-            m_log << MSG::ERROR << "Failed at getting cool chamber channel from online Id " << std::hex << onlineId << std::dec << endmsg;
+            ATH_MSG_ERROR("Failed at getting cool chamber channel from online Id " << std::hex << onlineId << std::dec);
 
             return StatusCode::RECOVERABLE;
           }
         }
         else if (cat == "CHANNEL") {
           Identifier id;
-          m_muonIdHelperTool->cscIdHelper().get_id((IdentifierHash)index,id, &m_channelContext);
+          m_idHelperSvc->cscIdHelper().get_id((IdentifierHash)index,id, &m_channelContext);
           unsigned int onlineId; 
           if(!offlineToOnlineId(id, onlineId).isSuccess()) {
-            m_log << MSG::ERROR << "Failed at geting online id!" << endmsg; 
+            ATH_MSG_ERROR("Failed at geting online id!"); 
             return StatusCode::RECOVERABLE;
           }
 
           ss << " " << std::hex << onlineId <<  " "  << std::dec << mergeDatum->getValue();
 
           if(!onlineIdToCoolChamberChannel(onlineId, coolChan)) {
-            m_log << MSG::ERROR << "Failed at getting cool chamber channel from online Id " 
-              << std::hex << onlineId << std::dec << endmsg;
+            ATH_MSG_ERROR("Failed at getting cool chamber channel from online Id " 
+              << std::hex << onlineId << std::dec);
             return StatusCode::RECOVERABLE;
           }
-          if(m_verbose) m_log << MSG::VERBOSE << "Storing into COOL channel " 
-            << coolChan << endmsg;
+          if(msgLvl(MSG::VERBOSE)) ATH_MSG_VERBOSE("Storing into COOL channel " 
+            << coolChan);
         }
 
         else if (cat == "ASM")
         { Identifier id;
-          m_muonIdHelperTool->cscIdHelper().get_id((IdentifierHash)index,id, &m_channelContext);
+          m_idHelperSvc->cscIdHelper().get_id((IdentifierHash)index,id, &m_channelContext);
 
           unsigned int iChamber;
           unsigned int iASM;
           std::string AsmId;
           if(!offlineToAsmId(id, AsmId, iChamber, iASM).isSuccess())
-          { m_log << MSG::ERROR << "Failed at geting ASM id!" << endmsg;
+          { ATH_MSG_ERROR("Failed at geting ASM id!");
             return StatusCode::RECOVERABLE;
           }
 
           unsigned int onlineId;
           if(!offlineToOnlineId(id, onlineId).isSuccess())
-          { m_log << MSG::ERROR << "Failed at geting online id!" << endmsg;
+          { ATH_MSG_ERROR("Failed at geting online id!");
             return StatusCode::RECOVERABLE;
           }
 
@@ -274,19 +270,19 @@ namespace MuonCalib {
           { ss << " " << AsmId << " " << mergeDatum->getValue();
             CoolAsmValsFilled[iChamber][iASM-1] = true;
             if ( !onlineIdToCoolChamberChannel(onlineId, coolChan) )
-            { m_log << MSG::ERROR << "Failed at getting cool chamber channel from online Id "
-                << std::hex << onlineId << std::dec << endmsg;
+            { ATH_MSG_ERROR("Failed at getting cool chamber channel from online Id "
+                << std::hex << onlineId << std::dec);
               return StatusCode::RECOVERABLE;
             }
-            if(m_verbose) m_log << MSG::VERBOSE << "Storing into COOL channel "
-              << coolChan << endmsg;
+            if(msgLvl(MSG::VERBOSE)) ATH_MSG_VERBOSE("Storing into COOL channel "
+              << coolChan);
           }
         }//end if cat==asm
 
 
         if ( (coolChan==0) && !(cat=="ASM") )  {
-          m_log << MSG::ERROR << "Cool chan of 0 reqeusted for update. This is likely a bug."
-            << endmsg;
+          ATH_MSG_ERROR("Cool chan of 0 reqeusted for update. This is likely a bug."
+           );
           return StatusCode::RECOVERABLE;
         }
 
@@ -302,16 +298,16 @@ namespace MuonCalib {
     ///Store a CondAttrListCollection in TDS 
     std::string folder = refColl->getParFolder();
     CondAttrListCollection* atrc=0;
-    m_log << MSG::INFO << "Putting data for parameter " << parName 
-      << " into database folder " << folder  << endmsg;
+    ATH_MSG_DEBUG("Putting data for parameter " << parName 
+      << " into database folder " << folder );
 
     if (!p_detstore->contains<CondAttrListCollection>(folder)) {
-      m_log << MSG::DEBUG << "Creating new CondAttrListCollection for folder "
-        << folder << endmsg;
+      ATH_MSG_DEBUG("Creating new CondAttrListCollection for folder "
+        << folder);
       CondAttrListCollection* atrc=new CondAttrListCollection(true);
       if (StatusCode::SUCCESS!=p_detstore->record(atrc,folder)) {  //create new collection record in TDS
-        m_log << MSG::ERROR << "Could not create CondAttrListCollection "
-          <<  folder << endmsg;
+        ATH_MSG_ERROR("Could not create CondAttrListCollection "
+          <<  folder);
         return StatusCode::RECOVERABLE;
       }
     }
@@ -319,20 +315,20 @@ namespace MuonCalib {
     //Retrieve pointer to collection in TDS
     //do const cast here so we can add to already exisiting collections
     const CondAttrListCollection* catrc=0;
-    if(m_debug) m_log << MSG::DEBUG << "Attempting to retrieve collection (const)" << endmsg;
+    if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Attempting to retrieve collection (const)");
     if (StatusCode::SUCCESS!=p_detstore->retrieve(catrc,folder)) {
-      m_log << MSG::ERROR << "Could not retrieve CondAttrListCollection " 
-        <<  folder << endmsg;
+      ATH_MSG_ERROR("Could not retrieve CondAttrListCollection " 
+        <<  folder);
       return StatusCode::RECOVERABLE;
     } 
-    if(m_debug) m_log << MSG::DEBUG << "Retrieved. Casting away constness." << endmsg;
+    if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Retrieved. Casting away constness.");
     atrc=const_cast<CondAttrListCollection*>(catrc);
     if (atrc==0) {
-      m_log << MSG::ERROR << "Could not retrieve non-const pointer to atrc" 
-        << endmsg;
+      ATH_MSG_ERROR("Could not retrieve non-const pointer to atrc" 
+       );
       return StatusCode::RECOVERABLE;
     }
-    if(m_debug) m_log << MSG::DEBUG << "Casted away." << endmsg;
+    if(msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Casted away.");
 
     //AthenaAttributeList holds info for a single COOL channel
       
@@ -392,9 +388,7 @@ namespace MuonCalib {
       {
         unsigned int onlineId;
         if(!coolChamberChannelToOnlineId(coolChan, onlineId).isSuccess()) {
-          m_log << MSG::ERROR 
-            << "Failed to retrieve online Id using chamber channel during final write to db." 
-            << endmsg;
+          ATH_MSG_ERROR("Failed to retrieve online Id using chamber channel during final write to db.");
           return StatusCode::SUCCESS;
         }
         identifier = onlineId;
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/MDTCondSummarySvc.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/MDTCondSummarySvc.cxx
index da4ef7527eed2c125913efe9641e7d6870f5644e..d706daf97c3ff7cd58c02f814422ad5aff2e298b 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/MDTCondSummarySvc.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/MDTCondSummarySvc.cxx
@@ -3,24 +3,16 @@
 */
 
 #include "MuonCondSvc/MDTCondSummarySvc.h"
+
 #include <vector>
 #include <list>
 #include <algorithm>
 #include <sstream>
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/StatusCode.h"
-#include "Identifier/IdentifierHash.h"
-#include "MuonIdHelpers/MdtIdHelper.h"
-#include "MuonCondInterface/IMDTConditionsSvc.h"
-#include "Identifier/Identifier.h"
-
-MDTCondSummarySvc::MDTCondSummarySvc( const std::string& name, ISvcLocator* pSvcLocator ) : 
+
+MDTCondSummarySvc::MDTCondSummarySvc( const std::string& name, ISvcLocator* pSvcLocator) :
   AthService(name, pSvcLocator),
   m_reportingServices(name),
-  m_detStore("DetectorStore",name),m_noReports(true){
-  // default services
-  //  m_reportingServices.push_back("MDT_DCSConditionsSvc");
-  
+  m_detStore("DetectorStore",name),m_noReports(true) {
   declareProperty("ConditionsServices",m_reportingServices);
   declareProperty("DetStore", m_detStore);
 }
@@ -28,63 +20,30 @@ MDTCondSummarySvc::MDTCondSummarySvc( const std::string& name, ISvcLocator* pSvc
 
 StatusCode
 MDTCondSummarySvc::initialize(){
-  StatusCode sc(StatusCode::FAILURE);
   m_noReports = m_reportingServices.empty();
+  ATH_CHECK(m_detStore.retrieve());
+  ATH_CHECK(m_idHelperSvc.retrieve());
 
-  sc = m_detStore.retrieve();
-  if (sc.isFailure()) {
-    msg(MSG::FATAL) << "DetectorStore service not found !" << endmsg;
-    return sc;
-  } else {
-    msg(MSG::INFO) << "DetectorStore service found !" << endmsg;
-  }  
-  
-  sc = m_muonIdHelperTool.retrieve();
-  if (sc.isFailure())
-    {
-      msg(MSG::FATAL) << " Cannot retrieve MuonIdHelperTool " << endmsg;
-      return StatusCode::FAILURE;
-    }
-
-  
   if (m_noReports){
-    sc=StatusCode::SUCCESS;
-    msg(MSG::INFO)<<"No services were selected for the MDT summary"<<endmsg;
+    ATH_MSG_DEBUG("No services were selected for the MDT summary");
   } else {
-    sc = m_reportingServices.retrieve();
-    if ( sc.isFailure() ) {
-      msg(MSG::FATAL) << "Failed to retrieve " << m_reportingServices << endmsg;
-      return StatusCode::FAILURE;
-    }
-    
+    ATH_CHECK(m_reportingServices.retrieve());
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator pSvc= m_reportingServices.begin();
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator pLastSvc= m_reportingServices.end();
     for (;pSvc not_eq pLastSvc; ++pSvc){
       const std::string& svcName = pSvc->name();
-      msg(MSG::INFO)<<"Using "<< svcName << endmsg;
+      ATH_MSG_DEBUG("Using "<< svcName);
       if (m_detStore->regFcn(&IMDTConditionsSvc::initInfo,&**pSvc,
                            &MDTCondSummarySvc::update_MDT,this) != StatusCode::SUCCESS){ 
-        msg(MSG::WARNING)<<"Unable to register call back for "<<svcName<<endmsg; 
+        ATH_MSG_WARNING("Unable to register call back for "<<svcName); 
       } else {
-        msg(MSG::INFO)<<"initInfo registered for call-back for "<<svcName<<endmsg;
+        ATH_MSG_DEBUG("initInfo registered for call-back for "<<svcName);
       }
     }
   }
-
-  return sc;
-}
-
-
-
-//Finalize
-StatusCode
-MDTCondSummarySvc::finalize(){
-  msg(MSG::INFO)<<"Thank-you for using the MDTCondSummarySvc, version "<<PACKAGE_VERSION<<endmsg;
-  //Code
   return StatusCode::SUCCESS;
 }
 
-
 StatusCode
 MDTCondSummarySvc::queryInterface(const InterfaceID& riid, void** ppvInterface)
 {
@@ -100,26 +59,20 @@ MDTCondSummarySvc::queryInterface(const InterfaceID& riid, void** ppvInterface)
 
 
 StatusCode MDTCondSummarySvc::update_MDT(IOVSVC_CALLBACK_ARGS){
-
-  msg(MSG::DEBUG)<<"Register Call Back for MDT System"<<endmsg;
-
+   ATH_MSG_DEBUG("Register Call Back for MDT System");
    return StatusCode::SUCCESS;
 }
 
 StatusCode MDTCondSummarySvc::initInfo(IOVSVC_CALLBACK_ARGS){
-
-  msg(MSG::INFO)<<"Not to be called just dummy"<<endmsg;
+   ATH_MSG_DEBUG("Not to be called just dummy");
    return StatusCode::SUCCESS;
 }
 
-
-
-
 bool MDTCondSummarySvc::isGoodMultiLayer(const Identifier & Id) const{
   bool result=true;
   // check ID
-  Identifier MultilayerId = m_muonIdHelperTool->mdtIdHelper().multilayerID(Id);
-  Identifier ChamberId = m_muonIdHelperTool->mdtIdHelper().elementID(Id);
+  Identifier MultilayerId = m_idHelperSvc->mdtIdHelper().multilayerID(Id);
+  Identifier ChamberId = m_idHelperSvc->mdtIdHelper().elementID(Id);
   if (not m_noReports){
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator svc(m_reportingServices.begin());
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
@@ -133,7 +86,7 @@ bool MDTCondSummarySvc::isGoodMultiLayer(const Identifier & Id) const{
 	bool found = std::binary_search((*svc)->deadMultiLayersId().begin(),(*svc)->deadMultiLayersId().end(),MultilayerId,Compare);
 	if(found) result= false;
       }else{
-	msg(MSG::DEBUG)<<" Dead Multilayer from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_DEBUG(" Dead Multilayer from the service  are not availables "<<(*svc));
 	
       }
     }
@@ -148,8 +101,8 @@ bool MDTCondSummarySvc::isGoodMultiLayer(const Identifier & Id) const{
 bool MDTCondSummarySvc::isGoodChannel(const Identifier & Id) const{
   bool result=true;   
   Identifier TubeId = Id;
-  Identifier MultilayerId = m_muonIdHelperTool->mdtIdHelper().multilayerID(Id);
-  Identifier ChamberId = m_muonIdHelperTool->mdtIdHelper().elementID(Id);
+  Identifier MultilayerId = m_idHelperSvc->mdtIdHelper().multilayerID(Id);
+  Identifier ChamberId = m_idHelperSvc->mdtIdHelper().elementID(Id);
   if (not m_noReports){
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator svc(m_reportingServices.begin());
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
@@ -159,14 +112,14 @@ bool MDTCondSummarySvc::isGoodChannel(const Identifier & Id) const{
 	
 	bool found = std::binary_search((*svc)->deadStationsId().begin(),(*svc)->deadStationsId().end(),ChamberId,Compare);
 	if(found) result= false;
-        msg(MSG::DEBUG)<<" Chamber Dropped by DCS or not installed at all "<<endmsg;
+        ATH_MSG_DEBUG(" Chamber Dropped by DCS or not installed at all");
       }
       
       if ((*svc)->deadMultiLayersId().size()!=0 && result==true){
 
 	bool found = std::binary_search((*svc)->deadMultiLayersId().begin(),(*svc)->deadMultiLayersId().end(),MultilayerId,Compare);
 	if(found) result= false;
-	msg(MSG::DEBUG)<<" MultiLayer Dropped by DCS or not installed at all "<<endmsg;
+	ATH_MSG_DEBUG(" MultiLayer Dropped by DCS or not installed at all");
       }	 
       
       if ((*svc)->deadTubesId().size()!=0 && result==true){
@@ -175,7 +128,7 @@ bool MDTCondSummarySvc::isGoodChannel(const Identifier & Id) const{
 		
 	
       }else{
-	msg(MSG::DEBUG)<<" Dead Channel from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Channel from the service are not availables "<<(*svc));
 	result=true;
       }
     }
@@ -186,8 +139,8 @@ bool MDTCondSummarySvc::isGoodChannel(const Identifier & Id) const{
 bool MDTCondSummarySvc::isGood(const Identifier & Id) const{
   bool total_result = true;
 //  int counter=0;
-  Identifier MultilayerId = m_muonIdHelperTool->mdtIdHelper().multilayerID(Id);
-  Identifier ChamberId = m_muonIdHelperTool->mdtIdHelper().elementID(Id);
+  Identifier MultilayerId = m_idHelperSvc->mdtIdHelper().multilayerID(Id);
+  Identifier ChamberId = m_idHelperSvc->mdtIdHelper().elementID(Id);
   if (not m_noReports){
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator svc(m_reportingServices.begin());
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
@@ -198,23 +151,16 @@ bool MDTCondSummarySvc::isGood(const Identifier & Id) const{
 	  bool found = std::binary_search( 
 					  (*svc)->deadStationsId().begin(),(*svc)->deadStationsId().end(),ChamberId,Compare);
 	  if(found) total_result = false;
-	    msg(MSG::VERBOSE)<<" Chamber Dropped by DCS or not installed at all "<<endmsg;
+	    ATH_MSG_WARNING(" Chamber Dropped by DCS or not installed at all");
 	  
 	}else if ((*svc)->deadMultiLayersId().size()!=0){
 	  
 	  bool found = std::binary_search( 
 					  (*svc)->deadMultiLayersId().begin(),(*svc)->deadMultiLayersId().end(),MultilayerId,Compare);
 	  if(found) total_result= false;
-	  
-	  //} else if ((*svc)->deadTubesId().size()!=0){
-	  //int size = (*svc)->deadTubesId().size();
-	  //bool found = std::binary_search( 
-	  //				  (*svc)->List_Chambers_with_deadTube().begin(),(*svc)->List_Chambers_with_deadTube().end(),ChamberId,Compare);
-	  //if(found) total_result= false;
-          //msg(MSG::INFO)<<" Chamber with Tubes dead "<<endmsg;	  
-	  
+
 	}else total_result = true;
-      msg(MSG::VERBOSE)<<"Thank-you for using the MDTCondSummarySvc,  service "<<endmsg;
+      ATH_MSG_VERBOSE("Thank-you for using the MDTCondSummarySvc, service");
     }   
   }
   
@@ -224,11 +170,10 @@ bool MDTCondSummarySvc::isGood(const Identifier & Id) const{
 bool MDTCondSummarySvc::isGoodChamber(const Identifier & Id) const{
   bool result=true;
   int counter =0;
-  // Identifier chamberId = m_muonIdHelperTool->mdtIdHelper().elementID(Id);
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator svc(m_reportingServices.begin());
     ServiceHandleArray<IMDTConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
     for (;svc not_eq  lastSvc;svc++){
-      msg(MSG::VERBOSE)<<" Dead Stations from the service , size= "<<(*svc)->deadStationsId().size()<<endmsg;
+      ATH_MSG_VERBOSE(" Dead Stations from the service , size= "<<(*svc)->deadStationsId().size());
       if ((*svc)->deadStationsId().size()!=0){
 
 	bool found = std::binary_search( 
@@ -237,13 +182,13 @@ bool MDTCondSummarySvc::isGoodChamber(const Identifier & Id) const{
 	if(found) counter++;
       }
       else{
-	msg(MSG::DEBUG)<<" Dead Stations from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_DEBUG(" Dead Stations from the service  are not availables "<<(*svc));
 	
       }
     }
   
     if (counter!=0) result = false; 
-    msg(MSG::VERBOSE)<<" Dead Stations from the service  "<< counter <<endmsg;
+    ATH_MSG_WARNING(" Dead Stations from the service  "<< counter);
     
     return result;
   
@@ -261,7 +206,7 @@ const std::vector<std::string>& MDTCondSummarySvc::deadStations() const{
       if ((*svc)->deadStations().size()!=0){
 	return (*svc)->deadStations();
       }else{
-	msg(MSG::VERBOSE)<<" Dead Stations from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Stations from the service  are not availables "<<(*svc));
 	
       }
     }
@@ -281,7 +226,7 @@ const std::vector<std::string>& MDTCondSummarySvc::deadTubes() const{
 	return (*svc)->deadTubes();
       }else{
 
-	msg(MSG::VERBOSE)<<" Dead Tubes from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Tubes from the service  are not availables "<<(*svc));
       }
     }     
   }
@@ -298,7 +243,7 @@ const std::vector<std::string>& MDTCondSummarySvc::deadMultiLayers() const{
       if ((*svc)->deadMultiLayers().size()!=0){
 	return (*svc)->deadMultiLayers();
       }else {
-	msg(MSG::VERBOSE)<<" Dead Stations MDTConditionsSummarySvc "<<endmsg;
+	ATH_MSG_WARNING(" Dead Stations MDTConditionsSummarySvc ");
 	
       }
     }
@@ -318,7 +263,7 @@ const std::vector<Identifier>& MDTCondSummarySvc::deadStationsId() const{
       if ((*svc)->deadStationsId().size()!=0){
 	return (*svc)->deadStationsId();
       }else{
-	msg(MSG::VERBOSE)<<" Dead Stations from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Stations from the service  are not availables "<<(*svc));
       }
     }
     
@@ -336,7 +281,7 @@ const std::vector<Identifier>& MDTCondSummarySvc::deadTubesId() const{
     if ((*svc)->deadTubesId().size()!=0){
       return (*svc)->deadTubesId();
       } else{ 
-	msg(MSG::VERBOSE)<<" Dead Tubes from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Tubes from the service  are not availables "<<(*svc));
       }     
   }
   }
@@ -353,7 +298,7 @@ const std::vector<Identifier>& MDTCondSummarySvc::deadMultiLayersId() const{
       if ((*svc)->deadMultiLayersId().size()!=0){
 	return (*svc)->deadMultiLayersId();
       }else{
-	msg(MSG::VERBOSE)<<" Dead ML from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead ML from the service  are not availables "<<(*svc));
       }
     }
     
@@ -371,7 +316,7 @@ const std::vector<Identifier>& MDTCondSummarySvc::deadLayersId() const{
       if ((*svc)->deadLayersId().size()!=0){
 	return (*svc)->deadLayersId();
       }else{
-	msg(MSG::VERBOSE)<<" Dead LAYERS from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead LAYERS from the service  are not availables "<<(*svc));
       }
     }
     
@@ -389,7 +334,7 @@ const std::vector<Identifier>& MDTCondSummarySvc::List_Chambers_with_deadTube()
       if ((*svc)->List_Chambers_with_deadTube().size()!=0){
 	return (*svc)->List_Chambers_with_deadTube();
       }else{
-	msg(MSG::VERBOSE)<<" Dead Tube Chambers from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_WARNING(" Dead Tube Chambers from the service  are not availables "<<(*svc));
       }
     }
     
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/RPCCondSummarySvc.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/RPCCondSummarySvc.cxx
index 663117a3980c8e9e5310d1eb8d9cbc4e7b151a03..af101c556dc588aa7b039d214422ec3de3daabf0 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/RPCCondSummarySvc.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/RPCCondSummarySvc.cxx
@@ -2,17 +2,12 @@
   Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/ISvcLocator.h"
+#include "MuonCondSvc/RPCCondSummarySvc.h"
+
 #include <vector>
 #include <list>
 #include <algorithm>
 #include <sstream>
-#include "GaudiKernel/StatusCode.h"
-#include "Identifier/IdentifierHash.h"
-#include "MuonIdHelpers/RpcIdHelper.h"
-#include "MuonCondInterface/IRPCConditionsSvc.h"
-#include "MuonCondSvc/RPCCondSummarySvc.h"
-#include "Identifier/Identifier.h"
 
 RPCCondSummarySvc::RPCCondSummarySvc( const std::string& name, ISvcLocator* pSvcLocator ) : 
   AthService(name, pSvcLocator),
@@ -22,7 +17,6 @@ RPCCondSummarySvc::RPCCondSummarySvc( const std::string& name, ISvcLocator* pSvc
   m_rpc_DCSSvc("RPC_DCSConditionsSvc",name),
   m_noReports(true){
   m_reportingServices.push_back("RPC_STATUSConditionsSvc");
-  //m_reportingServices.push_back("RPC_DCSConditionsSvc");
   declareProperty("ConditionsServices",m_reportingServices);
   declareProperty("UseSimulation",m_usesimulation=false);
 }
@@ -30,71 +24,35 @@ RPCCondSummarySvc::RPCCondSummarySvc( const std::string& name, ISvcLocator* pSvc
 //Initialize
 StatusCode 
 RPCCondSummarySvc::initialize(){
-  StatusCode sc(StatusCode::SUCCESS);
-  //
-  msg(MSG::INFO)<<"*************Initialize"<<endmsg;
   m_noReports = m_reportingServices.empty();
-  
- 
-  StoreGateSvc * detStore;
-  StatusCode status = service("DetectorStore",detStore);
-  if (status.isFailure()) {
-    msg(MSG::FATAL) << "DetectorStore service not found !" << endmsg;
-  } else {
-    msg(MSG::INFO) << "DetectorStore service found !" << endmsg;
-    
-  }  
- 
-  ATH_CHECK( m_muonIdHelperTool.retrieve() );
-
+  ATH_CHECK(m_detStore.retrieve());
+  ATH_CHECK(m_idHelperSvc.retrieve());
   if(m_usesimulation){
-    msg(MSG::INFO) << "Load RPC_DCSService by hand for simulation maps !" << endmsg;
-    StatusCode sc(StatusCode::SUCCESS);
-  
-    if (StatusCode::SUCCESS not_eq sc) {
-      msg(MSG::ERROR)<<"Could not retrieve the summary service"<<endmsg;
-    }
-    sc = m_rpc_StatusSvc.retrieve();
+    ATH_MSG_DEBUG("Load RPC_DCSService by hand for simulation maps !");
+    ATH_CHECK(m_rpc_StatusSvc.retrieve());
   }
 
-
   if (m_noReports){
-    sc=StatusCode::SUCCESS;
-    msg(MSG::INFO)<<"No services were selected for the RPC summary"<<endmsg;
+    ATH_MSG_DEBUG("No services were selected for the RPC summary");
   } else {
-    sc = m_reportingServices.retrieve();
-    if ( sc.isFailure() ) {
-      msg(MSG::FATAL) << "Failed to retrieve " << m_reportingServices << endmsg;
-      return StatusCode::FAILURE;
-    }
-    
+    ATH_CHECK(m_reportingServices.retrieve());
+
     ServiceHandleArray<IRPCConditionsSvc>::const_iterator pSvc= m_reportingServices.begin();
     ServiceHandleArray<IRPCConditionsSvc>::const_iterator pLastSvc= m_reportingServices.end();
     for (;pSvc not_eq pLastSvc; ++pSvc){
       const std::string& svcName = pSvc->name();
-      msg(MSG::INFO)<<"Using "<< svcName << endmsg;
+      ATH_MSG_DEBUG("Using "<< svcName);
       if (m_detStore->regFcn(&IRPCConditionsSvc::initInfo,&**pSvc,
                            &RPCCondSummarySvc::update_RPC,this) != StatusCode::SUCCESS){ 
-        msg(MSG::WARNING)<<"Unable to register call back for "<<svcName<<endmsg; 
+        ATH_MSG_WARNING("Unable to register call back for "<<svcName); 
        
       } else {
-        msg(MSG::INFO)<<"initInfo registered for call-back for "<<svcName<<endmsg;
-        //std::cout << " initInfo registered for call-back for"<< svcName << std::endl;
+        ATH_MSG_DEBUG("initInfo registered for call-back for "<<svcName);
       }
     }
     
-  }   
-  
-  
-  return sc;
-}
-
-//Finalize
-StatusCode
-RPCCondSummarySvc::finalize(){
-  StatusCode sc(StatusCode::SUCCESS);
-  //Code
-  return sc;
+  }
+  return StatusCode::SUCCESS;
 }
 
 StatusCode 
@@ -112,15 +70,13 @@ RPCCondSummarySvc::queryInterface(const InterfaceID& riid, void** ppvInterface)
 
 
 StatusCode RPCCondSummarySvc::update_RPC(IOVSVC_CALLBACK_ARGS){
- msg(MSG::INFO)<<"Register Call Back for RPC System"<<endmsg;
-
-   return StatusCode::SUCCESS;
+  ATH_MSG_DEBUG("Register Call Back for RPC System");
+  return StatusCode::SUCCESS;
 }
 
 StatusCode RPCCondSummarySvc::initInfo(IOVSVC_CALLBACK_ARGS){
-  msg(MSG::INFO)<<"Not to be called just dummy"<<endmsg;
-
-   return StatusCode::SUCCESS;
+  ATH_MSG_DEBUG("Not to be called just dummy");
+  return StatusCode::SUCCESS;
 }
 
 
@@ -129,23 +85,23 @@ bool RPCCondSummarySvc::isGoodPanel(const Identifier & Id) const{
   
   bool result=true;
   int counter =0;
-  Identifier PanelId = m_muonIdHelperTool->rpcIdHelper().panelID(Id);
+  Identifier PanelId = m_idHelperSvc->rpcIdHelper().panelID(Id);
   //Identifier PanelId = Id;
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator svc(m_reportingServices.begin());
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
   for (;svc not_eq  lastSvc;svc++){
-    msg(MSG::INFO)<<" Eff Panels from the service , size= "<<(*svc)->EffPanelId().size()<<endmsg;
+    ATH_MSG_DEBUG(" Eff Panels from the service, size= "<<(*svc)->EffPanelId().size());
     if ((*svc)->EffPanelId().size()!=0){
       bool found = std::binary_search((*svc)->EffPanelId().begin(),(*svc)->EffPanelId().end(),PanelId,Compare);
       if(found) counter++;
     }
     else{
-      msg(MSG::INFO)<<" Eff Panels from the service  are not available "<<(*svc) <<endmsg;
+      ATH_MSG_DEBUG(" Eff Panels from the service  are not available "<<(*svc));
     }
   }
   
   if (counter!=0) result = false; 
-  msg(MSG::INFO)<<" Eff. Panels from the service  "<< counter <<endmsg;
+  ATH_MSG_DEBUG(" Eff. Panels from the service  "<< counter);
   
   return result;
   
@@ -155,7 +111,7 @@ bool RPCCondSummarySvc::isGoodStrip(const Identifier & Id) const{
   
   bool result=true;   
   Identifier StripId = Id;
-  Identifier PanelId = m_muonIdHelperTool->rpcIdHelper().panelID(Id);
+  Identifier PanelId = m_idHelperSvc->rpcIdHelper().panelID(Id);
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator svc(m_reportingServices.begin());
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
   if (not m_noReports){
@@ -168,7 +124,7 @@ bool RPCCondSummarySvc::isGoodStrip(const Identifier & Id) const{
 	bool found = std::binary_search((*svc)->EffStripId().begin(),(*svc)->EffStripId().end(),StripId,Compare);
 	if(found) result= false;
       }else{
-	msg(MSG::INFO)<<" Dead Multilayer from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_DEBUG(" Dead Multilayer from the service  are not availables "<<(*svc));
       }
     } 
   }   
@@ -183,9 +139,9 @@ const std::vector<Identifier>& RPCCondSummarySvc::EffPanelId() const{
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
     for (;svc not_eq lastSvc;++svc){
       if((*svc)->EffPanelId().size()) return (*svc)->EffPanelId();
-      else msg(MSG::DEBUG)<<" Eff Panel from the service  are not availables "<<(*svc) <<endmsg;
+      else ATH_MSG_DEBUG(" Eff Panel from the service  are not availables "<<(*svc));
     }
-    msg(MSG::INFO)<<" Efficiency per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
+    ATH_MSG_DEBUG(" Efficiency per Panel RPC  RPCConditionsSummarySvc ");
      
   }
    return m_emptyId;  
@@ -201,9 +157,9 @@ const std::vector<Identifier>& RPCCondSummarySvc::EffStripId() const{
     
     for (;svc not_eq lastSvc;++svc){
       if((*svc)->EffStripId().size()) return (*svc)->EffStripId();
-	else msg(MSG::DEBUG)<<" Eff Strip from the service  are not availables "<<(*svc) <<endmsg;
+	else ATH_MSG_DEBUG(" Eff Strip from the service  are not availables "<<(*svc));
     }
-    msg(MSG::INFO)<<" Efficiency per Strip RPC  RPCConditionsSummarySvc "<<endmsg;
+    ATH_MSG_DEBUG(" Efficiency per Strip RPC  RPCConditionsSummarySvc ");
      
   }
    return m_emptyId;  
@@ -216,9 +172,9 @@ const std::vector<Identifier>& RPCCondSummarySvc::deadPanelId() const{
     ServiceHandleArray<IRPCConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
     for (;svc not_eq lastSvc;++svc){ 
       if((*svc)->deadPanelId().size())return (*svc)->deadPanelId();
-      else msg(MSG::DEBUG)<<" DeadPanel from the service  are not availables "<<(*svc) <<endmsg;
+      else ATH_MSG_DEBUG(" DeadPanel from the service  are not availables "<<(*svc));
     }
-    msg(MSG::INFO)<<" dead panel RPC  RPCConditionsSummarySvc "<<endmsg;
+    ATH_MSG_DEBUG(" dead panel RPC  RPCConditionsSummarySvc ");
      
   }
    return m_emptyId;  
@@ -233,9 +189,9 @@ const std::vector<Identifier>& RPCCondSummarySvc::offPanelId() const{
     for (;svc not_eq lastSvc;++svc){
    
       if((*svc)->offPanelId().size())return (*svc)->offPanelId();
-      else msg(MSG::DEBUG)<<" OffPanel from the service  are not availables "<<(*svc) <<endmsg;
+      else ATH_MSG_DEBUG(" OffPanel from the service  are not availables "<<(*svc));
     }
-    msg(MSG::INFO)<<" off panel RPC  RPCConditionsSummarySvc "<<endmsg;
+    ATH_MSG_DEBUG(" off panel RPC  RPCConditionsSummarySvc ");
   }
   return m_emptyId;  
 }
@@ -252,11 +208,10 @@ static  std::map<Identifier ,double> s_RPCCondSummarySvc_RPC_PanelEfficiencyMap_
   for (;svc not_eq lastSvc;++svc){
     //std::cout <<"Efficiency per Panel RPC  RPCConditionsSummarySvc  "<<(*svc)->RPC_EfficiencyMap().size() <<std::endl;
     if((*svc)->RPC_EfficiencyMap().size()) return (*svc)->RPC_EfficiencyMap();
-    else msg(MSG::DEBUG)<<"RPC_EfficiencyMap from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_EfficiencyMap from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" Efficiency per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"Efficiency Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG(" Efficiency per Panel RPC  RPCConditionsSummarySvc ");
+  ATH_MSG_DEBUG("Efficiency Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelEfficiencyMap_empty;
 }
 
@@ -269,11 +224,10 @@ static  std::map<Identifier ,double> s_RPCCondSummarySvc_RPC_GapEfficiencyMap_em
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
   for (;svc not_eq lastSvc;++svc){
     if((*svc)->RPC_EfficiencyGapMap().size()) return (*svc)->RPC_EfficiencyGapMap();
-    else msg(MSG::DEBUG)<<"RPC_EfficiencyGapMap from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_EfficiencyGapMap from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" GapEfficiency per  RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"GapEfficiency Map per RPC "<<endmsg;
- 
+  ATH_MSG_DEBUG(" GapEfficiency per  RPC  RPCConditionsSummarySvc ");
+  ATH_MSG_DEBUG("GapEfficiency Map per RPC ");
   return s_RPCCondSummarySvc_RPC_GapEfficiencyMap_empty;
 }
 
@@ -286,12 +240,10 @@ static  std::map<Identifier ,double> s_RPCCondSummarySvc_RPC_PanelMeanClusterSiz
 
   for (;svc not_eq lastSvc;++svc){
     if((*svc)->RPC_MeanClusterSizeMap().size()) return (*svc)->RPC_MeanClusterSizeMap();
-    else msg(MSG::DEBUG)<<"RPC_MeanClusterSizeMap from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_MeanClusterSizeMap from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" MeanClusterSize per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
- 
-  msg(MSG::VERBOSE)<<"MeanClusterSize Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG(" MeanClusterSize per Panel RPC  RPCConditionsSummarySvc ");
+  ATH_MSG_DEBUG("MeanClusterSize Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelMeanClusterSizeMap_empty;
 }
 
@@ -304,11 +256,10 @@ static  std::map<Identifier ,double> s_RPCCondSummarySvc_RPC_PanelFracClusterSiz
 
   for (;svc not_eq lastSvc;++svc){
     if((*svc)->RPC_FracClusterSize1Map().size()) return (*svc)->RPC_FracClusterSize1Map();
-    else msg(MSG::DEBUG)<<"RPC_FracClusterSize1Map from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_FracClusterSize1Map from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" FracClusterSize1 per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"FracClusterSize1 Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG("FracClusterSize1 per Panel RPC  RPCConditionsSummarySvc ");
+  ATH_MSG_DEBUG("FracClusterSize1 Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelFracClusterSize1Map_empty;
 }
 
@@ -321,11 +272,10 @@ static  std::map<Identifier ,double> s_RPCCondSummarySvc_RPC_PanelFracClusterSiz
 
   for (;svc not_eq lastSvc;++svc){
     if((*svc)->RPC_FracClusterSize2Map().size()) return (*svc)->RPC_FracClusterSize2Map();
-    else msg(MSG::DEBUG)<<"RPC_FracClusterSize2Map from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_FracClusterSize2Map from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" FracClusterSize2 per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"FracClusterSize2 Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG("FracClusterSize2 per Panel RPC  RPCConditionsSummarySvc ");
+  ATH_MSG_DEBUG("FracClusterSize2 Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelFracClusterSize2Map_empty;
 }
 
@@ -338,11 +288,10 @@ static  std::map<Identifier ,double> s_RPCCondSummarySvc_RPC_PanelFracClusterSiz
 
   for (;svc not_eq lastSvc;++svc){
     if((*svc)->RPC_FracClusterSize3Map().size()) return (*svc)->RPC_FracClusterSize3Map();
-    else msg(MSG::DEBUG)<<"RPC_FracClusterSize3Map from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_FracClusterSize3Map from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" FracClusterSize3 per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"FracClusterSize3 Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG("FracClusterSize3 per Panel RPC  RPCConditionsSummarySvc ");
+  ATH_MSG_DEBUG("FracClusterSize3 Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelFracClusterSize3Map_empty;
 }
 
@@ -354,11 +303,10 @@ static  std::map<Identifier ,std::string> s_RPCCondSummarySvc_RPC_PanelDeadStrip
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
   for (;svc not_eq lastSvc;++svc){
     if((*svc)->RPC_DeadStripListMap().size()) return (*svc)->RPC_DeadStripListMap();
-    else msg(MSG::DEBUG)<<"RPC_DeadStripListMap from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_DeadStripListMap from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" DeadStripList per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"DeadStripList Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG("DeadStripList per Panel RPC  RPCConditionsSummarySvc");
+  ATH_MSG_DEBUG("DeadStripList Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelDeadStripListMap_empty;
 }
 
@@ -371,11 +319,10 @@ static  std::map<Identifier ,float> s_RPCCondSummarySvc_RPC_PanelFracDeadStripMa
 
   for (;svc not_eq lastSvc;++svc){
     if((*svc)->RPC_FracDeadStripMap().size()) return (*svc)->RPC_FracDeadStripMap();
-    else msg(MSG::DEBUG)<<"RPC_FracDeadStripMap from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_FracDeadStripMap from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" FracDeadStrip per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"FracDeadStrip Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG("FracDeadStrip per Panel RPC  RPCConditionsSummarySvc");
+  ATH_MSG_DEBUG("FracDeadStrip Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelFracDeadStripMap_empty;
 }
 
@@ -388,11 +335,10 @@ static  std::map<Identifier ,int> s_RPCCondSummarySvc_RPC_PanelProjectedTracksMa
 
   for (;svc not_eq lastSvc;++svc){
      if((*svc)->RPC_ProjectedTracksMap().size()) return (*svc)->RPC_ProjectedTracksMap();
-     else msg(MSG::DEBUG)<<"RPC_ProjectedTracksMap from the service  are not availables "<<(*svc) <<endmsg;
+     else ATH_MSG_DEBUG("RPC_ProjectedTracksMap from the service are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<" ProjectedTracks per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"ProjectedTracks Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG("ProjectedTracks per Panel RPC  RPCConditionsSummarySvc");
+  ATH_MSG_DEBUG("ProjectedTracks Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelProjectedTracksMap_empty;
 }
 
@@ -404,11 +350,10 @@ static  std::map<Identifier ,int> s_RPCCondSummarySvc_RPC_PanelDeadStripList_emp
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
   for (;svc not_eq lastSvc;++svc){
     if((*svc)->RPC_DeadStripList().size()) return (*svc)->RPC_DeadStripList();
-    else msg(MSG::DEBUG)<<"RPC_DeadStripList from the service  are not availables "<<(*svc) <<endmsg;
+    else ATH_MSG_DEBUG("RPC_DeadStripList from the service  are not availables "<<(*svc));
   }
-  msg(MSG::INFO)<<"DeadStripList per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"DeadStripList Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG("DeadStripList per Panel RPC  RPCConditionsSummarySvc");
+  ATH_MSG_DEBUG("DeadStripList Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_PanelDeadStripList_empty;
 } 
 
@@ -420,11 +365,10 @@ static  std::map<Identifier ,std::vector<double> > s_RPCCondSummarySvc_RPC_Strip
   ServiceHandleArray<IRPCConditionsSvc>::const_iterator lastSvc(m_reportingServices.end());
   for (;svc not_eq lastSvc;++svc){
      if((*svc)->RPC_TimeMapforStrip().size()) return (*svc)->RPC_TimeMapforStrip();
-     else msg(MSG::DEBUG)<<"RPC_TimeMapforStrip from the service  are not availables "<<(*svc) <<endmsg; 
+     else ATH_MSG_DEBUG("RPC_TimeMapforStrip from the service  are not availables "<<(*svc)); 
   }
-  msg(MSG::INFO)<<" Strip Time per Panel RPC  RPCConditionsSummarySvc "<<endmsg;
-  msg(MSG::VERBOSE)<<"Strip Time Map per RPC panel"<<endmsg;
- 
+  ATH_MSG_DEBUG(" Strip Time per Panel RPC  RPCConditionsSummarySvc ");
+  ATH_MSG_DEBUG("Strip Time Map per RPC panel");
   return s_RPCCondSummarySvc_RPC_StripTimeMap_empty;
 }
 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/RpcCoolStrSvc.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/RpcCoolStrSvc.cxx
index a62ad657739e008d2f4339f84a150bcbd1bd01bd..01ecaff64126de8ce0c70d389c61db63e7d2043f 100755
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/RpcCoolStrSvc.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/RpcCoolStrSvc.cxx
@@ -31,17 +31,13 @@ namespace MuonCalib {
   
   RpcCoolStrSvc::RpcCoolStrSvc(const std::string& name, ISvcLocator* svc) :
     AthService(name,svc),
-    p_detstore(0),
-    m_log(msgSvc(),name),  
-    m_folder(""),   
-    m_debugLevel(false)
+    p_detstore(nullptr),
+    m_folder("")
   {
     //declare properties
     declareProperty("Folder",m_folder);
   }
   
-  RpcCoolStrSvc::~RpcCoolStrSvc() {}
-  
   const InterfaceID& RpcCoolStrSvc::type() const
   {
     return RpcICoolStrSvc::interfaceID();
@@ -59,64 +55,29 @@ namespace MuonCalib {
   
   StatusCode RpcCoolStrSvc::initialize()
   {
-    // service initialisation 
-    m_log.setLevel(outputLevel());    //individual outputlevel not known before inialize
-    m_debugLevel = (m_log.level() <= MSG::DEBUG);
-    
-    m_log << MSG::INFO << "Initializing RpcCoolStrSvc" <<endmsg;
-    
-    // get detector store, linked to cool database by other algorithms in your
-    // jobOptions file.
-    if (StatusCode::SUCCESS!=service("DetectorStore",p_detstore)) {
-      m_log << MSG::FATAL << "Detector store not found" << endmsg; 
-      return StatusCode::FAILURE;
-    }
-    
-    
-    m_log << MSG::ERROR << "THIS CODE IS EXPERIMENTAL, NOT TO BE USED IN PRODUCTION" << endmsg;
-    m_log << MSG::ERROR << "THIS CODE IS EXPERIMENTAL, NOT TO BE USED IN PRODUCTION" << endmsg;
-    m_log << MSG::ERROR << "************** LOTS OF MEMORY LEAKS YET ***************" << endmsg;
-    m_log << MSG::ERROR << "                 USE AT YOUR OWN RISK" << endmsg;
-    m_log << MSG::ERROR << "                 USE AT YOUR OWN RISK" << endmsg;
-
-    m_log << MSG::INFO << "using folder " << m_folder<<endmsg;
-
-    //Setup RpcIdHelper
-    StoreGateSvc* detStore= 0;
-    StatusCode sc = serviceLocator()->service("DetectorStore",detStore);
-    
-    if(sc.isSuccess())
-    {
-	    ATH_CHECK( m_muonIdHelperTool.retrieve() );
-    }
-    else
-    {
-	    m_log << MSG::ERROR << "MuonDetDescrMgr not found in DetectorStore " << endmsg;
-	    return sc;
-    } 
-
-    return StatusCode::SUCCESS;
-  }
-  
-  StatusCode RpcCoolStrSvc::finalize()
-  {
-    m_log << MSG::DEBUG << "in finalize()" << endmsg;
+    ATH_MSG_DEBUG("Initializing RpcCoolStrSvc");
+    ATH_CHECK(service("DetectorStore",p_detstore));
+    ATH_MSG_DEBUG("THIS CODE IS EXPERIMENTAL, NOT TO BE USED IN PRODUCTION");
+    ATH_MSG_DEBUG("THIS CODE IS EXPERIMENTAL, NOT TO BE USED IN PRODUCTION");
+    ATH_MSG_DEBUG("************** LOTS OF MEMORY LEAKS YET ***************");
+    ATH_MSG_DEBUG("                 USE AT YOUR OWN RISK");
+    ATH_MSG_DEBUG("                 USE AT YOUR OWN RISK");
+    ATH_MSG_DEBUG("using folder " << m_folder);
     return StatusCode::SUCCESS;
   }
-  
 
   StatusCode RpcCoolStrSvc::putOnlineFile(const std::string filename) const {
 
     // for the time being let's keep this 
 
     m_theOnlineEntries.clear();
-    m_log << MSG::INFO << "Opening the online mask file " << filename << " for entry into COOL database." << endmsg;
+    ATH_MSG_DEBUG("Opening the online mask file " << filename << " for entry into COOL database.");
     
     //open file
     std::ifstream in(filename.c_str());       
     if(!in.is_open())
       {
-	m_log << MSG::ERROR << "Can't open online mask file " << filename << "!" << endmsg;
+	ATH_MSG_ERROR("Can't open online mask file " << filename << "!");
 	return StatusCode::FAILURE;
       }	
 
@@ -138,7 +99,7 @@ namespace MuonCalib {
 
     }
     
-    m_log << MSG::DEBUG << "Finished reading file, now writing to database " << endmsg; 
+    ATH_MSG_DEBUG("Finished reading file, now writing to database "); 
 
     return writeToOnlineDB();
  
@@ -155,13 +116,13 @@ namespace MuonCalib {
     
 
     m_theEntries.clear();
-    m_log << MSG::INFO << "Opening the calibration file " << filename << " for entry into COOL database." << endmsg;
+    ATH_MSG_DEBUG("Opening the calibration file " << filename << " for entry into COOL database.");
     
     //open file
     std::ifstream in(filename.c_str());       
     if(!in.is_open())
       {
-	m_log << MSG::ERROR << "Can't open calibration file " << filename << "!" << endmsg;
+	ATH_MSG_ERROR("Can't open calibration file " << filename << "!");
 	return StatusCode::FAILURE;
       }	
 
@@ -181,7 +142,7 @@ namespace MuonCalib {
 
     }
 
-    m_log << MSG::INFO << "Finished reading file, now writing to database " << endmsg; 
+    ATH_MSG_DEBUG("Finished reading file, now writing to database "); 
 
     return writeToDB();
     
@@ -190,38 +151,33 @@ namespace MuonCalib {
 
   StatusCode RpcCoolStrSvc::writeToOnlineDB() const{
 
-    CondAttrListCollection* atrc=0;
+    CondAttrListCollection* atrc=nullptr;
     if (!p_detstore->contains<CondAttrListCollection>(m_folder)) {
-      m_log << MSG::DEBUG << "Creating new CondAttrListCollection for folder "
-	  << m_folder << endmsg;
+      ATH_MSG_DEBUG("Creating new CondAttrListCollection for folder "
+	  << m_folder);
       CondAttrListCollection* atrc=new CondAttrListCollection(true);
       if (StatusCode::SUCCESS!=p_detstore->record(atrc,m_folder)) {
-	m_log << MSG::ERROR << "Could not create CondAttrListCollection " <<
-	  m_folder << endmsg;
+	ATH_MSG_ERROR("Could not create CondAttrListCollection " <<
+	  m_folder);
 	return StatusCode::FAILURE;
       }
     }
     
 
     // do const cast here so we can add to already exisiting collections
-    const CondAttrListCollection* catrc=0;
-    m_log << MSG::DEBUG << "Attempting to retrieve collection (const)" << endmsg;
-    if (StatusCode::SUCCESS!=p_detstore->retrieve(catrc,m_folder)) {
-      m_log << MSG::ERROR << "Could not retrieve CondAttrListCollection " <<
-	m_folder << endmsg;
-      return StatusCode::FAILURE;
-    }
-
+    const CondAttrListCollection* catrc=nullptr;
+    ATH_MSG_DEBUG("Attempting to retrieve collection (const)");
+    ATH_CHECK(p_detstore->retrieve(catrc,m_folder));
 
     atrc=const_cast<CondAttrListCollection*>(catrc);
-    if (atrc==0) {
-      m_log << MSG::ERROR << "Could not retrieve non-const pointer to atrc" <<endmsg;
+    if (!atrc) {
+      ATH_MSG_ERROR("Could not retrieve non-const pointer to atrc");
       return StatusCode::FAILURE;
     }
     
-    m_log << MSG::DEBUG << "About to create AttributeListSpecification" << endmsg;
+    ATH_MSG_DEBUG("About to create AttributeListSpecification");
     
-    coral::AttributeListSpecification* aspec=0;
+    coral::AttributeListSpecification* aspec=nullptr;
     aspec=new coral::AttributeListSpecification();
     aspec->extend("Mask1","string");
     aspec->extend("Mask2","string");
@@ -242,7 +198,7 @@ namespace MuonCalib {
 
     CondAttrListCollection::ChanNum channum=m_theOnlineEntries[k]->getID();
 
-    m_log << MSG::DEBUG << "About to add channel to: " << atrc << endmsg;
+    ATH_MSG_DEBUG("About to add channel to: " << atrc);
     atrc->add(channum,alist);
 
     }
@@ -265,34 +221,33 @@ namespace MuonCalib {
     // this writes the contents of theEntries in the db
     
     
-    CondAttrListCollection* atrc=0;
+    CondAttrListCollection* atrc=nullptr;
     if (!p_detstore->contains<CondAttrListCollection>(m_folder)) {
-      m_log << MSG::DEBUG << "Creating new CondAttrListCollection for folder "
-	    << m_folder << endmsg;
+      ATH_MSG_DEBUG("Creating new CondAttrListCollection for folder "
+	    << m_folder);
       CondAttrListCollection* atrc=new CondAttrListCollection(true);
       if (StatusCode::SUCCESS!=p_detstore->record(atrc,m_folder)) {
-	m_log << MSG::ERROR << "Could not create CondAttrListCollection " <<
-	  m_folder << endmsg;
+	ATH_MSG_ERROR("Could not create CondAttrListCollection " <<
+	  m_folder);
 	return StatusCode::FAILURE;
       }
     }
     
     // do const cast here so we can add to already exisiting collections
-    const CondAttrListCollection* catrc=0;
-    m_log << MSG::DEBUG << "Attempting to retrieve collection (const)" << endmsg;
+    const CondAttrListCollection* catrc=nullptr;
+    ATH_MSG_DEBUG("Attempting to retrieve collection (const)");
     if (StatusCode::SUCCESS!=p_detstore->retrieve(catrc,m_folder)) {
-      m_log << MSG::ERROR << "Could not retrieve CondAttrListCollection " <<
-	m_folder << endmsg;
+      ATH_MSG_ERROR("Could not retrieve CondAttrListCollection " <<
+	m_folder);
       return StatusCode::FAILURE;
     }
     atrc=const_cast<CondAttrListCollection*>(catrc);
-    if (atrc==0) {
-      m_log << MSG::ERROR << "Could not retrieve non-const pointer to atrc" <<
-	endmsg;
+    if (!atrc) {
+      ATH_MSG_ERROR("Could not retrieve non-const pointer to atrc");
       return StatusCode::FAILURE;
     }
     
-    m_log << MSG::DEBUG << "About to create AttributeListSpecification" << endmsg;
+    ATH_MSG_DEBUG("About to create AttributeListSpecification");
     
     coral::AttributeListSpecification* aspec=0;
     aspec=new coral::AttributeListSpecification();
@@ -324,7 +279,7 @@ namespace MuonCalib {
       //Changed by Caleb Lampen <lampen@physics.arizona.edu> on Aug 4, 2009. 
       CondAttrListCollection::ChanNum channum = (m_theEntries[k]->getGapID()).get_identifier32().get_compact();
 
-      m_log << MSG::DEBUG << "About to add channel to: " << atrc << endmsg;
+      ATH_MSG_DEBUG("About to add channel to: " << atrc);
       atrc->add(channum,alist);
     }
     
@@ -342,18 +297,18 @@ namespace MuonCalib {
   
   StatusCode RpcCoolStrSvc::makeOnlineFile(const std::string fileName) const{
     
-        m_log << MSG::INFO << "Opening online mask output file "<< fileName << " for writing." << endmsg;
+        ATH_MSG_DEBUG("Opening online mask output file "<< fileName << " for writing.");
         std::ofstream out(fileName.c_str());
         if(!out.is_open())
         {
-            m_log << MSG::ERROR << "Failed opening " << fileName << "!" << endmsg;
+            ATH_MSG_ERROR("Failed opening " << fileName << "!");
             return StatusCode::FAILURE;
         }
-        m_log << MSG::DEBUG <<"File is open" << endmsg;
+        ATH_MSG_DEBUG("File is open");
 	
 	const CondAttrListCollection* atrc;
 	if (StatusCode::SUCCESS!=p_detstore->retrieve(atrc,m_folder)) {
-	  m_log << MSG::ERROR << "can't find data for folder " << m_folder << endmsg;
+	  ATH_MSG_ERROR("can't find data for folder " << m_folder);
 	  return StatusCode::FAILURE;
 	}
 
@@ -383,18 +338,18 @@ namespace MuonCalib {
   StatusCode RpcCoolStrSvc::makeFile(const std::string fileName) const
   {
 
-        m_log << MSG::INFO << "Opening calibration output file "<< fileName << " for writing." << endmsg;
+        ATH_MSG_DEBUG("Opening calibration output file "<< fileName << " for writing.");
         std::ofstream out(fileName.c_str());
         if(!out.is_open())
         {
-            m_log << MSG::ERROR << "Failed opening " << fileName << "!" << endmsg;
+            ATH_MSG_ERROR("Failed opening " << fileName << "!");
             return StatusCode::FAILURE;
         }
-        m_log << MSG::DEBUG <<"File is open" << endmsg;
+        ATH_MSG_DEBUG("File is open");
 	
 	const CondAttrListCollection* atrc;
 	if (StatusCode::SUCCESS!=p_detstore->retrieve(atrc,m_folder)) {
-	  m_log << MSG::ERROR << "can't find data for folder " << m_folder << endmsg;
+	  ATH_MSG_ERROR("can't find data for folder " << m_folder);
 	  return StatusCode::FAILURE;
 	}
 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/TGCCondSummarySvc.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/TGCCondSummarySvc.cxx
index 7cb5e50f882364e7522b384bbb7b5c0f2a553883..55a48d2ee71b9a0dde0db1b2b045f432bb9ac726 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/TGCCondSummarySvc.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondSvc/src/TGCCondSummarySvc.cxx
@@ -3,26 +3,19 @@
 */
 
 #include "MuonCondSvc/TGCCondSummarySvc.h"
+
 #include <vector>
 #include <list>
 #include <algorithm>
 #include <sstream>
 #include <iterator>
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/StatusCode.h"
-#include "Identifier/IdentifierHash.h"
-#include "MuonIdHelpers/TgcIdHelper.h"
-#include "MuonCondInterface/ITGCConditionsSvc.h"
-#include "Identifier/Identifier.h"
 
 // Constructor
 TGCCondSummarySvc::TGCCondSummarySvc( const std::string& name, ISvcLocator* pSvcLocator ) : 
   AthService(name, pSvcLocator), 
   m_reportingServices(name),
-  m_pHelper(0),
   m_detStore("DetectorStore",name),
   m_noReports(true){
-  //  m_reportingServices.push_back("MDT_TGCConditionsSvc"); has to be empty!!!
   declareProperty("ConditionsServices",m_reportingServices);
   declareProperty("DetStore", m_detStore);
 }
@@ -30,56 +23,30 @@ TGCCondSummarySvc::TGCCondSummarySvc( const std::string& name, ISvcLocator* pSvc
 
 StatusCode
 TGCCondSummarySvc::initialize(){
-  StatusCode sc(StatusCode::FAILURE);
   m_noReports = m_reportingServices.empty();  
-  
-  sc = m_detStore.retrieve();
-  if (sc.isFailure()) {
-    msg(MSG::FATAL) << "DetectorStore service not found !" << endmsg;
-    return sc;
-  } else {
-    msg(MSG::INFO) << "DetectorStore service found !" << endmsg;
-  }  
-  
- 
+  ATH_CHECK(m_detStore.retrieve());
   if (m_noReports){
-    sc=StatusCode::SUCCESS;
-    msg(MSG::INFO)<<"No services were selected for the TGC summary"<<endmsg;
+    ATH_MSG_DEBUG("No services were selected for the TGC summary");
   } else {
    
-    sc = m_reportingServices.retrieve();
-    if ( sc.isFailure() ) {
-      msg(MSG::FATAL) << "Failed to retrieve " << m_reportingServices << endmsg;
-      return StatusCode::FAILURE;
-    }
-    
+    ATH_CHECK(m_reportingServices.retrieve());
+
     ServiceHandleArray<ITGCConditionsSvc>::const_iterator pSvc= m_reportingServices.begin();
     ServiceHandleArray<ITGCConditionsSvc>::const_iterator pLastSvc= m_reportingServices.end();
     for (;pSvc not_eq pLastSvc; ++pSvc){
       const std::string& svcName = pSvc->name();
-      msg(MSG::INFO)<<"Using "<< svcName << endmsg;
+      ATH_MSG_DEBUG("Using "<< svcName);
       if (m_detStore->regFcn(&ITGCConditionsSvc::initInfo,&**pSvc,
                            &TGCCondSummarySvc::update_TGC,this) != StatusCode::SUCCESS){ 
-        msg(MSG::WARNING)<<"Unable to register call back for "<<svcName<<endmsg; 
+        ATH_MSG_WARNING("Unable to register call back for "<<svcName); 
       } else {
-        msg(MSG::INFO)<<"initInfo registered for call-back for "<<svcName<<endmsg;
+        ATH_MSG_DEBUG("initInfo registered for call-back for "<<svcName);
       }
     }
   }   
-  return sc;
-}
-
-
-
-//Finalize
-StatusCode
-TGCCondSummarySvc::finalize(){
-  msg(MSG::INFO)<<"Thank-you for using the TGCCondSummarySvc, version "<<PACKAGE_VERSION<<endmsg;
-  //Code
   return StatusCode::SUCCESS;
 }
 
-
 StatusCode
 TGCCondSummarySvc::queryInterface(const InterfaceID& riid, void** ppvInterface)
 {
@@ -94,15 +61,12 @@ TGCCondSummarySvc::queryInterface(const InterfaceID& riid, void** ppvInterface)
 }
 
 StatusCode TGCCondSummarySvc::update_TGC(IOVSVC_CALLBACK_ARGS){
-
-  msg(MSG::INFO)<<"Register Call Back for TGC System"<<endmsg;
-
+   ATH_MSG_DEBUG("Register Call Back for TGC System");
    return StatusCode::SUCCESS;
 }
 
 StatusCode TGCCondSummarySvc::initInfo(IOVSVC_CALLBACK_ARGS){
-
-  msg(MSG::INFO)<<"Not to be called just dummy"<<endmsg;
+   ATH_MSG_DEBUG("Not to be called just dummy");
    return StatusCode::SUCCESS;
 }
 
@@ -121,8 +85,7 @@ bool TGCCondSummarySvc::isGoodChamber(const Identifier & Id){
   	   (*svc)->deadStationsId().begin(),(*svc)->deadStationsId().end(),Id,Compare);
         if(found) counter++;
       }else{
-	msg(MSG::INFO)<<" Dead Stations from the service are not available "<<(*svc) <<endmsg;
-	
+	ATH_MSG_DEBUG(" Dead Stations from the service are not available "<<(*svc));
       }
     }
   }
@@ -132,12 +95,6 @@ bool TGCCondSummarySvc::isGoodChamber(const Identifier & Id){
   
 }
 
-
-
-
-
-
-
 const std::vector<Identifier>& TGCCondSummarySvc::deadStationsId(){
   m_emptyId.clear();
   if (not m_noReports){
@@ -147,10 +104,9 @@ const std::vector<Identifier>& TGCCondSummarySvc::deadStationsId(){
       if ((*svc)->deadStationsId().size()!=0){
 	return (*svc)->deadStationsId();
       }else{
-	msg(MSG::INFO)<<" Dead Stations from the service  are not availables "<<(*svc) <<endmsg;
+	ATH_MSG_DEBUG(" Dead Stations from the service  are not availables "<<(*svc));
       }
     }
-    
   }
   return m_emptyId; 
 }
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/MuonCondTool/CSC_DCSConditionsTool.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/MuonCondTool/CSC_DCSConditionsTool.h
index ed42423f7e8c761312b86a2f09ecbf884e5f0276..e52c66af89ed8bd1abf769f69f7fbd30982fac4d 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/MuonCondTool/CSC_DCSConditionsTool.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/MuonCondTool/CSC_DCSConditionsTool.h
@@ -1,20 +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 MUONCONDTOOL_CSC_DCSCONDITIONSTOOL_H
 #define MUONCONDTOOL_CSC_DCSCONDITIONSTOOL_H
 
-#include "GaudiKernel/AlgTool.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "GaudiKernel/ServiceHandle.h"
-#include "AthenaBaseComps/AthAlgTool.h"
 #include "MuonCondInterface/ICSC_DCSConditionsTool.h"
+#include "AthenaBaseComps/AthAlgTool.h"
+#include "GaudiKernel/ServiceHandle.h"
+
 #include "GaudiKernel/IChronoStatSvc.h"
-#include "MuonIdHelpers/MuonIdHelperTool.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
 class IIOVSvc;
-class StatusCode;
 
 class CSC_DCSConditionsTool: public AthAlgTool, virtual public ICSC_DCSConditionsTool
 {
@@ -67,7 +65,7 @@ public:
 
   std::map<Identifier, int> m_CSC_LayerMap;
   std::map<Identifier, int> m_CSC_LayerMap_test;
-  ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool;
+  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
  
   std::vector<int> m_wireLayer;
   std::vector<Identifier> m_cachedDeadStationsId;
@@ -79,13 +77,10 @@ public:
   //private comparison function for Identifier sorting
   static bool compareId(Identifier x,Identifier y) { return (x > y); } 
   
-  
-  std::string      m_DataLocation;
- 
-  std::string     m_dropchamberFolder;
-  std::string     m_hvFolder;
-  std::string     m_chamberFolder;
-
+  std::string m_DataLocation;
+  std::string m_dropchamberFolder;
+  std::string m_hvFolder;
+  std::string m_chamberFolder;
         
   std::stringstream m_CSCChamDrop;
   IChronoStatSvc* m_chronoSvc;
@@ -94,10 +89,7 @@ public:
   std::string m_chrono2;
   std::string m_chrono3;
   std::string m_chrono4;
-  
-  MsgStream m_log;
-  bool      m_debug;
-  bool      m_verbose;
+
 };
  
 
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/MuonCondTool/TGC_STATUSConditionsTool.h b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/MuonCondTool/TGC_STATUSConditionsTool.h
index 968766eb63d2b33d5a722717ab49d0ce0c87fa16..05781f7d0cdfe54fbd8e45917054285a1398670d 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/MuonCondTool/TGC_STATUSConditionsTool.h
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/MuonCondTool/TGC_STATUSConditionsTool.h
@@ -1,20 +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 MUONCONDTOOL_TGC_STATUSCONDITIONSTOOL_H
 #define MUONCONDTOOL_TGC_STATUSCONDITIONSTOOL_H
 
-#include "GaudiKernel/AlgTool.h"
-#include "GaudiKernel/IChronoStatSvc.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "GaudiKernel/ServiceHandle.h"
-#include "AthenaBaseComps/AthAlgTool.h"
 #include "MuonCondInterface/ITGC_STATUSConditionsTool.h"
-#include "MuonIdHelpers/MuonIdHelperTool.h"
+#include "AthenaBaseComps/AthAlgTool.h"
+#include "GaudiKernel/ServiceHandle.h"
+
+#include "GaudiKernel/IChronoStatSvc.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
 class IIOVSvc;
-class StatusCode;
 
 class TGC_STATUSConditionsTool: public AthAlgTool, virtual public ITGC_STATUSConditionsTool {
 
@@ -37,32 +35,24 @@ public:
   virtual StatusCode loadTgcDqStatus(IOVSVC_CALLBACK_ARGS);
   virtual std::string FolderName() const {return m_FolderName;}
   
-  ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool;
+  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
   
   virtual const std::vector<Identifier>& deadStationsId(){ return m_cachedDeadStationsId;}
            
   IIOVSvc* m_IOVSvc;
 
- 
   std::vector<Identifier> m_cachedDeadStationsId;
   
-  std::string      m_tgcDqFolder;
-  std::string      m_tgcDqStatusDataLocation;
-  std::string      m_FolderName;
+  std::string m_tgcDqFolder;
+  std::string m_tgcDqStatusDataLocation;
+  std::string m_FolderName;
 
-  
-        
   IChronoStatSvc* m_chronoSvc;
 
   std::string m_chrono1;
   std::string m_chrono2;
   std::string m_chrono3;
   std::string m_chrono4;
-  MsgStream m_log;
-  bool      m_debug;
-  bool      m_verbose;
 };
- 
-
 
 #endif
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/src/CSC_DCSConditionsTool.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/src/CSC_DCSConditionsTool.cxx
index befc3c67606f34509c7a208ea29f5235393b12a9..b77663f0408f4ea8f55a3b6c78f94e72ebe7a40e 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/src/CSC_DCSConditionsTool.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/src/CSC_DCSConditionsTool.cxx
@@ -1,25 +1,23 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/MsgStream.h"
+#include "MuonCondTool/CSC_DCSConditionsTool.h"
 
 #include "SGTools/TransientAddress.h"
 #include "CoralBase/Attribute.h"
 #include "CoralBase/AttributeListSpecification.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
-
 #include "PathResolver/PathResolver.h"
+#include "MuonCondSvc/MdtStringUtils.h"
+
 #include <fstream>
 #include <string>
 #include <algorithm>
 #include <stdio.h>
 #include <map>
 
-#include "MuonCondTool/CSC_DCSConditionsTool.h"
-#include "MuonCondSvc/MdtStringUtils.h"
-
 //**********************************************************
 //* Author Monica Verducci monica.verducci@cern.ch
 //*
@@ -27,159 +25,77 @@
 //* retrieving of tables from DB
 //*********************************************************
 
-
-CSC_DCSConditionsTool::CSC_DCSConditionsTool (const std::string& type,
-				    const std::string& name,
-				    const IInterface* parent)
-	  : AthAlgTool(type, name, parent), 
-	    m_IOVSvc(0),
-	    m_muonIdHelperTool("Muon::MuonIdHelperTool/MuonIdHelperTool"),
-	    m_chronoSvc(0),
-	    m_log( msgSvc(), name ),
-	    m_debug(true),
-	    m_verbose(false) 
-{
-  
+CSC_DCSConditionsTool::CSC_DCSConditionsTool (const std::string& type, const std::string& name, const IInterface* parent) :
+    AthAlgTool(type, name, parent), 
+    m_IOVSvc(nullptr),
+    m_chronoSvc(nullptr) {
   declareInterface< ICSC_DCSConditionsTool >(this);
-  
-  
   m_DataLocation="keyCSCDCS";
   declareProperty("HVFolder",     m_hvFolder="/CSC/DCS/LAYERSTATE");
   declareProperty("ChamberFolder",     m_chamberFolder="/CSC/DCS/ENABLEDCHAMBERS");
 }
 
-
-//StatusCode CSC_DCSConditionsTool::updateAddress(SG::TransientAddress* /*tad*/)
 StatusCode CSC_DCSConditionsTool::updateAddress(StoreID::type /*storeID*/,
                                                 SG::TransientAddress* /*tad*/,
-                                                const EventContext& /*ctx*/)
-{
+                                                const EventContext& /*ctx*/) {
   return StatusCode::FAILURE;
 }
-	
-
-
-StatusCode CSC_DCSConditionsTool::initialize()
-{
 
-  m_log.setLevel(msgLevel());
-  m_debug = m_log.level() <= MSG::DEBUG;
-  m_verbose = m_log.level() <= MSG::VERBOSE;
-  
-  m_log << MSG::INFO << "Initializing - folders names are: ChamberDropped "<<m_chamberFolder << " Hv " << m_hvFolder<< endmsg;
-  
+StatusCode CSC_DCSConditionsTool::initialize() {
+  ATH_MSG_INFO("Initializing - folders names are: ChamberDropped "<<m_chamberFolder << " Hv " << m_hvFolder);
   // Get interface to IOVSvc
-  m_IOVSvc = 0;
   bool CREATEIF(true);
-  StatusCode sc = service( "IOVSvc", m_IOVSvc, CREATEIF );
-  if ( sc.isFailure() )
-    {
-      m_log << MSG::ERROR << "Unable to get the IOVSvc" << endmsg;
-      return StatusCode::FAILURE;
-    }
-  
-  if(sc.isFailure()) return StatusCode::FAILURE;
-  
-  
-  
+  ATH_CHECK(service( "IOVSvc", m_IOVSvc, CREATEIF));
   // initialize the chrono service
-  sc = service("ChronoStatSvc",m_chronoSvc);
-  if (sc != StatusCode::SUCCESS) {
-    m_log << MSG::ERROR << "Could not find the ChronoSvc" << endmsg;
-    return sc;
-  }
-	
- 
-  
-  if(sc.isFailure()) return StatusCode::FAILURE;
-  
-  return m_muonIdHelperTool.retrieve();
+  ATH_CHECK(service("ChronoStatSvc",m_chronoSvc));
+  ATH_CHECK(m_idHelperSvc.retrieve());
+  return StatusCode::SUCCESS;
 }
 
-
-StatusCode CSC_DCSConditionsTool::loadParameters(IOVSVC_CALLBACK_ARGS_P(I,keys))
-{
- 
-  m_log.setLevel(msgLevel());
-  m_debug = m_log.level() <= MSG::DEBUG;
-  m_verbose = m_log.level() <= MSG::VERBOSE;	 
- 
+StatusCode CSC_DCSConditionsTool::loadParameters(IOVSVC_CALLBACK_ARGS_P(I,keys)) {
   std::list<std::string>::const_iterator itr;
   for (itr=keys.begin(); itr!=keys.end(); ++itr) {
-    m_log << MSG::INFO <<"LoadParameters "<< *itr << " I="<<I<<" "<<endmsg;
+    ATH_MSG_INFO("LoadParameters "<< *itr << " I="<<I<<" ");
     if (*itr==m_hvFolder) {
-      StatusCode sc = loadHV(I,keys);
-      if (sc.isFailure())
-	{
-	  return sc;
-	}
+      ATH_CHECK(loadHV(I,keys));
     }else if(*itr==m_chamberFolder) {
-      StatusCode sc = loadchamber(I,keys);
-      if (sc.isFailure())
-	{
-	  return sc;
-	}
+      ATH_CHECK(loadchamber(I,keys));
     }
-    
   }
-  
-	  return StatusCode::SUCCESS;
+	return StatusCode::SUCCESS;
 }
 
-
-
-StatusCode CSC_DCSConditionsTool::loadHV(IOVSVC_CALLBACK_ARGS_P(I,keys))
-{
-  m_log.setLevel(msgLevel());
-  m_debug = m_log.level() <= MSG::DEBUG;
-  m_verbose = m_log.level() <= MSG::VERBOSE;
-
-  StatusCode sc=StatusCode::SUCCESS;
-  m_log << MSG::INFO << "Load HV from DCS DB" << endmsg;
-  const CondAttrListCollection * atrc;
-  m_log << MSG::INFO << "Try to read from folder <"<<m_hvFolder<<">"<<endmsg;
-
+StatusCode CSC_DCSConditionsTool::loadHV(IOVSVC_CALLBACK_ARGS_P(I,keys)) {
+  ATH_MSG_INFO("Load HV from DCS DB");
+  const CondAttrListCollection* atrc=nullptr;
+  ATH_MSG_INFO("Try to read from folder <"<<m_hvFolder<<">");
   // Print out callback information
-   if( m_debug ) m_log << MSG::DEBUG << "Level " << I << " Keys: ";
+  if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Level " << I << " Keys: ");
   std::list<std::string>::const_iterator keyIt = keys.begin();
-  for (; keyIt != keys.end(); ++ keyIt)  if( m_debug ) m_log << MSG::DEBUG << *keyIt << " ";
-   if( m_debug ) m_log << MSG::DEBUG << endmsg;
-  
+  for (; keyIt != keys.end(); ++ keyIt)  if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG(*keyIt << " ");  
 
-  sc=detStore()->retrieve(atrc,m_hvFolder);
-  
-  if(sc.isFailure())  {
-    m_log << MSG::ERROR
-	<< "could not retreive the CondAttrListCollection from DB folder " 
-	<<  m_hvFolder << endmsg;
-    return sc;
-  }
-  
-  else
-    m_log<<MSG::INFO<<" CondAttrListCollection from DB folder have been obtained with size "<< atrc->size() <<endmsg;
+  ATH_CHECK(detStore()->retrieve(atrc,m_hvFolder));
+  ATH_MSG_INFO("CondAttrListCollection from DB folder have been obtained with size "<< atrc->size());
   
   CondAttrListCollection::const_iterator itr;
   Identifier ChamberId;
-  unsigned int layer_index=0; 
-  unsigned int chan_index=0; 
-  //Identifier name_control;
-  
+  unsigned int layer_index=0;
+  unsigned int chan_index=0;
   std::map<Identifier,int>::const_iterator it;
   std::pair<std::map<Identifier,int>::const_iterator,bool> ret;
   
   int hv_state, lv_state, hv_setpoint0, hv_setpoint1;
   for (itr = atrc->begin(); itr != atrc->end(); ++itr){
     
-    if( m_debug ) m_log<<MSG::DEBUG<<"index "<<chan_index<< "  chanNum :" <<atrc->chanNum(chan_index)<< endmsg;
+    if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("index "<<chan_index<< "  chanNum :" <<atrc->chanNum(chan_index));
     unsigned int chanNum=atrc->chanNum(chan_index);
     
     
     std::string csc_chan_name=atrc->chanName(chanNum);
     itr=atrc-> chanAttrListPair(chanNum);
     const coral::AttributeList& atr=itr->second;
-    if( m_debug ) m_log<<MSG::DEBUG<<" CondAttrListCollection ChanNum : "<<chanNum<<" AttributeList  size : " << atr.size()<< " Channel Name = "<< csc_chan_name <<endmsg;
+    if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG(" CondAttrListCollection ChanNum : "<<chanNum<<" AttributeList  size : " << atr.size()<< " Channel Name = "<< csc_chan_name);
     
-    //if(atr.size()==1){
     if(atr.size()){
     
     hv_state=*(static_cast<const int*>((atr["HVState"]).addressOfData()));
@@ -192,12 +108,11 @@ StatusCode CSC_DCSConditionsTool::loadHV(IOVSVC_CALLBACK_ARGS_P(I,keys))
     std::string delimiter = "_";
     std::vector<std::string> tokens;
     MuonCalib::MdtStringUtils::tokenize(csc_chan_name,tokens,delimiter);
-    //  if( m_debug ) m_log<<MSG::DEBUG<<" CondAttrListCollection ChanNum : "<<chanNum<<" ChanName : " << atrc->chanName(chanNum) << " tokens[0] "<<tokens[0] <<endmsg;
 
     for (unsigned int i=0; i<tokens.size(); i++) {
       
       if(tokens[i]!="0"){
-	 if( m_debug ) m_log << MSG::DEBUG << "Sequence for name string load is \n" << tokens[i]<< endmsg; 
+	 if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Sequence for name string load is \n" << tokens[i]); 
       }
       
     }
@@ -206,7 +121,7 @@ StatusCode CSC_DCSConditionsTool::loadHV(IOVSVC_CALLBACK_ARGS_P(I,keys))
 
     if((hv_state!=1 or lv_state!=1 or hv_setpoint0 <1000 or hv_setpoint1 <1000) && tokens.size()!=0){
       
-      if( m_debug ) m_log << MSG::DEBUG << "NOT 0 HV : " << hv_state << " ChamberName : "<<tokens[0] << "wirelayer" << tokens[1]<<endmsg;	
+      if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("NOT 0 HV : " << hv_state << " ChamberName : "<<tokens[0] << "wirelayer" << tokens[1]);
       int eta=0; int phi=0;
       //std::string chamber_name;
       std::string layer = tokens[1];
@@ -231,22 +146,20 @@ StatusCode CSC_DCSConditionsTool::loadHV(IOVSVC_CALLBACK_ARGS_P(I,keys))
       if (sector_side == "13" || sector_side == "14") phi=7;
       if (sector_side == "15" || sector_side == "16") phi=8;
       
-      ChamberId = m_muonIdHelperTool->cscIdHelper().elementID(chamber_name, eta, phi);
-      Identifier WireLayerId = m_muonIdHelperTool->cscIdHelper().channelID(ChamberId, 1, wirelayer,1,1);
-      if( m_debug ) m_log<<MSG::DEBUG<< "chamber Name = " <<chamber_name<< endmsg;
+      ChamberId = m_idHelperSvc->cscIdHelper().elementID(chamber_name, eta, phi);
+      Identifier WireLayerId = m_idHelperSvc->cscIdHelper().channelID(ChamberId, 1, wirelayer,1,1);
+      if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("chamber Name = " <<chamber_name);
       std::string WireLayerstring = chamber_name+"_"+eta_side+"_"+sector_side+"_"+layer;  
       m_cachedDeadWireLayers.push_back(WireLayerstring);
-       if( m_debug ) m_log<<MSG::DEBUG<< "Layers Off = " <<WireLayerstring<< endmsg;
+       if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Layers Off = " <<WireLayerstring);
       m_cachedDeadWireLayersId.push_back(WireLayerId);
-      
-      //m_CSC_LayerMap.insert(std::make_pair(ChamberId,wirelayer));
-      //ret= m_CSC_LayerMap.insert(std::make_pair(ChamberId,wirelayer));
-      //if (ret.second==false)
+
       if(m_CSC_LayerMap.count(ChamberId))
 	{
-	  if( m_debug ) m_log<<MSG::DEBUG<< "element 'ChamberId' already existed";
-	  //if( m_debug ) m_log<<MSG::DEBUG<< " with a value of " << ret.first->second << endmsg;
-	  if( m_debug ) m_log<<MSG::DEBUG<< " with a value of " << m_CSC_LayerMap[ChamberId] << endmsg;
+	  if (msgLvl(MSG::DEBUG)) {
+      ATH_MSG_DEBUG("element 'ChamberId' already existed");
+      ATH_MSG_DEBUG(" with a value of " << m_CSC_LayerMap[ChamberId]);
+    }
 	  layer_index++;
 	}
       m_CSC_LayerMap[ChamberId]=wirelayer;
@@ -258,56 +171,32 @@ StatusCode CSC_DCSConditionsTool::loadHV(IOVSVC_CALLBACK_ARGS_P(I,keys))
     if(layer_index==3) {
       m_cachedDeadStations.push_back(ChamberId);
       
-      if( m_debug ) m_log << MSG::DEBUG << "layers " << layer_index << " ChamberId : "<<ChamberId <<endmsg;	
+      if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("layers " << layer_index << " ChamberId : "<<ChamberId);	
       layer_index=0;
     }
   
     chan_index++;
     
   }
-  
-
-  
-  
   return StatusCode::SUCCESS;
-  
-  }
-
-
 
+}
 
-StatusCode CSC_DCSConditionsTool::loadchamber(IOVSVC_CALLBACK_ARGS_P(I,keys))
-{
- 
 
-  m_log.setLevel(msgLevel());
-  m_debug = m_log.level() <= MSG::DEBUG;
-  m_verbose = m_log.level() <= MSG::VERBOSE;
 
-  StatusCode sc=StatusCode::SUCCESS;
-  m_log << MSG::INFO << "Load chamber from DCS DB" << endmsg;
 
+StatusCode CSC_DCSConditionsTool::loadchamber(IOVSVC_CALLBACK_ARGS_P(I,keys)) {
+  ATH_MSG_INFO("Load chamber from DCS DB");
   // Print out callback information
-   if( m_debug ) m_log << MSG::DEBUG << "Level " << I << " Keys: ";
+  if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Level " << I << " Keys: ");
   std::list<std::string>::const_iterator keyIt = keys.begin();
-  for (; keyIt != keys.end(); ++ keyIt)  if( m_debug ) m_log << MSG::DEBUG << *keyIt << " ";
-  if( m_debug ) m_log << MSG::DEBUG << endmsg;
-  
+  for (; keyIt != keys.end(); ++ keyIt)  if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG(*keyIt << " ");
  
-  const CondAttrListCollection * atrc;
-  m_log << MSG::INFO << "Try to read from folder <"<<m_chamberFolder<<">"<<endmsg;
+  const CondAttrListCollection* atrc=nullptr;
+  ATH_MSG_INFO("Try to read from folder <"<<m_chamberFolder<<">");
 
-  sc=detStore()->retrieve(atrc,m_chamberFolder);
-  
-  if(sc.isFailure())  {
-    m_log << MSG::ERROR
-	<< "could not retreive the CondAttrListCollection from DB folder " 
-	<<  m_chamberFolder << endmsg;
-    return sc;
-  }
-  
-  else
-    m_log<<MSG::INFO<<" CondAttrListCollection from DB folder have been obtained with size "<< atrc->size() <<endmsg;
+  ATH_CHECK(detStore()->retrieve(atrc,m_chamberFolder));
+  ATH_MSG_INFO(" CondAttrListCollection from DB folder have been obtained with size "<< atrc->size());
   
   CondAttrListCollection::const_iterator itr;
   Identifier ChamberId;
@@ -321,7 +210,7 @@ StatusCode CSC_DCSConditionsTool::loadchamber(IOVSVC_CALLBACK_ARGS_P(I,keys))
   for (itr = atrc->begin(); itr != atrc->end(); ++itr){
     
     const coral::AttributeList& atr=itr->second;
-     if( m_debug ) m_log<<MSG::DEBUG<<"AttributeList  size : " << atr.size() <<endmsg;
+     if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("AttributeList  size : " << atr.size());
     
     std::string chamber_enabled=*(static_cast<const std::string*>((atr["enabledChambers"]).addressOfData()));
     
@@ -342,10 +231,9 @@ StatusCode CSC_DCSConditionsTool::loadchamber(IOVSVC_CALLBACK_ARGS_P(I,keys))
   for(unsigned int count=0; count<chamber_good.size(); count++){
    
     if (binary_search (chamber_v.begin(), chamber_v.end(),chamber_good[count])){
-      if( m_debug ) m_log<<MSG::DEBUG<< "found chamber good!\n" 
-		       <<chamber_v[count] <<endmsg; 
+      if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("found chamber good!\n" <<chamber_v[count]); 
     }else {
-      if( m_debug ) m_log<<MSG::DEBUG << " not found = " << chamber_good[count] << endmsg;
+      if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG(" not found = " << chamber_good[count]);
       m_cachedDeadStationsStr.push_back(chamber_good[count]);
     }
     
@@ -372,7 +260,7 @@ StatusCode CSC_DCSConditionsTool::loadchamber(IOVSVC_CALLBACK_ARGS_P(I,keys))
     if (sector_side == "02" || sector_side == "04" || sector_side == "06"|| sector_side == "08" || sector_side == "10"|| sector_side == "12"|| sector_side == "14"|| sector_side == "16") chamber_name = "CSS";
 
     
-    Identifier ChamberId = m_muonIdHelperTool->cscIdHelper().elementID(chamber_name, eta, phi);
+    Identifier ChamberId = m_idHelperSvc->cscIdHelper().elementID(chamber_name, eta, phi);
     m_cachedDeadStationsId_chamber.push_back(ChamberId);
     
         
@@ -380,21 +268,13 @@ StatusCode CSC_DCSConditionsTool::loadchamber(IOVSVC_CALLBACK_ARGS_P(I,keys))
   
   //merge deadStationsId with deadWireStationsId, then sort the vector elements and
   //finally remove duplicates
-
-  if( m_verbose ) m_log << MSG::VERBOSE << "Now merging the  DeadStationsId with DeadWireStationsId" <<  endmsg;
+  if (msgLvl(MSG::VERBOSE)) ATH_MSG_VERBOSE("Now merging the  DeadStationsId with DeadWireStationsId");
   m_cachedDeadStationsId.insert( m_cachedDeadStationsId.end(),
 				 m_cachedDeadStationsId_chamber.begin(),m_cachedDeadStationsId_chamber.end());
   std::sort(m_cachedDeadStationsId.begin(),m_cachedDeadStationsId.end(),compareId);  
   std::vector<Identifier>::const_iterator itId;
   itId= std::unique(m_cachedDeadStationsId.begin(),m_cachedDeadStationsId.end());
   m_cachedDeadStationsId.resize(itId -m_cachedDeadStationsId.begin());
-  
-      
 
-  
-   
   return StatusCode::SUCCESS;
- 
-
- 
 }
diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/src/TGC_STATUSConditionsTool.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/src/TGC_STATUSConditionsTool.cxx
index e178e5cd6475928499cbb253b8ac21634424916d..6a5ee852fd4e887570232c282aeb309ef82c4fbe 100644
--- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/src/TGC_STATUSConditionsTool.cxx
+++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondTool/src/TGC_STATUSConditionsTool.cxx
@@ -1,182 +1,87 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/MsgStream.h"
+#include "MuonCondTool/TGC_STATUSConditionsTool.h"
 
 #include "SGTools/TransientAddress.h"
 #include "CoralBase/Attribute.h"
 #include "CoralBase/AttributeListSpecification.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
-
 #include "PathResolver/PathResolver.h"
+#include "GeoModelInterfaces/IGeoModelSvc.h"
+
 #include <fstream>
 #include <string>
 #include <stdio.h>
 #include <map>
 
-#include "MuonCondTool/TGC_STATUSConditionsTool.h"
-#include "MuonCondInterface/ITGC_STATUSConditionsTool.h"
-
-#include "GeoModelInterfaces/IGeoModelSvc.h"
-
-
-
-TGC_STATUSConditionsTool::TGC_STATUSConditionsTool (const std::string& type,
-				      const std::string& name,
-				      const IInterface* parent)
-  : AthAlgTool(type, name, parent), 
-    m_muonIdHelperTool("Muon::MuonIdHelperTool/MuonIdHelperTool"),
-    m_IOVSvc(0),
-    m_chronoSvc(0),
-    m_log( msgSvc(), name ),
-    m_debug(false),
-    m_verbose(false)  
-{
+TGC_STATUSConditionsTool::TGC_STATUSConditionsTool (const std::string& type, const std::string& name, const IInterface* parent) :
+    AthAlgTool(type, name, parent),
+    m_IOVSvc(nullptr),
+    m_chronoSvc(nullptr) {
   declareInterface< ITGC_STATUSConditionsTool >(this);
-        
   m_tgcDqStatusDataLocation="TgcDqStatusKey";
-
   declareProperty("TgcDqFolder",m_FolderName="TGC/1/DetectorStatus");
-
 }
 
-
-
-//StatusCode TGC_STATUSConditionsTool::updateAddress(SG::TransientAddress* tad)
 StatusCode TGC_STATUSConditionsTool::updateAddress(StoreID::type /*storeID*/,
                                                    SG::TransientAddress* tad,
-                                                   const EventContext& /*ctx*/)
-{
-  
-  m_log.setLevel(msgLevel());
-  m_debug = m_log.level() <= MSG::DEBUG;
-  m_verbose = m_log.level() <= MSG::VERBOSE;
-  // CLID clid        = tad->clID();
+                                                   const EventContext& /*ctx*/) {
   std::string key  = tad->name();
- 
   return StatusCode::FAILURE;
 }
-	
-
-
-StatusCode TGC_STATUSConditionsTool::initialize()
-{
-  m_log.setLevel(msgLevel());
-  m_debug = m_log.level() <= MSG::DEBUG;
-  m_verbose = m_log.level() <= MSG::VERBOSE;
 
-  m_log << MSG::INFO << "Initializing - folders names are: Chamber Status "<<m_FolderName << endmsg;
-   
+StatusCode TGC_STATUSConditionsTool::initialize() {
+  ATH_MSG_INFO("Initializing - folders names are: Chamber Status "<<m_FolderName);
   // Get interface to IOVSvc
-  m_IOVSvc = 0;
   bool CREATEIF(true);
-  StatusCode sc = service( "IOVSvc", m_IOVSvc, CREATEIF );
-  if ( sc.isFailure() )
-    {
-      m_log << MSG::ERROR << "Unable to get the IOVSvc" << endmsg;
-      return StatusCode::FAILURE;
-    }
-  
-  if(sc.isFailure()) return StatusCode::FAILURE;
-  
-  
-  
+  ATH_CHECK(service( "IOVSvc", m_IOVSvc, CREATEIF));
   // initialize the chrono service
-  sc = service("ChronoStatSvc",m_chronoSvc);
-  if (sc != StatusCode::SUCCESS) {
-    m_log << MSG::ERROR << "Could not find the ChronoSvc" << endmsg;
-    return sc;
-  }
-  if(sc.isFailure()) return StatusCode::FAILURE;
-
-  return m_muonIdHelperTool.retrieve();
-
+  ATH_CHECK(service("ChronoStatSvc",m_chronoSvc));
+  ATH_CHECK(m_idHelperSvc.retrieve());
+  return StatusCode::SUCCESS;
 }
 
-StatusCode TGC_STATUSConditionsTool::loadParameterStatus(IOVSVC_CALLBACK_ARGS_P(I,keys))
-{
- 
-  m_log.setLevel(msgLevel());
-  m_debug = m_log.level() <= MSG::DEBUG;
-  m_verbose = m_log.level() <= MSG::VERBOSE;	 
+StatusCode TGC_STATUSConditionsTool::loadParameterStatus(IOVSVC_CALLBACK_ARGS_P(I,keys)) {
   std::list<std::string>::const_iterator itr;
   for (itr=keys.begin(); itr!=keys.end(); ++itr) {
-    m_log << MSG::INFO <<"LoadParameters "<< *itr << " I="<<I<<" "<<endmsg;
+    ATH_MSG_INFO("LoadParameters "<< *itr << " I="<<I<<" ");
     if(*itr==m_FolderName) {
-        StatusCode sc =loadTgcDqStatus(I,keys);
-      if (sc.isFailure())
-	{
-	  return sc;
-	}
+        ATH_CHECK(loadTgcDqStatus(I,keys));
     }
-   
   }
-  
   return StatusCode::SUCCESS;
 }
 
-
-
-
-      
-
-StatusCode TGC_STATUSConditionsTool::loadTgcDqStatus(IOVSVC_CALLBACK_ARGS_P(I,keys)) 
-{
-  m_log.setLevel(msgLevel());
-  m_debug = m_log.level() <= MSG::DEBUG;
-  m_verbose = m_log.level() <= MSG::VERBOSE;
- 
-  StatusCode sc=StatusCode::SUCCESS;
-  m_log << MSG::INFO << "Load Tgc Status flags  from DB" << endmsg;
-
+StatusCode TGC_STATUSConditionsTool::loadTgcDqStatus(IOVSVC_CALLBACK_ARGS_P(I,keys)) {
+  ATH_MSG_INFO("Load Tgc Status flags  from DB");
   // Print out callback information
-   if( m_debug )  m_log << MSG::DEBUG << "Level " << I << " Keys: ";
+  if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("Level " << I << " Keys: ");
   std::list<std::string>::const_iterator keyIt = keys.begin();
-  for (; keyIt != keys.end(); ++ keyIt)  if( m_debug ) m_log << MSG::DEBUG << *keyIt << " ";
-   if( m_debug )  m_log << MSG::DEBUG << endmsg;
+  for (; keyIt != keys.end(); ++ keyIt) if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG(*keyIt << " ");
   
-  const CondAttrListCollection * atrc = nullptr;
-  m_log << MSG::INFO << "Try to read from folder <"<< m_FolderName <<">"<<endmsg;
+  const CondAttrListCollection* atrc = nullptr;
+  ATH_MSG_INFO("Try to read from folder <"<< m_FolderName <<">");
+
+  ATH_CHECK(detStore()->retrieve(atrc,m_FolderName));
+  ATH_MSG_INFO("CondAttrListCollection from DB folder have been obtained with size "<< atrc->size());
 
-  sc=detStore()->retrieve(atrc,m_FolderName);
-  if(sc.isFailure())  {
-    m_log << MSG::ERROR
-	<< "could not retreive the CondAttrListCollection from DB folder " 
-	<< m_FolderName << endmsg;
-    return sc;
-	  }
-  
-  else
-    m_log<<MSG::INFO<<" CondAttrListCollection from DB folder have been obtained with size "<< atrc->size() <<endmsg;
-  
- 
   CondAttrListCollection::const_iterator itr;
   for (itr = atrc->begin(); itr != atrc->end(); ++itr) {
      const coral::AttributeList& atr=itr->second;
      int detector_status;
  
      detector_status=*(static_cast<const int*>((atr["detector_status"]).addressOfData()));
-      if( m_debug ) m_log << MSG::DEBUG << "TGC detector status is " << detector_status << endmsg;
+     if (msgLvl(MSG::DEBUG)) ATH_MSG_DEBUG("TGC detector status is " << detector_status);
 
      if (detector_status!=0){
        int channum=itr->first;
-       Identifier chamberId = m_muonIdHelperTool->tgcIdHelper().elementID(Identifier(channum));
-       //m_cachedDeadStationsId.push_back(Identifier(channum));
+       Identifier chamberId = m_idHelperSvc->tgcIdHelper().elementID(Identifier(channum));
        m_cachedDeadStationsId.push_back(chamberId);
      }
-  } 
-  
-    
-   if( m_debug ) m_log << MSG::VERBOSE << "Collection CondAttrListCollection CLID "
-       << atrc->clID() << endmsg;
-
-
- 
-   return  sc; 
-    
+  }
+  if (msgLvl(MSG::VERBOSE)) ATH_MSG_VERBOSE("Collection CondAttrListCollection CLID " << atrc->clID());
+  return StatusCode::SUCCESS; 
 }
-
-
-
diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitizationTool.h b/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitizationTool.h
index bf1250237555e600a866a90f7ef860c364955488..a4ddbadd6c5a8704229a1004239ec6258573fe90 100644
--- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitizationTool.h
+++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitizationTool.h
@@ -1,28 +1,25 @@
 /*
-  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 MUONDIGITIZATION_CSCDIGITIZATIONTOOL_H
 #define MUONDIGITIZATION_CSCDIGITIZATIONTOOL_H
 
+#include "PileUpTools/PileUpToolBase.h"
+
+#include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "AthenaKernel/IAthRNGSvc.h"
 #include "CLHEP/Random/RandomEngine.h"
-//#include "AthenaBaseComps/AthAlgTool.h"
 #include "CSC_Digitization/CSC_Digitizer.h"
 #include "MuonDigitContainer/CscDigitContainer.h"
 #include "MuonSimEvent/CSCSimHit.h"
-#include "MuonIdHelpers/MuonIdHelperTool.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 #include "MuonReadoutGeometry/MuonDetectorManager.h"
-
 #include "HitManagement/TimedHitCollection.h"
 #include "CscCalibTools/ICscCalibTool.h"
-
 #include "MuonSimEvent/CSCSimHitCollection.h"
 #include "MuonSimData/CscSimDataCollection.h"
-
-#include "PileUpTools/PileUpToolBase.h"
-
 #include "PileUpTools/PileUpMergeSvc.h"
 
 // Author: Ketevi A. Assamagan
@@ -90,14 +87,11 @@ private:
   std::string m_inputObjectName{""};
   SG::WriteHandleKey<CscSimDataCollection> m_cscSimDataCollectionWriteHandleKey{this,"CSCSimDataCollectionOutputName","CSC_SDO","WriteHandleKey for Output CscSimDataCollection"};
   SG::WriteHandleKey<CscDigitContainer> m_cscDigitContainerKey{this,"OutputObjectName","CSC_DIGITS","CSC digit container object"};
-  //SG::WriteHandle<CscDigitContainer> m_container;
-  //SG::WriteHandle<CscSimDataCollection> m_CSCSimDataCollectionWriteHandle;
 
-  const MuonGM::MuonDetectorManager * m_geoMgr{nullptr};
-  CSC_Digitizer             * m_cscDigitizer{nullptr};
+  const MuonGM::MuonDetectorManager* m_geoMgr{nullptr};
+  CSC_Digitizer* m_cscDigitizer{nullptr};
 
-  ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-    "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
+  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
 
   Gaudi::Property<double> m_pedestal{this, "pedestal",0.0, ""};
   Gaudi::Property<bool> m_maskBadChannel{this, "maskBadChannels", true, ""};
@@ -120,7 +114,6 @@ private:
   ServiceHandle<PileUpMergeSvc> m_mergeSvc{this, "PileUpMergeSvc", "PileUpMergeSvc", ""}; // Pile up service
 
   ServiceHandle <IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc", ""};      // Random number service
-
 };
 
 #endif // MUONDIGITIZATION_CSCDIGITIZATIONTOOL_H
diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitizationTool.cxx
index 2504cfe9c99f1b3c7e94c06707f7d00a2f981ff1..f636e0ab3d30eae6804a5cb235869950d18df0e9 100644
--- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitizationTool.cxx
+++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitizationTool.cxx
@@ -2,36 +2,27 @@
   Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// Author: Ketevi A. Assamagan
-// BNL, October 27 2003
-// Digitization algorithm for the CSC hits
 #include "MuonReadoutGeometry/MuonDetectorManager.h"
 
 #include "AtlasHepMC/GenParticle.h"
 #include "GeneratorObjects/HepMcParticleLink.h"
-
 #include "StoreGate/StoreGate.h"
 #include "StoreGate/StoreGateSvc.h"
 #include "StoreGate/DataHandle.h"
-
 #include "CSC_Digitization/CscDigitizationTool.h"
-
 #include "AthenaKernel/RNGWrapper.h"
 #include "CLHEP/Random/RandFlat.h"
 
 using namespace MuonGM;
 
-CscDigitizationTool::CscDigitizationTool(const std::string& type,const std::string& name,const IInterface* pIID)
-  : PileUpToolBase(type, name, pIID)
- {
- }
-
+CscDigitizationTool::CscDigitizationTool(const std::string& type,const std::string& name,const IInterface* pIID) :
+  PileUpToolBase(type, name, pIID) {
+}
 
 CscDigitizationTool::~CscDigitizationTool()  {
   delete m_cscDigitizer;
 }
 
-
 StatusCode CscDigitizationTool::initialize() {
 
   ATH_MSG_DEBUG ( "Initialized Properties :" );
@@ -66,7 +57,7 @@ StatusCode CscDigitizationTool::initialize() {
   /** CSC calibratin tool for the Condtiions Data base access */
   ATH_CHECK(m_pcalib.retrieve());
 
-  ICscCalibTool * cscCalibTool = &*(m_pcalib);
+  ICscCalibTool* cscCalibTool = &*(m_pcalib);
 
   //initialize the CSC digitizer
   CscHitIdHelper * cscHitHelper = CscHitIdHelper::GetHelper();
@@ -81,7 +72,7 @@ StatusCode CscDigitizationTool::initialize() {
 
   ATH_CHECK(m_cscDigitizer->initialize());
   
-  ATH_CHECK( m_muonIdHelperTool.retrieve() );
+  ATH_CHECK(m_idHelperSvc.retrieve());
 
   m_cscDigitizer->setWindow(m_timeWindowLowerOffset, m_timeWindowUpperOffset);
 
@@ -130,7 +121,7 @@ StatusCode CscDigitizationTool::processAllSubEvents(const EventContext& ctx) {
 
   //create and record CscDigitContainer in SG
   SG::WriteHandle<CscDigitContainer> cscDigits(m_cscDigitContainerKey, ctx);
-  ATH_CHECK(cscDigits.record(std::make_unique<CscDigitContainer>(m_muonIdHelperTool->cscIdHelper().module_hash_max())));
+  ATH_CHECK(cscDigits.record(std::make_unique<CscDigitContainer>(m_idHelperSvc->cscIdHelper().module_hash_max())));
   ATH_MSG_DEBUG("recorded CscDigitContainer with name "<<cscDigits.key());
 
   if (m_isPileUp) return StatusCode::SUCCESS;
@@ -140,7 +131,6 @@ StatusCode CscDigitizationTool::processAllSubEvents(const EventContext& ctx) {
   ATH_CHECK(cscSimData.record(std::make_unique<CscSimDataCollection>()));
 
   //merging of the hit collection in getNextEvent method
-
   if (0 == m_thpcCSC ) {
     StatusCode sc = getNextEvent(ctx);
     if (StatusCode::FAILURE == sc) {
@@ -270,8 +260,8 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap,
 
   CscDigitCollection * collection = 0;
 
-  IdContext context    = m_muonIdHelperTool->cscIdHelper().channel_context();
-  IdContext cscContext = m_muonIdHelperTool->cscIdHelper().module_context();
+  IdContext context    = m_idHelperSvc->cscIdHelper().channel_context();
+  IdContext cscContext = m_idHelperSvc->cscIdHelper().module_context();
 
   Identifier prevId;
 
@@ -281,14 +271,14 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap,
   for (; cscMap != cscMapEnd; ++cscMap) {
     Identifier digitId;
     IdentifierHash hashId = (*cscMap).first;
-    if (m_muonIdHelperTool->cscIdHelper().get_id( hashId, digitId, &context ) ) {
+    if (m_idHelperSvc->cscIdHelper().get_id( hashId, digitId, &context ) ) {
       ATH_MSG_ERROR ( "cannot get CSC channel identifier from hash " << hashId );
       return StatusCode::FAILURE;
     }
 
-    Identifier elementId = m_muonIdHelperTool->cscIdHelper().parentID(digitId);
+    Identifier elementId = m_idHelperSvc->cscIdHelper().parentID(digitId);
     IdentifierHash coll_hash;
-    if (m_muonIdHelperTool->cscIdHelper().get_hash(elementId, coll_hash, &cscContext)) {
+    if (m_idHelperSvc->cscIdHelper().get_hash(elementId, coll_hash, &cscContext)) {
       ATH_MSG_ERROR ( "Unable to get CSC hash id from CSC Digit collection "
                       << "context begin_index = " << cscContext.begin_index()
                       << " context end_index  = " << cscContext.end_index()
@@ -300,19 +290,11 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap,
     // get the charge
     double stripCharge = 0.0;
     double driftTime = 0.0;
-    //if (stripCharge < m_noiseLevel) continue;
-
-
     const std::vector<float> samples = (*cscMap).second;
-    //    csc_newmap::iterator ii= data_SampleMapOddPhase.find(hashId);
-    //    const std::vector<float> samplesOddPhase = (*ii).second;
 
-
-    //    if (msgLvl(MSG::DEBUG)) {
     unsigned int samplingPhase =0;
     double samplingTime = m_pcalib->getSamplingTime();
     m_pcalib->findCharge(samplingTime, samplingPhase, samples, stripCharge, driftTime);
-    //    }
     driftTime += m_pcalib->getLatency();
 
     /** mask this readout channel if it is a dead channel or a hot channel */
@@ -321,13 +303,13 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap,
       driftTime   = 2*m_timeWindowUpperOffset;
     }
 
-    int zsec = m_muonIdHelperTool->cscIdHelper().stationEta(digitId);
-    int phisec = m_muonIdHelperTool->cscIdHelper().stationPhi(digitId);
-    int istation = m_muonIdHelperTool->cscIdHelper().stationName(digitId) - 49;
+    int zsec = m_idHelperSvc->cscIdHelper().stationEta(digitId);
+    int phisec = m_idHelperSvc->cscIdHelper().stationPhi(digitId);
+    int istation = m_idHelperSvc->cscIdHelper().stationName(digitId) - 49;
 
-    int wlay = m_muonIdHelperTool->cscIdHelper().wireLayer(digitId);
-    int measphi = m_muonIdHelperTool->cscIdHelper().measuresPhi(digitId);
-    int istrip = m_muonIdHelperTool->cscIdHelper().strip(digitId);
+    int wlay = m_idHelperSvc->cscIdHelper().wireLayer(digitId);
+    int measphi = m_idHelperSvc->cscIdHelper().measuresPhi(digitId);
+    int istrip = m_idHelperSvc->cscIdHelper().strip(digitId);
 
     int sector = zsec*(2*phisec-istation+1);
 
@@ -338,24 +320,16 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap,
     }
 
     // fill the digit collections in StoreGate
-    //    CscDigit * newDigit  = new CscDigit(digitId, int(stripCharge+1) );
     // Now, we pass driftTime as well as stripCharge.
     // SimHIT time should be added to distinguish prompt muons from secondary.... 11/19/2009 WP
-
-    //   CscDigit * newDigit  = new CscDigit(digitId, samples);
-    //    CscDigit * newDigitOddPhase  = new CscDigit(digitId, samplesOddPhase);
-
     ATH_MSG_DEBUG ( "NEWDigit sec:measphi:wlay:istr:chg:t(w/latency) "
-                    << m_muonIdHelperTool->cscIdHelper().show_to_string(digitId,&context)
+                    << m_idHelperSvc->cscIdHelper().show_to_string(digitId,&context)
                     << " hash:eleId = " << hashId << " " << elementId << " " << prevId << "   "
                     << sector << " " << measphi << " " <<  wlay << " " << istrip << "   "
                     << int(stripCharge+1) << " " << float(driftTime)
                     << " phase=" << phaseToSet
                     << "  samps: " << samples[0] << " " << samples[1] << " "
                     << samples[2] << " " << samples[3]
-                    //                    << "  sampsOddPh: " << samplesOddPhase[0] << " " << samplesOddPhase[1] << " "
-                    //                    << samplesOddPhase[2] << " " << samplesOddPhase[3]
-                    //                    << "    "  << (newDigit->sampleCharges()).size()
                     );
 
     if (prevId != elementId) {
@@ -365,23 +339,17 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap,
 
         if (phaseToSet) newCollection->set_samplingPhase();
 
-        //        const std::vector<float> samplesToPut
-        //          = (phaseToSet) ? samplesOddPhase : samples ;
-
         CscDigit * newDigit  = new CscDigit(digitId, samples);
         newCollection->push_back(newDigit);
 
         if ( cscDigits->addCollection(newCollection, coll_hash).isFailure() )
-          ATH_MSG_ERROR ( "Couldn't record CscDigitCollection with key=" << coll_hash
-                          << " in StoreGate!" );
+          ATH_MSG_ERROR( "Couldn't record CscDigitCollection with key=" << coll_hash << " in StoreGate!");
 
         collection = newCollection;
 
       } else {
         CscDigitCollection * existingCollection = const_cast<CscDigitCollection*>( it_coll );
         if (phaseToSet) existingCollection->set_samplingPhase();
-        //        const std::vector<float> samplesToPut
-        //          = (existingCollection->samplingPhase()) ? samplesOddPhase : samples ;
 
         CscDigit * newDigit  = new CscDigit(digitId, samples);
 
@@ -397,8 +365,6 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap,
       }
 
       if (phaseToSet) collection->set_samplingPhase();
-      //      const std::vector<float> samplesToPut
-      //        = (collection->samplingPhase()) ? samplesOddPhase : samples ;
 
       CscDigit * newDigit  = new CscDigit(digitId, samples);
 
@@ -413,8 +379,8 @@ StatusCode CscDigitizationTool::
 FillCollectionWithOldDigitEDM(csc_map& data_map, std::map<IdentifierHash,deposits>& myDeposits,CscDigitContainer* cscDigits,CscSimDataCollection* cscSimData) {
 
   CscDigitCollection * collection = 0;
-  IdContext context    = m_muonIdHelperTool->cscIdHelper().channel_context();
-  IdContext cscContext = m_muonIdHelperTool->cscIdHelper().module_context();
+  IdContext context    = m_idHelperSvc->cscIdHelper().channel_context();
+  IdContext cscContext = m_idHelperSvc->cscIdHelper().module_context();
 
   Identifier prevId;
   csc_map::const_iterator cscMap    = data_map.begin();
@@ -422,39 +388,33 @@ FillCollectionWithOldDigitEDM(csc_map& data_map, std::map<IdentifierHash,deposit
   for (; cscMap != cscMapEnd; ++cscMap) {
     Identifier digitId;
     IdentifierHash hashId = (*cscMap).first;
-    if (m_muonIdHelperTool->cscIdHelper().get_id( hashId, digitId, &context ) ) {
+    if (m_idHelperSvc->cscIdHelper().get_id( hashId, digitId, &context ) ) {
       ATH_MSG_ERROR ( "cannot get CSC channel identifier from hash " << hashId );
       return StatusCode::FAILURE;
     }
 
     // get the charge
     double stripCharge = 0.0;
-    //double gaus = CLHEP::RandGaussZiggurat::shoot(rndmEngine,0.0,1.0);
-
-    //if (stripCharge < m_noiseLevel) continue;
     stripCharge   = ((*cscMap).second).second + m_pedestal; // + m_noiseLevel*gaus;
     double driftTime =((*cscMap).second).first;  // SimHIT time is added yet 12/03/2009
 
-    //    stripCharge   = ((*cscMap).second).stripCharge + m_pedestal; // + m_noiseLevel*gaus;  v2
-    //    double driftTime =((*cscMap).second).driftTime0; // for version2 v2
-
     /** mask this readout channel if it is a dead channel or a hot channel */
     if ( !m_pcalib->isGood( hashId ) && m_maskBadChannel ) {
       stripCharge = 0.0;
       driftTime   = 2*m_timeWindowUpperOffset;
     }
 
-    ATH_MSG_VERBOSE ( "CSC Digit Id = " << m_muonIdHelperTool->cscIdHelper().show_to_string(digitId,&context)
+    ATH_MSG_VERBOSE ( "CSC Digit Id = " << m_idHelperSvc->cscIdHelper().show_to_string(digitId,&context)
                       << " hash = " << hashId
                       << " charge = " << int (stripCharge+1) );
 
-    int zsec = m_muonIdHelperTool->cscIdHelper().stationEta(digitId);
-    int phisec = m_muonIdHelperTool->cscIdHelper().stationPhi(digitId);
-    int istation = m_muonIdHelperTool->cscIdHelper().stationName(digitId) - 49;
+    int zsec = m_idHelperSvc->cscIdHelper().stationEta(digitId);
+    int phisec = m_idHelperSvc->cscIdHelper().stationPhi(digitId);
+    int istation = m_idHelperSvc->cscIdHelper().stationName(digitId) - 49;
 
-    int wlay = m_muonIdHelperTool->cscIdHelper().wireLayer(digitId);
-    int measphi = m_muonIdHelperTool->cscIdHelper().measuresPhi(digitId);
-    int istrip = m_muonIdHelperTool->cscIdHelper().strip(digitId);
+    int wlay = m_idHelperSvc->cscIdHelper().wireLayer(digitId);
+    int measphi = m_idHelperSvc->cscIdHelper().measuresPhi(digitId);
+    int istrip = m_idHelperSvc->cscIdHelper().strip(digitId);
 
     int sector = zsec*(2*phisec-istation+1);
 
@@ -465,11 +425,10 @@ FillCollectionWithOldDigitEDM(csc_map& data_map, std::map<IdentifierHash,deposit
     }
 
     // fill the digit collections in StoreGate
-    //    CscDigit * newDigit  = new CscDigit(digitId, int(stripCharge+1) );
     // Now, we pass driftTime as well as stripCharge.
     // SimHIT time should be added to distinguish prompt muons from secondary.... 11/19/2009 WP
     CscDigit * newDigit  = new CscDigit(digitId, int(stripCharge+1), float(driftTime) );
-    Identifier elementId = m_muonIdHelperTool->cscIdHelper().parentID(digitId);
+    Identifier elementId = m_idHelperSvc->cscIdHelper().parentID(digitId);
 
     ATH_MSG_DEBUG ( "CSC Digit sector:measphi:wlay:istrip:charge "
                     << sector << " "
@@ -478,7 +437,7 @@ FillCollectionWithOldDigitEDM(csc_map& data_map, std::map<IdentifierHash,deposit
 
 
     IdentifierHash coll_hash;
-    if (m_muonIdHelperTool->cscIdHelper().get_hash(elementId, coll_hash, &cscContext)) {
+    if (m_idHelperSvc->cscIdHelper().get_hash(elementId, coll_hash, &cscContext)) {
       ATH_MSG_ERROR ( "Unable to get CSC hash id from CSC Digit collection "
                       << "context begin_index = " << cscContext.begin_index()
                       << " context end_index  = " << cscContext.end_index()
@@ -623,7 +582,7 @@ StatusCode CscDigitizationTool::mergeEvent(const EventContext& ctx) {
 
   //create and record CscDigitContainer in SG
   SG::WriteHandle<CscDigitContainer> cscDigits(m_cscDigitContainerKey, ctx);
-  ATH_CHECK(cscDigits.record(std::make_unique<CscDigitContainer>(m_muonIdHelperTool->cscIdHelper().module_hash_max())));
+  ATH_CHECK(cscDigits.record(std::make_unique<CscDigitContainer>(m_idHelperSvc->cscIdHelper().module_hash_max())));
   ATH_MSG_DEBUG("recorded CscDigitContainer with name "<<cscDigits.key());
 
   // create and record the SDO container in StoreGate
diff --git a/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx
index 630bd3fc6e5a1c32f0eff1383dab087db7ee5956..017a119024aa4d7e59ccada73223d8828d0cc9c1 100644
--- a/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx
+++ b/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx
@@ -633,7 +633,7 @@ StatusCode MM_DigitizationTool::doDigitization(const EventContext& ctx) {
       // see what are the members of MMSimHit
       
       // convert sim id helper to offline id
-      MM_SimIdToOfflineId simToOffline(m_idHelperSvc->mmIdHelper());
+      MM_SimIdToOfflineId simToOffline(&m_idHelperSvc->mmIdHelper());
       
       //get the hit Identifier and info
       int simId=hit.MMId();
diff --git a/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/MM_FastDigitizer.cxx b/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/MM_FastDigitizer.cxx
index c88b35e26eb884e49e9820f54229c89f4fde24ff..5dc51f9b854c4ff768d8f7cebf3a96397f7a4df4 100644
--- a/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/MM_FastDigitizer.cxx
+++ b/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/MM_FastDigitizer.cxx
@@ -1,23 +1,17 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-//Gaudi - Core
-#include "StoreGate/StoreGateSvc.h"
+#include "MM_FastDigitizer.h"
 
-//Inputs
+#include "StoreGate/StoreGateSvc.h"
 #include "MuonSimData/MuonSimDataCollection.h"
 #include "MuonSimData/MuonSimData.h"
-
-//Outputs
 #include "MuonPrepRawData/MMPrepDataContainer.h"
 #include "MuonPrepRawData/MMPrepData.h"
-
-#include "MM_FastDigitizer.h"
 #include "MuonSimEvent/MM_SimIdToOfflineId.h"
 #include "MuonSimEvent/MMSimHitCollection.h"
 #include "MuonSimEvent/MicromegasHitIdHelper.h"
-
 #include "MuonReadoutGeometry/MuonDetectorManager.h"
 #include "MuonReadoutGeometry/MMReadoutElement.h"
 #include "MuonIdHelpers/MmIdHelper.h"
@@ -25,38 +19,77 @@
 #include "MuonAGDDDescription/MMDetectorDescription.h"
 #include "MuonAGDDDescription/MMDetectorHelper.h"
 
-#include "Identifier/Identifier.h"
-#include "TH1.h"
-#include "TTree.h"
-#include "TFile.h"
-
-//Random Numbers
-#include "AthenaKernel/IAtRndmGenSvc.h"
-#include "CLHEP/Random/RandGauss.h"
-
-
-#include <string>
 #include <sstream>
 #include <iostream>
 #include <fstream>
 
+#include "TTree.h"
+#include "TFile.h"
+
 using namespace Muon;
 /*******************************************************************************/ 
-  MM_FastDigitizer::MM_FastDigitizer(const std::string& name, ISvcLocator* pSvcLocator)
-: AthAlgorithm(name, pSvcLocator) , m_activeStore(NULL) , m_detManager(NULL) , m_idHelper(NULL)
-  , m_file(NULL) , m_ntuple(NULL) , m_dlx(0.) , m_dly(0.) , m_dlz(0.)
-  , m_sulx(0.) , m_suly(0.) , m_tsulx(0.) , m_tsuly(0.) , m_tsulz(0.) , m_stsulx(0.) , m_stsuly(0.) , m_stsulz(0.)
-  , m_ang(0.) , m_shift(0.) , m_suresx(0.) , m_suresy(0.) , m_err(0.) , m_res(0.)
-  , m_pull(0.) , m_is(0) , m_seta(0) , m_sphi(0) , m_sml(0) , m_sl(0) , m_ss(0) , m_ieta(0) , m_iphi(0) , m_iml(0) , m_il(0)
-  , m_ich(0) , m_istr(0) , m_exitcode(0) , m_mode(0) , m_pdg(0) , m_trkid(0) , m_gpx(0.) , m_gpy(0.) , m_gpz(0.)
-  , m_gpr(0.) , m_gpp(0.) , m_dgpx(0.) , m_dgpy(0.) , m_dgpz(0.), m_dgpr(0.) , m_dgpp(0.) , m_tofCorrection(0.)
-  , m_bunchTime(0.) , m_globalHitTime(0.) , m_e(0.) , m_edep(0.) , m_surfcentx(0.) , m_surfcenty(0.) , m_surfcentz(0.)
-  , m_idHelperTool("Muon::MuonIdHelperTool/MuonIdHelperTool" )
-  , m_muonClusterCreator("Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator")
-  , m_rndmSvc("AtRndmGenSvc", name )
-  , m_rndmEngine(0)
-  , m_inputObjectName("MicromegasSensitiveDetector")
-  , m_sdoName("MMfast_SDO")
+MM_FastDigitizer::MM_FastDigitizer(const std::string& name, ISvcLocator* pSvcLocator) :
+    AthAlgorithm(name, pSvcLocator),
+    m_activeStore(nullptr),
+    m_detManager(nullptr),
+    m_file(nullptr),
+    m_ntuple(nullptr),
+    m_dlx(0.),
+    m_dly(0.),
+    m_dlz(0.),
+    m_sulx(0.),
+    m_suly(0.),
+    m_tsulx(0.),
+    m_tsuly(0.),
+    m_tsulz(0.),
+    m_stsulx(0.),
+    m_stsuly(0.),
+    m_stsulz(0.),
+    m_ang(0.),
+    m_shift(0.),
+    m_suresx(0.),
+    m_suresy(0.),
+    m_err(0.),
+    m_res(0.),
+    m_pull(0.),
+    m_is(0),
+    m_seta(0),
+    m_sphi(0),
+    m_sml(0),
+    m_sl(0),
+    m_ss(0),
+    m_ieta(0),
+    m_iphi(0),
+    m_iml(0),
+    m_il(0),
+    m_ich(0),
+    m_istr(0),
+    m_exitcode(0),
+    m_mode(0),
+    m_pdg(0),
+    m_trkid(0),
+    m_gpx(0.),
+    m_gpy(0.),
+    m_gpz(0.),
+    m_gpr(0.),
+    m_gpp(0.),
+    m_dgpx(0.),
+    m_dgpy(0.),
+    m_dgpz(0.),
+    m_dgpr(0.),
+    m_dgpp(0.),
+    m_tofCorrection(0.),
+    m_bunchTime(0.),
+    m_globalHitTime(0.),
+    m_e(0.),
+    m_edep(0.),
+    m_surfcentx(0.),
+    m_surfcenty(0.),
+    m_surfcentz(0.),
+    m_muonClusterCreator("Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator"),
+    m_rndmSvc("AtRndmGenSvc", name ),
+    m_rndmEngine(0),m_inputObjectName("MicromegasSensitiveDetector"),
+    m_sdoName("MMfast_SDO")
 {
   declareProperty("InputObjectName", m_inputObjectName  =  "MicromegasSensitiveDetector", "name of the input object");
   declareProperty("RndmEngine",  m_rndmEngineName, "Random engine name");
@@ -69,47 +102,20 @@ using namespace Muon;
   declareProperty("MicroTPC", m_microTPC = true,  "Turn on microTPC mode"  );
 }
 /*******************************************************************************/ 
-MM_FastDigitizer::~MM_FastDigitizer()  {
-}
-/*******************************************************************************/ 
 StatusCode MM_FastDigitizer::initialize() {
-  StatusCode status(StatusCode::SUCCESS);
-
   // initialize transient event store
   ATH_MSG_DEBUG ( "Retrieved StoreGateSvc." );
-
-  ATH_CHECK( service("ActiveStoreSvc", m_activeStore) );
-  ATH_CHECK( m_muonClusterCreator.retrieve() );
-  ATH_CHECK( m_sdoName.initialize() );
-
+  ATH_CHECK(service("ActiveStoreSvc", m_activeStore));
+  ATH_CHECK(m_muonClusterCreator.retrieve());
+  ATH_CHECK(m_sdoName.initialize());
   // initialize transient detector store and MuonGeoModel OR MuonDetDescrManager
-  StoreGateSvc* detStore=0;
-  m_detManager=0;
-  status = serviceLocator()->service("DetectorStore", detStore);
-  if (status.isSuccess()) {
-    if(detStore->contains<MuonGM::MuonDetectorManager>( "Muon" )){
-
-      status = detStore->retrieve(m_detManager);
-      if (status.isFailure()) {
-        ATH_MSG_FATAL ( "Could not retrieve MuonGeoModelDetectorManager!" );
-        return status;
-      }
-      else {
-        ATH_MSG_DEBUG ( "Retrieved MuonGeoModelDetectorManager from StoreGate" );
-        //initialize the MmIdHelper
-        m_idHelper  = m_detManager->mmIdHelper();
-        if(!m_idHelper) return status;
-        ATH_MSG_DEBUG ( "Retrieved MmIdHelper " << m_idHelper );
-      }
-    }
+  StoreGateSvc* detStore=nullptr;
+  ATH_CHECK(serviceLocator()->service("DetectorStore", detStore));
+  if(detStore->contains<MuonGM::MuonDetectorManager>("Muon")) {
+      ATH_CHECK(detStore->retrieve(m_detManager));
+      ATH_MSG_DEBUG ( "Retrieved MuonGeoModelDetectorManager from StoreGate" );
   }
-  else {
-    ATH_MSG_FATAL ( "Could not retrieve DetectorStore!" );
-    return status;
-  }
-
-  ATH_CHECK( m_idHelperTool.retrieve() );
-
+  ATH_CHECK(m_idHelperSvc.retrieve());
   // check the input object name
   if (m_inputObjectName=="") {
     ATH_MSG_FATAL ( "Property InputObjectName not set !" );
@@ -188,15 +194,11 @@ StatusCode MM_FastDigitizer::initialize() {
 }
 /*******************************************************************************/ 
 StatusCode MM_FastDigitizer::execute() {
-
-
-
-
   // Create and record the SDO container in StoreGate
   SG::WriteHandle<MuonSimDataCollection> h_sdoContainer(m_sdoName);
   ATH_CHECK( h_sdoContainer.record ( std::make_unique<MuonSimDataCollection>() ) );
 
-  MMPrepDataContainer* prdContainer = new MMPrepDataContainer(m_idHelper->module_hash_max());
+  MMPrepDataContainer* prdContainer = new MMPrepDataContainer(m_idHelperSvc->mmIdHelper().module_hash_max());
   std::string key = "MM_Measurements";
   ATH_MSG_DEBUG(" Done! Total number of MM chambers with PRDS: " << prdContainer->numberOfCollections() << " key " << key);
   ATH_CHECK( evtStore()->record(prdContainer,key) );
@@ -206,18 +208,15 @@ StatusCode MM_FastDigitizer::execute() {
     return StatusCode::SUCCESS;
   }
   // as the MMPrepDataContainer only allows const accesss, need a local vector as well.
-  std::vector<MMPrepDataCollection*> localMMVec(m_idHelper->module_hash_max());
+  std::vector<MMPrepDataCollection*> localMMVec(m_idHelperSvc->mmIdHelper().module_hash_max());
 
   const DataHandle< MMSimHitCollection > collGMSH;
-  if ( evtStore()->retrieve( collGMSH,m_inputObjectName ).isFailure()) {
-    ATH_MSG_WARNING("No MM hits found in SG");
-    return StatusCode::FAILURE;
-  }
+  ATH_CHECK(evtStore()->retrieve( collGMSH,m_inputObjectName ));
 
   ATH_MSG_DEBUG( "Retrieved " <<  collGMSH->size() << " MM hits!");
 
   // Get the MicroMegas Id hit helper
-  MM_SimIdToOfflineId simToOffline(*m_idHelper);
+  MM_SimIdToOfflineId simToOffline(&m_idHelperSvc->mmIdHelper());
 
   std::map<Identifier,int> hitsPerChannel;
   int nhits = 0;
@@ -254,34 +253,33 @@ StatusCode MM_FastDigitizer::execute() {
     Identifier layid = simToOffline.convert(simId);
 
     // sanity checks
-    if( !m_idHelper->is_mm(layid) ){
-      ATH_MSG_WARNING("MM id is not a mm id! " << m_idHelperTool->toString(layid));
+    if( !m_idHelperSvc->isMM(layid) ){
+      ATH_MSG_WARNING("MM id is not a mm id! " << m_idHelperSvc->toString(layid));
     }
-    if( !m_idHelper->is_muon(layid) ){
-      ATH_MSG_WARNING("MM id is not a muon id! " << m_idHelperTool->toString(layid));
+    if( !m_idHelperSvc->isMuon(layid) ){
+      ATH_MSG_WARNING("MM id is not a muon id! " << m_idHelperSvc->toString(layid));
     }
-    if( m_idHelper->is_mdt(layid)||m_idHelper->is_rpc(layid)||m_idHelper->is_tgc(layid)||m_idHelper->is_csc(layid)||m_idHelper->is_stgc(layid) ){
-      ATH_MSG_WARNING("MM id has wrong technology type! " << m_idHelper->is_mdt(layid) << " " << m_idHelper->is_rpc(layid)
-          << " " << m_idHelper->is_tgc(layid) << " " << m_idHelper->is_csc(layid) << " " << m_idHelper->is_stgc(layid) );
+    if( m_idHelperSvc->isMdt(layid)||m_idHelperSvc->isRpc(layid)||m_idHelperSvc->isTgc(layid)||m_idHelperSvc->isCsc(layid)||m_idHelperSvc->issTgc(layid) ){
+      ATH_MSG_WARNING("MM id has wrong technology type!");
     }
     
     // remove hits in masked multiplet
-    if( m_maskMultiplet == m_idHelperTool->stgcIdHelper().multilayer(layid) ) continue; 
+    if( m_maskMultiplet == m_idHelperSvc->stgcIdHelper().multilayer(layid) ) continue; 
 
     // get readout element
     const MuonGM::MMReadoutElement* detEl = m_detManager->getMMReadoutElement(layid);
     if( !detEl ){
-      ATH_MSG_WARNING("Failed to retrieve detector element for: " << m_idHelperTool->toString(layid) );
+      ATH_MSG_WARNING("Failed to retrieve detector element for: " << m_idHelperSvc->toString(layid) );
       continue;
     }
 
     // collections stored per readout element
     IdentifierHash hash;
-    m_idHelper->get_module_hash(layid, hash);
+    m_idHelperSvc->mmIdHelper().get_module_hash(layid, hash);
     MuonPrepDataCollection<Muon::MMPrepData>* col  = localMMVec[hash];
     if( !col ){
       col = new MMPrepDataCollection(hash);
-      col->setIdentifier(m_idHelper->channelID(m_idHelper->parentID(layid), m_idHelper->multilayer(layid),1,1) );
+      col->setIdentifier(m_idHelperSvc->mmIdHelper().channelID(m_idHelperSvc->mmIdHelper().parentID(layid), m_idHelperSvc->mmIdHelper().multilayer(layid),1,1) );
       if( prdContainer->addCollection(col,hash).isFailure() ){
         ATH_MSG_WARNING("Failed to add collection with hash " << (int)hash );
         delete col;col=0;
@@ -308,29 +306,26 @@ StatusCode MM_FastDigitizer::execute() {
     Amg::Vector3D slpos = surf.transform().inverse()*hpos;
 
     // Get MM_READOUT from MMDetectorDescription
-    char side = ((int)m_idHelper->stationEta(layid)) < 0 ? 'C' : 'A';
-    char sector_l = ((std::string)m_idHelper->stationNameString(m_idHelper->stationName(layid))).substr(2,1)=="L" ? 'L' : 'S';
+    char side = ((int)m_idHelperSvc->mmIdHelper().stationEta(layid)) < 0 ? 'C' : 'A';
+    char sector_l = ((std::string)m_idHelperSvc->mmIdHelper().stationNameString(m_idHelperSvc->mmIdHelper().stationName(layid))).substr(2,1)=="L" ? 'L' : 'S';
     MMDetectorHelper aHelper;
-    MMDetectorDescription* mm = aHelper.Get_MMDetector(sector_l, abs((int)m_idHelper->stationEta(layid)), (int)m_idHelper->stationPhi(layid), (int)m_idHelper->multilayer(layid), side);
+    MMDetectorDescription* mm = aHelper.Get_MMDetector(sector_l, abs((int)m_idHelperSvc->mmIdHelper().stationEta(layid)), (int)m_idHelperSvc->mmIdHelper().stationPhi(layid), (int)m_idHelperSvc->mmIdHelper().multilayer(layid), side);
     MMReadoutParameters roParam = mm->GetReadoutParameters();
 
     Amg::Vector3D  ldir = surf.transform().inverse().linear()*Amg::Vector3D(hit.globalDirection().x(), hit.globalDirection().y(), hit.globalDirection().z());
     Amg::Vector3D  ldirTime;
     // the stereo angle vector stores the angles in rad. the vector indices are 0,1,2,3 which map to layers 1,2,3,4
-    if ( std::abs( (roParam.stereoAngle).at(m_idHelper->gasGap(layid)-1) ) > 0. )
+    if ( std::abs( (roParam.stereoAngle).at(m_idHelperSvc->mmIdHelper().gasGap(layid)-1) ) > 0. )
       ldirTime = ldir;
     else
       ldirTime = surf.transform().inverse().linear()*Amg::Vector3D(hit.globalDirection().x(), hit.globalDirection().y(), -hit.globalDirection().z());
 
     double scale;//, scaletop;
-//    double gasgap = 5.;
     
     if (m_microTPC) scale = 0;
     else scale = -slpos.z()/ldir.z();
-//    scaletop = (gasgap+slpos.z())/ldir.z();
 
     Amg::Vector3D hitOnSurface = slpos + scale*ldir;
-//    Amg::Vector3D hitOnTopSurface = slpos + scaletop*ldir;
     Amg::Vector3D hitOnSurfaceGlobal = surf.transform()*hitOnSurface;
 
     // account for time offset 
@@ -371,7 +366,7 @@ StatusCode MM_FastDigitizer::execute() {
     Amg::Vector3D repos = detEl->globalPosition();
     MicromegasHitIdHelper* hitHelper = MicromegasHitIdHelper::GetHelper();
 
-    std::string stName = m_idHelper->stationNameString(m_idHelper->stationName(layid));
+    std::string stName = m_idHelperSvc->mmIdHelper().stationNameString(m_idHelperSvc->mmIdHelper().stationName(layid));
     int isSmall = stName[2] == 'S';
     m_dlx = lpos.x();
     m_dly = lpos.y();
@@ -396,10 +391,10 @@ StatusCode MM_FastDigitizer::execute() {
     m_sml  = hitHelper->GetMultiLayer(simId);
     m_sl  = hitHelper->GetLayer(simId);
     m_ss  = hitHelper->GetSide(simId);
-    m_ieta = m_idHelper->stationEta(layid);
-    m_iphi = m_idHelper->stationPhi(layid);
-    m_iml  = m_idHelper->multilayer(layid);
-    m_il  = m_idHelper->gasGap(layid);
+    m_ieta = m_idHelperSvc->mmIdHelper().stationEta(layid);
+    m_iphi = m_idHelperSvc->mmIdHelper().stationPhi(layid);
+    m_iml  = m_idHelperSvc->mmIdHelper().multilayer(layid);
+    m_il  = m_idHelperSvc->mmIdHelper().gasGap(layid);
     m_ich = -99999;
     m_istr  = -99999;
     m_exitcode = 0;
@@ -441,7 +436,7 @@ StatusCode MM_FastDigitizer::execute() {
     //int LastStripNumber = detEl->stripNumber(posOnTopSurf, layid);
 
     if( stripNumber == -1 ){
-      ATH_MSG_WARNING("Failed to obtain strip number " << m_idHelperTool->toString(layid) );
+      ATH_MSG_WARNING("Failed to obtain strip number " << m_idHelperSvc->toString(layid) );
       ATH_MSG_WARNING(" pos " << posOnSurf << " z " << slpos.z() ); 
       m_exitcode = 2;
       m_ntuple->Fill();
@@ -450,8 +445,8 @@ StatusCode MM_FastDigitizer::execute() {
 
     // Recalculate the Identifier using the strip number
     // here need to use parent ID to avoid creating corrupted identifiers
-    Identifier parentID = m_idHelper->parentID(layid);
-    Identifier id = m_idHelper->channelID(parentID, m_idHelper->multilayer(layid), m_idHelper->gasGap(layid),stripNumber,m_checkIds);
+    Identifier parentID = m_idHelperSvc->mmIdHelper().parentID(layid);
+    Identifier id = m_idHelperSvc->mmIdHelper().channelID(parentID, m_idHelperSvc->mmIdHelper().multilayer(layid), m_idHelperSvc->mmIdHelper().gasGap(layid),stripNumber,m_checkIds);
 
     // only one hit per channel
     int& counts = hitsPerChannel[id];
@@ -461,7 +456,7 @@ StatusCode MM_FastDigitizer::execute() {
 
 
     if( stripNumber >= detEl->numberOfStrips(layid) ){
-      ATH_MSG_WARNING("Failed to obtain strip number " << m_idHelperTool->toString(layid) );
+      ATH_MSG_WARNING("Failed to obtain strip number " << m_idHelperSvc->toString(layid) );
       ATH_MSG_WARNING(" pos " << posOnSurf << " z " << slpos.z() ); 
       m_exitcode = 3;
       m_ntuple->Fill();
@@ -470,10 +465,10 @@ StatusCode MM_FastDigitizer::execute() {
 
     // Recalculate the Identifier using the strip number
     // here need to use parent ID to avoid creating corrupted identifiers
-    id = m_idHelper->channelID(parentID, m_idHelper->multilayer(layid), m_idHelper->gasGap(layid),stripNumber,m_checkIds);
+    id = m_idHelperSvc->mmIdHelper().channelID(parentID, m_idHelperSvc->mmIdHelper().multilayer(layid), m_idHelperSvc->mmIdHelper().gasGap(layid),stripNumber,m_checkIds);
 
-    if( stripNumber != m_idHelper->channel(id) ) {
-      ATH_MSG_WARNING(" bad stripNumber: in  "  << stripNumber << " from id " << m_idHelper->channel(id));
+    if( stripNumber != m_idHelperSvc->mmIdHelper().channel(id) ) {
+      ATH_MSG_WARNING(" bad stripNumber: in  "  << stripNumber << " from id " << m_idHelperSvc->mmIdHelper().channel(id));
       m_exitcode = 4;
       continue;
     }
@@ -485,7 +480,7 @@ StatusCode MM_FastDigitizer::execute() {
     ATH_MSG_VERBOSE(" Calculated truth hitOnSurfaceGlobal: r " << hitOnSurfaceGlobal.perp() << " phi " << hitOnSurfaceGlobal.phi() << " z " << hitOnSurfaceGlobal.z());
     ATH_MSG_VERBOSE(" detEl: r " << repos.perp() << " phi " << repos.phi() << " z " << repos.z());
     ATH_MSG_VERBOSE(" Surface center: r " << surf.center().perp() << " phi " << surf.center().phi() << " z " << surf.center().z());
-    ATH_MSG_DEBUG(" hit:  " << m_idHelperTool->toString(id) << " hitx " << posOnSurf.x() << " hitOnSurface.x() " << hitOnSurface.x() << " residual " << posOnSurf.x() - hitOnSurface.x()
+    ATH_MSG_DEBUG(" hit:  " << m_idHelperSvc->toString(id) << " hitx " << posOnSurf.x() << " hitOnSurface.x() " << hitOnSurface.x() << " residual " << posOnSurf.x() - hitOnSurface.x()
 		  << " pull " << (posOnSurf.x() - hitOnSurface.x())/resolution );
     Amg::Vector3D CurrentHitInDriftGap = slpos;
     // emulating micro track in the drift volume for microTPC
@@ -510,7 +505,7 @@ StatusCode MM_FastDigitizer::execute() {
       ATH_MSG_VERBOSE(" Prd: r " << prd->globalPosition().perp() << "  phi " << prd->globalPosition().phi() << " z " << prd->globalPosition().z());
     } else {
       for (int loop_direction = -1; loop_direction <=1; loop_direction+=2) {
-        Amg::Vector3D stepInDriftGap = loop_direction * ldir * (roParam.stripPitch/std::cos(roParam.stereoAngle.at(m_idHelper->gasGap(layid)-1) ))/abs(ldir.x());
+        Amg::Vector3D stepInDriftGap = loop_direction * ldir * (roParam.stripPitch/std::cos(roParam.stereoAngle.at(m_idHelperSvc->mmIdHelper().gasGap(layid)-1) ))/abs(ldir.x());
         if (loop_direction == 1) CurrentHitInDriftGap = slpos + stepInDriftGap;
         while (std::abs(CurrentHitInDriftGap.z()) <= roParam.gasThickness) {
           std::unique_ptr<Amg::MatrixX> cov = std::make_unique<Amg::MatrixX>(1,1);
@@ -525,8 +520,8 @@ StatusCode MM_FastDigitizer::execute() {
             CurrentHitInDriftGap += stepInDriftGap;
             continue;
           }
-          id = m_idHelper->channelID(parentID, m_idHelper->multilayer(layid), m_idHelper->gasGap(layid),stripNumber,m_checkIds);
-          if( stripNumber != m_idHelper->channel(id) ) {
+          id = m_idHelperSvc->mmIdHelper().channelID(parentID, m_idHelperSvc->mmIdHelper().multilayer(layid), m_idHelperSvc->mmIdHelper().gasGap(layid),stripNumber,m_checkIds);
+          if( stripNumber != m_idHelperSvc->mmIdHelper().channel(id) ) {
             CurrentHitInDriftGap += stepInDriftGap;
             continue;
           }
@@ -557,29 +552,18 @@ StatusCode MM_FastDigitizer::execute() {
 
 
     m_err = resolution;
-    m_ich = m_idHelper->channel(id);
+    m_ich = m_idHelperSvc->mmIdHelper().channel(id);
     m_istr  = stripNumber;
-
-//     const MuonClusterOnTrack* rot = m_muonClusterCreator->createRIO_OnTrack( *prd, hit.globalPosition() );
-//     if( rot ){
-//       m_res  = rot->localParameters().get(Trk::locX)-hitOnSurface.x();
-//       m_pull = m_res/rot->localErrorMatrix().error(Trk::locX);
-//       delete rot;
-//     }
-
     m_ntuple->Fill();
-    // OLD CODE ENDS HERE
-
   } 
 
-  if( msgLvl(MSG::DEBUG) ){
+  if (msgLvl(MSG::DEBUG)) {
     std::map<Identifier,int>::const_iterator hit = hitsPerChannel.begin();
     std::map<Identifier,int>::const_iterator hit_end = hitsPerChannel.end();
-    msg(MSG::DEBUG) << " number of channels with hit " << hitsPerChannel.size() << " nhits " << nhits << std::endl;
+    ATH_MSG_DEBUG(" number of channels with hit " << hitsPerChannel.size() << " nhits " << nhits);
     for( ;hit!=hit_end;++hit ){
-      msg(MSG::DEBUG) << " " << m_idHelperTool->toString(hit->first) << " ->  " << hit->second << std::endl;
+      ATH_MSG_DEBUG(" " << m_idHelperSvc->toString(hit->first) << " ->  " << hit->second);
     }
-    msg(MSG::DEBUG) << endmsg;
   }
   return StatusCode::SUCCESS;
 }
diff --git a/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/MM_FastDigitizer.h b/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/MM_FastDigitizer.h
index 59801a2f9e5e4d4955cc7d766f76d99bcce6c757..bc09af3b4ec57b5baa8f8c2b7d55d25d7a4b7bd6 100644
--- a/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/MM_FastDigitizer.h
+++ b/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/MM_FastDigitizer.h
@@ -1,28 +1,27 @@
 /*
-  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 MUONDIGITIZATION_MM_FASTDIGITIZER_H
 #define MUONDIGITIZATION_MM_FASTDIGITIZER_H 
 
-#include "GaudiKernel/ToolHandle.h"
-#include "GaudiKernel/ServiceHandle.h"
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "GaudiKernel/ServiceHandle.h"
+#include "GaudiKernel/ToolHandle.h"
+
 #include "StoreGate/StoreGateSvc.h"
 #include "StoreGate/WriteHandleKey.h"
-
-//Random
 #include "CLHEP/Random/RandomEngine.h"
 #include "AthenaKernel/IAtRndmGenSvc.h"
 #include "CLHEP/Random/RandGauss.h"
-
-#include "MuonIdHelpers/MuonIdHelperTool.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h"
 
+#include <string>
+
 class TTree;
 class TFile;
 
-class MmIdHelper;
 namespace MuonGM {
   class MuonDetectorManager;
 }
@@ -32,8 +31,6 @@ namespace CLHEP{
   class HepRandomEngine;
 }
 
-
-class IAtRndmGenSvc;
 class ActiveStoreSvc;
 class MuonSimDataCollection;
 
@@ -42,7 +39,7 @@ class MM_FastDigitizer : public AthAlgorithm {
  public:
 
   MM_FastDigitizer(const std::string& name, ISvcLocator* pSvcLocator);
-  ~MM_FastDigitizer();
+  ~MM_FastDigitizer()=default;
     
   StatusCode initialize();
   StatusCode execute();
@@ -54,11 +51,8 @@ class MM_FastDigitizer : public AthAlgorithm {
   float RadsToDegrees(float Radians);
  
  private:
-
   ActiveStoreSvc*             m_activeStore;
-
   const MuonGM::MuonDetectorManager* m_detManager;
-  const MmIdHelper* m_idHelper;
   
   TFile* m_file;
   TTree* m_ntuple;
@@ -116,7 +110,7 @@ class MM_FastDigitizer : public AthAlgorithm {
   float  m_surfcentz;
 
  protected:
-  ToolHandle <Muon::MuonIdHelperTool> m_idHelperTool;  
+  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
   ToolHandle <Muon::IMuonClusterOnTrackCreator> m_muonClusterCreator;
   ServiceHandle <IAtRndmGenSvc> m_rndmSvc;      // Random number service
   CLHEP::HepRandomEngine *m_rndmEngine;    // Random number engine used - not init in SiDigitization
diff --git a/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/sTgcFastDigitizer.cxx b/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/sTgcFastDigitizer.cxx
index 5ea5204a2e0e4b36943359ecd97bf5f858f015f4..4b7f43c8c13cf0e5074697baa4da95283eb5ab7a 100644
--- a/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/sTgcFastDigitizer.cxx
+++ b/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/sTgcFastDigitizer.cxx
@@ -1,58 +1,99 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "sTgcFastDigitizer.h"
-#include "MuonSimEvent/sTgcSimIdToOfflineId.h"
 
+#include "MuonSimEvent/sTgcSimIdToOfflineId.h"
 #include "MuonSimEvent/sTGCSimHitCollection.h"
-
 #include "MuonSimEvent/MicromegasHitIdHelper.h"
 #include "MuonReadoutGeometry/MuonDetectorManager.h"
 #include "MuonReadoutGeometry/sTgcReadoutElement.h"
-#include "MuonIdHelpers/sTgcIdHelper.h"
-
 #include "MuonSimData/MuonSimDataCollection.h"
 #include "MuonSimData/MuonSimData.h"
 #include "MuonPrepRawData/sTgcPrepDataContainer.h"
 #include "MuonPrepRawData/sTgcPrepData.h"
 #include "TrkEventPrimitives/LocalDirection.h"
 #include "TrkSurfaces/Surface.h"
+#include "CLHEP/Random/RandFlat.h"
+#include "PathResolver/PathResolver.h"
 
-#include "Identifier/Identifier.h"
-#include "TH1.h"
 #include "TTree.h"
 #include "TFile.h"
 
-//Random Numbers
-#include "AthenaKernel/IAtRndmGenSvc.h"
-#include "CLHEP/Random/RandGauss.h"
-#include "CLHEP/Random/RandFlat.h"
-#include "PathResolver/PathResolver.h"
-
 using namespace Muon;
 
-sTgcFastDigitizer::sTgcFastDigitizer(const std::string& name, ISvcLocator* pSvcLocator)
-  : AthAlgorithm(name, pSvcLocator) , m_detManager(NULL) ,  m_idHelper(NULL) ,  m_channelTypes(0)
-  , m_file(NULL) , m_ntuple(NULL) , m_dlx(0.) , m_dly(0.) , m_dlz(0.)
-  , m_sulx(0.) , m_suly(0.) , m_tsulx(0.) , m_tsuly(0.) , m_tsulz(0.)
-  , m_suresx(0.) , m_suresy(0.) , m_errx(0.) , m_erry(0.) , m_res(0.) , m_pull(0.) , m_is(0) , m_seta(0) , m_sphi(0)
-  , m_sml(0) , m_sl(0) , m_ss(0) , m_stype(0) , m_ieta(0) , m_iphi(0) , m_iml(0) , m_il(0) , m_ich(0) , m_istr(0) , m_itype(0)
-  , m_ipadeta(0) , m_ipadphi(0) , m_exitcode(0) , m_mode(0) , m_pdg(0) , m_trkid(0) , m_bct(0) , m_tb(0.) , m_tj(0.)
-  , m_tg4(0.) , m_ttof(0.) , m_gpx(0.) , m_gpy(0.) , m_gpz(0.) , m_gpr(0.) , m_gpp(0.) , m_dgpx(0.) , m_dgpy(0.) , m_dgpz(0.)
-  , m_dgpr(0.) , m_dgpp(0.) , m_edep(0.) , m_as(0.) , m_at(0.) , m_surfcentx(0.) , m_surfcenty(0.) , m_surfcentz(0.)
-  , m_idHelperTool("Muon::MuonIdHelperTool/MuonIdHelperTool" )
-  , m_muonClusterCreator("Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator")
-  , m_rndmSvc("AtRndmGenSvc", name )
-  , m_rndmEngine(0)
-  , m_sdoName("STGCfast_SDO")
-  , m_timeWindowOffsetWire(0.)
-  , m_timeWindowOffsetStrip(0.)
-  , m_timeWindowWire(24.95) // TGC  29.32; // 29.32 ns = 26 ns +  4 * 0.83 ns
-  , m_timeWindowStrip(24.95) // TGC  40.94; // 40.94 ns = 26 ns + 18 * 0.83 ns
-  , m_bunchCrossingTime(24.95) // 24.95 ns =(40.08 MHz)^(-1)
+sTgcFastDigitizer::sTgcFastDigitizer(const std::string& name, ISvcLocator* pSvcLocator) :
+    AthAlgorithm(name, pSvcLocator),
+    m_detManager(NULL),
+    m_channelTypes(0),
+    m_file(NULL),
+    m_ntuple(NULL),
+    m_dlx(0.),
+    m_dly(0.),
+    m_dlz(0.),
+    m_sulx(0.),
+    m_suly(0.),
+    m_tsulx(0.),
+    m_tsuly(0.),
+    m_tsulz(0.),
+    m_suresx(0.),
+    m_suresy(0.),
+    m_errx(0.),
+    m_erry(0.),
+    m_res(0.),
+    m_pull(0.),
+    m_is(0),
+    m_seta(0),
+    m_sphi(0),
+    m_sml(0),
+    m_sl(0),
+    m_ss(0),
+    m_stype(0),
+    m_ieta(0),
+    m_iphi(0),
+    m_iml(0),
+    m_il(0),
+    m_ich(0),
+    m_istr(0),
+    m_itype(0),
+    m_ipadeta(0),
+    m_ipadphi(0),
+    m_exitcode(0),
+    m_mode(0),
+    m_pdg(0),
+    m_trkid(0),
+    m_bct(0),
+    m_tb(0.),
+    m_tj(0.),
+    m_tg4(0.),
+    m_ttof(0.),
+    m_gpx(0.),
+    m_gpy(0.),
+    m_gpz(0.),
+    m_gpr(0.),
+    m_gpp(0.),
+    m_dgpx(0.),
+    m_dgpy(0.),
+    m_dgpz(0.),
+    m_dgpr(0.),
+    m_dgpp(0.),
+    m_edep(0.),
+    m_as(0.),
+    m_at(0.),
+    m_surfcentx(0.),
+    m_surfcenty(0.),
+    m_surfcentz(0.),
+    m_muonClusterCreator("Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator"),
+    m_rndmSvc("AtRndmGenSvc", name ),
+    m_rndmEngine(0),
+    m_sdoName("STGCfast_SDO"),
+    m_timeWindowOffsetWire(0.),
+    m_timeWindowOffsetStrip(0.),
+    m_timeWindowWire(24.95), // TGC  29.32; // 29.32 ns = 26 ns +  4 * 0.83 ns
+    m_timeWindowStrip(24.95), // TGC  40.94; // 40.94 ns = 26 ns + 18 * 0.83 ns
+    m_bunchCrossingTime(24.95) // 24.95 ns =(40.08 MHz)^(-1)
 {
-  declareProperty("IdHelperTool", m_idHelperTool);
   declareProperty("ClusterCreator", m_muonClusterCreator);
   declareProperty("ChannelTypes", m_channelTypes = 3);
   declareProperty("RndmEngine",  m_rndmEngineName, "Random engine name");
@@ -64,23 +105,16 @@ sTgcFastDigitizer::sTgcFastDigitizer(const std::string& name, ISvcLocator* pSvcL
   declareProperty("MergePrds", m_mergePrds = true );
 }
 
-sTgcFastDigitizer::~sTgcFastDigitizer()  {
-
-}
-
 StatusCode sTgcFastDigitizer::initialize() {
-
-  ATH_CHECK( detStore()->retrieve( m_detManager ) );
-  ATH_CHECK( detStore()->retrieve( m_idHelper ) );
-
+  ATH_CHECK(detStore()->retrieve(m_detManager));
   m_rndmEngine = m_rndmSvc->GetEngine(m_rndmEngineName);
   if (m_rndmEngine==0) {
-    ATH_MSG_ERROR("Could not find RndmEngine : " << m_rndmEngineName );
+    ATH_MSG_ERROR("Could not find RndmEngine : " << m_rndmEngineName);
     return StatusCode::FAILURE;
   }
-  ATH_CHECK( m_idHelperTool.retrieve() );
-  ATH_CHECK( m_muonClusterCreator.retrieve() );
-  ATH_CHECK( m_sdoName.initialize() );
+  ATH_CHECK(m_idHelperSvc.retrieve());
+  ATH_CHECK(m_muonClusterCreator.retrieve());
+  ATH_CHECK(m_sdoName.initialize());
 
   if( !readFileOfTimeJitter() ) return StatusCode::FAILURE; 
 
@@ -144,31 +178,26 @@ StatusCode sTgcFastDigitizer::initialize() {
   m_ntuple->Branch("surfcentz",&m_surfcentz);
 
   return StatusCode::SUCCESS;
-    
 }
 
 StatusCode sTgcFastDigitizer::execute() {
-
-// Create and record the SDO container in StoreGate
+  // Create and record the SDO container in StoreGate
   SG::WriteHandle<MuonSimDataCollection> h_sdoContainer(m_sdoName);
   ATH_CHECK( h_sdoContainer.record ( std::make_unique<MuonSimDataCollection>() ) );
 
-  sTgcPrepDataContainer* prdContainer = new sTgcPrepDataContainer(m_idHelper->module_hash_max());
+  sTgcPrepDataContainer* prdContainer = new sTgcPrepDataContainer(m_idHelperSvc->stgcIdHelper().module_hash_max());
   
   // as the sTgcPrepDataContainer only allows const accesss, need a local vector as well.
-  std::vector<sTgcPrepDataCollection*> localsTgcVec(m_idHelper->module_hash_max());
+  std::vector<sTgcPrepDataCollection*> localsTgcVec(m_idHelperSvc->stgcIdHelper().module_hash_max());
   std::vector<sTgcPrepData*> sTgcprds;
   std::vector<int> sTgcflag;
 
   const DataHandle< sTGCSimHitCollection > collGMSH;
-  if ( evtStore()->retrieve( collGMSH,"sTGCSensitiveDetector").isFailure()) {
-    ATH_MSG_WARNING("No sTgc hits found in SG");
-    return StatusCode::FAILURE;
-  }
+  ATH_CHECK(evtStore()->retrieve( collGMSH,"sTGCSensitiveDetector"));
 
   ATH_MSG_DEBUG( "Retrieved " <<  collGMSH->size() << " sTgc hits!");
   sTgcHitIdHelper* hitHelper=sTgcHitIdHelper::GetHelper();
-  sTgcSimIdToOfflineId simToOffline(*m_idHelper);
+  sTgcSimIdToOfflineId simToOffline(&m_idHelperSvc->stgcIdHelper());
 
 
   std::map<Identifier,int> hitsPerChannel;
@@ -189,18 +218,18 @@ StatusCode sTgcFastDigitizer::execute() {
     int simId = hit.sTGCId();
     Identifier layid = simToOffline.convert(simId);
     ATH_MSG_VERBOSE("sTgc hit: r " << hit.globalPosition().perp() << " z " << hit.globalPosition().z() << " mclink " << hit.particleLink() 
-		    << " -- " << m_idHelperTool->toString(layid));
+		    << " -- " << m_idHelperSvc->toString(layid));
  
-    std::string stName = m_idHelper->stationNameString(m_idHelper->stationName(layid));
+    std::string stName = m_idHelperSvc->stgcIdHelper().stationNameString(m_idHelperSvc->stgcIdHelper().stationName(layid));
     int isSmall = stName[2] == 'S';
     const MuonGM::sTgcReadoutElement* detEl = m_detManager->getsTgcReadoutElement(layid);
     if( !detEl ){
-      ATH_MSG_WARNING("Failed to retrieve detector element for: " << m_idHelperTool->toString(layid) );
+      ATH_MSG_WARNING("Failed to retrieve detector element for: " << m_idHelperSvc->toString(layid) );
       continue;
     }
     
     IdentifierHash hash;
-    m_idHelper->get_module_hash(layid, hash);
+    m_idHelperSvc->stgcIdHelper().get_module_hash(layid, hash);
 
     bool lastHit = false;
     if(itersTgc + 1 ==collGMSH->end()) lastHit = true;
@@ -219,15 +248,15 @@ StatusCode sTgcFastDigitizer::execute() {
         bool merge = false;
         unsigned int jmerge = -1;
         Identifier id_prd = sTgcprds[i]->identify();
-        int strip = m_idHelper->channel(id_prd);
-        int gasGap  = m_idHelper->gasGap(id_prd);
-        int layer   = m_idHelper->multilayer(id_prd);
+        int strip = m_idHelperSvc->stgcIdHelper().channel(id_prd);
+        int gasGap  = m_idHelperSvc->stgcIdHelper().gasGap(id_prd);
+        int layer   = m_idHelperSvc->stgcIdHelper().multilayer(id_prd);
         ATH_MSG_VERBOSE("  sTgcprds " <<  sTgcprds.size() <<" index "<< i << " strip " << strip << " gasGap " << gasGap << " layer " << layer );
         for (unsigned int j=i+1; j<sTgcprds.size(); ++j){
           Identifier id_prdN = sTgcprds[j]->identify();
-          int stripN = m_idHelper->channel(id_prdN);
-          int gasGapN  = m_idHelper->gasGap(id_prdN);
-          int layerN   = m_idHelper->multilayer(id_prdN);
+          int stripN = m_idHelperSvc->stgcIdHelper().channel(id_prdN);
+          int gasGapN  = m_idHelperSvc->stgcIdHelper().gasGap(id_prdN);
+          int layerN   = m_idHelperSvc->stgcIdHelper().multilayer(id_prdN);
           if( gasGapN==gasGap && layerN==layer ) {
             ATH_MSG_VERBOSE(" next sTgcprds strip same gasGap and layer index " << j << " strip " << stripN << " gasGap " << gasGapN << " layer " << layerN );
             if(abs(strip-stripN)<2) {
@@ -263,10 +292,10 @@ StatusCode sTgcFastDigitizer::execute() {
           for (unsigned int k=0; k < nmergeStripsMax; ++k) {
             for (unsigned int j=jmerge; j<sTgcprds.size(); ++j){
               Identifier id_prdN = sTgcprds[j]->identify();
-              int stripN = m_idHelper->channel(id_prdN);
+              int stripN = m_idHelperSvc->stgcIdHelper().channel(id_prdN);
               if( abs(mergeStrips[k]-stripN) == 1 ) {
-                int gasGapN  = m_idHelper->gasGap(id_prdN);
-                int layerN   = m_idHelper->multilayer(id_prdN);
+                int gasGapN  = m_idHelperSvc->stgcIdHelper().gasGap(id_prdN);
+                int layerN   = m_idHelperSvc->stgcIdHelper().multilayer(id_prdN);
                 if( gasGapN==gasGap && layerN==layer ) {
                   nmerge++;
                   rdoList.push_back(id_prdN);
@@ -299,7 +328,7 @@ StatusCode sTgcFastDigitizer::execute() {
           Amg::MatrixX* covN = new Amg::MatrixX(1,1);
           covN->setIdentity();
           (*covN)(0,0) = 6.*(nmerge + 1.)*covX;
-          ATH_MSG_VERBOSE(" make merged prepData at strip " << m_idHelper->channel(sTgcprds[j]->identify()));
+          ATH_MSG_VERBOSE(" make merged prepData at strip " << m_idHelperSvc->stgcIdHelper().channel(sTgcprds[j]->identify()));
 
           sTgcPrepData* prdN = new sTgcPrepData(sTgcprds[j]->identify(), hashLast, sTgcprds[j]->localPosition(), rdoList, covN, sTgcprds[j]->detectorElement(), sTgcprds[j]->getBcBitMap());
           prdN->setHashAndIndex(col->identifyHash(), col->size());
@@ -315,7 +344,7 @@ StatusCode sTgcFastDigitizer::execute() {
     MuonPrepDataCollection<Muon::sTgcPrepData>* col  = localsTgcVec[hash];
     if( !col ){
       col = new sTgcPrepDataCollection(hash);
-      col->setIdentifier(m_idHelper->channelID(m_idHelper->parentID(layid), m_idHelper->multilayer(layid),1,1,1) );
+      col->setIdentifier(m_idHelperSvc->stgcIdHelper().channelID(m_idHelperSvc->stgcIdHelper().parentID(layid), m_idHelperSvc->stgcIdHelper().multilayer(layid),1,1,1) );
       if( prdContainer->addCollection(col,hash).isFailure() ){
 	ATH_MSG_WARNING("Failed to add collection with hash " << (int)hash );
 	delete col;col=0;
@@ -326,7 +355,7 @@ StatusCode sTgcFastDigitizer::execute() {
       localsTgcVec[hash] = col;
     }
 
-    Identifier parentId = m_idHelper->parentID(layid);
+    Identifier parentId = m_idHelperSvc->stgcIdHelper().parentID(layid);
 
     // SimHits without energy loss are not recorded. 
     // not needed because of already done in sensitive detector
@@ -341,14 +370,11 @@ StatusCode sTgcFastDigitizer::execute() {
     for( int type=ftype;type<=ltype;++type ){
 
       // only produce wire hits for outer two stations
-      if( type == 2 && abs(m_idHelper->stationEta(layid)) < 3 ) continue;
-
-      // for debugging only treat pads 
-      //if( type != 0 ) continue;
+      if( type == 2 && abs(m_idHelperSvc->stgcIdHelper().stationEta(layid)) < 3 ) continue;
 
       // first create surface identifier
-      Identifier id = m_idHelper->channelID(parentId, m_idHelper->multilayer(layid), m_idHelper->gasGap(layid),type,1,m_checkIds);
-      ATH_MSG_VERBOSE("handling layer " << m_idHelperTool->toString(id) << "   type " << type );
+      Identifier id = m_idHelperSvc->stgcIdHelper().channelID(parentId, m_idHelperSvc->stgcIdHelper().multilayer(layid), m_idHelperSvc->stgcIdHelper().gasGap(layid),type,1,m_checkIds);
+      ATH_MSG_VERBOSE("handling layer " << m_idHelperSvc->toString(id) << "   type " << type );
       const Trk::PlaneSurface& surf = detEl->surface(id);
       Amg::Transform3D gToL = detEl->absTransform().inverse();
       Amg::Vector3D hpos(hit.globalPosition().x(),hit.globalPosition().y(),hit.globalPosition().z());
@@ -367,19 +393,15 @@ StatusCode sTgcFastDigitizer::execute() {
       Trk::LocalDirection LocDirection;
       surf.globalToLocalDirection(GloDire, LocDirection);
 
-      float inAngle_time = 90 - fabs( LocDirection.angleXZ() / CLHEP::degree);
-      float inAngle_space = 90 - fabs( LocDirection.angleYZ() / CLHEP::degree);
+      float inAngle_time = 90 - std::abs( LocDirection.angleXZ() / CLHEP::degree);
+      float inAngle_space = 90 - std::abs( LocDirection.angleYZ() / CLHEP::degree);
       if(inAngle_time > 90)  inAngle_time  = inAngle_time  -90.;
       if(inAngle_space > 90) inAngle_space = inAngle_space -90.;
 
 
 
       // bctagging
-//      static const float jitterInitial = 9999.;
       float jitter = 0;//jitterInitial; // calculated m_at central strip but also used in all the strips fired by the same hit 
-//       if(jitter > jitterInitial-0.1) {
-//         jitter = timeJitter(inAngle_time);
-//       }
 
       //const float stripPropagationTime = 3.3*CLHEP::ns/CLHEP::m * detEl->distanceToReadout(posOnSurf_strip, elemId); // 8.5*ns/m was used until MC10. 
       const float stripPropagationTime = 0.; // 8.5*ns/m was used until MC10. 
@@ -397,7 +419,6 @@ StatusCode sTgcFastDigitizer::execute() {
 	resolution = getResolution(inAngle_time);
 	sp = CLHEP::RandGauss::shoot(m_rndmEngine, hitOnSurface.x(), resolution);
       }
-      //ATH_MSG_DEBUG("slpos.z " << slpos.z() << ", ldir " << ldir.z() << ", scale " << scale << ", hitOnSurface.z " << hitOnSurface.z());
 
       
       Amg::Vector2D  posOnSurf(sp,hitOnSurface.y());
@@ -428,10 +449,10 @@ StatusCode sTgcFastDigitizer::execute() {
       m_sl  = hitHelper->GetLayer(simId);
       m_ss  = hitHelper->GetSide(simId);
       m_stype = type;
-      m_ieta = m_idHelper->stationEta(id);
-      m_iphi = m_idHelper->stationPhi(id);
-      m_iml  = m_idHelper->multilayer(id);
-      m_il  = m_idHelper->gasGap(id);
+      m_ieta = m_idHelperSvc->stgcIdHelper().stationEta(id);
+      m_iphi = m_idHelperSvc->stgcIdHelper().stationPhi(id);
+      m_iml  = m_idHelperSvc->stgcIdHelper().multilayer(id);
+      m_il  = m_idHelperSvc->stgcIdHelper().gasGap(id);
       m_ich = -99999;
       m_istr  = -99999;
       m_itype = -99999;
@@ -492,7 +513,7 @@ StatusCode sTgcFastDigitizer::execute() {
 
       int stripNumber = detEl->stripNumber(locHitPosOnSurf,id);
       if( stripNumber == -1 ){
-	ATH_MSG_WARNING("Failed to obtain strip number " << m_idHelperTool->toString(id) 
+	ATH_MSG_WARNING("Failed to obtain strip number " << m_idHelperSvc->toString(id) 
 			<< " pos " << posOnSurf.x() << " - " << hitOnSurface.x() << " z " << slpos.z() << " type " << type  ); 
 	m_exitcode = 2;
 	m_ntuple->Fill();
@@ -500,8 +521,8 @@ StatusCode sTgcFastDigitizer::execute() {
       }
 
       // create channel identifier
-      id = m_idHelper->channelID(parentId, m_idHelper->multilayer(id), m_idHelper->gasGap(id),type,stripNumber,m_checkIds);
-      ATH_MSG_VERBOSE(" Unsmeared hit id " << m_idHelperTool->toString(id) );
+      id = m_idHelperSvc->stgcIdHelper().channelID(parentId, m_idHelperSvc->stgcIdHelper().multilayer(id), m_idHelperSvc->stgcIdHelper().gasGap(id),type,stripNumber,m_checkIds);
+      ATH_MSG_VERBOSE(" Unsmeared hit id " << m_idHelperSvc->toString(id) );
 
       int& counts = hitsPerChannel[id];
       ++counts;
@@ -512,7 +533,7 @@ StatusCode sTgcFastDigitizer::execute() {
       // recalculate using smeared position
       stripNumber = detEl->stripNumber(posOnSurf,id);
       if( stripNumber == -1 ){
-	ATH_MSG_WARNING("Failed to obtain strip number " << m_idHelperTool->toString(id) 
+	ATH_MSG_WARNING("Failed to obtain strip number " << m_idHelperSvc->toString(id) 
 			<< " pos " << posOnSurf.x() << " - " << hitOnSurface.x() << " z " << slpos.z() << " type " << type  ); 
 	m_exitcode = 2;
 	m_ntuple->Fill();
@@ -520,18 +541,18 @@ StatusCode sTgcFastDigitizer::execute() {
       }
 
       // create channel identifier
-      id = m_idHelper->channelID(parentId, m_idHelper->multilayer(id), m_idHelper->gasGap(id),type,stripNumber,m_checkIds);
+      id = m_idHelperSvc->stgcIdHelper().channelID(parentId, m_idHelperSvc->stgcIdHelper().multilayer(id), m_idHelperSvc->stgcIdHelper().gasGap(id),type,stripNumber,m_checkIds);
 
-      if( type != m_idHelper->channelType(id) ) ATH_MSG_WARNING(" bad type: in  "  << type << " from id " << m_idHelper->channelType(id)
-								<< " strip " << stripNumber << " from id " << m_idHelper->channel(id)
-								<< " eta " <<  m_idHelper->stationEta(id)
+      if( type != m_idHelperSvc->stgcIdHelper().channelType(id) ) ATH_MSG_WARNING(" bad type: in  "  << type << " from id " << m_idHelperSvc->stgcIdHelper().channelType(id)
+								<< " strip " << stripNumber << " from id " << m_idHelperSvc->stgcIdHelper().channel(id)
+								<< " eta " <<  m_idHelperSvc->stgcIdHelper().stationEta(id)
 								<< " local pos " << slpos );
 
       // assign strip position to PRD for wires and pads
       if( type != 1 ){
 	Amg::Vector2D locpos(0,0);
 	if( !detEl->stripPosition(id,locpos ) ){
-	  ATH_MSG_WARNING("Failed to obtain local position for identifier " << m_idHelperTool->toString(id) );
+	  ATH_MSG_WARNING("Failed to obtain local position for identifier " << m_idHelperSvc->toString(id) );
 	  m_exitcode = 3;
 	  m_ntuple->Fill();
 	  continue; 
@@ -547,9 +568,9 @@ StatusCode sTgcFastDigitizer::execute() {
       if( type == 2 ){
 	const MuonGM::MuonChannelDesign* design = detEl->getDesign(id);
 	if( !design ){
-	  ATH_MSG_WARNING("Failed to get design for " << m_idHelperTool->toString(id) );
+	  ATH_MSG_WARNING("Failed to get design for " << m_idHelperSvc->toString(id) );
 	}else{
-	  errX = fabs(design->inputPitch)/sqrt(12);
+	  errX = std::abs(design->inputPitch)/std::sqrt(12);
 	}
       }else if( type == 1 ){
         errX = resolution;
@@ -558,7 +579,7 @@ StatusCode sTgcFastDigitizer::execute() {
 
 	const MuonGM::MuonPadDesign* design = detEl->getPadDesign(id);
 	if( !design ){
-	  ATH_MSG_WARNING("Failed to get design for " << m_idHelperTool->toString(id) );
+	  ATH_MSG_WARNING("Failed to get design for " << m_idHelperSvc->toString(id) );
 	}else{
 	  errX = design->channelWidth(posOnSurf,true)/sqrt(12);
 
@@ -573,10 +594,6 @@ StatusCode sTgcFastDigitizer::execute() {
       cov->setIdentity();
       (*cov)(0,0) = errX*errX;      
 
-//      ATH_MSG_DEBUG(" New hit " << m_idHelperTool->toString(id) << " chtype " << type << " lpos " << posOnSurf << " from truth "
-//                    << hitOnSurface << " error " << locErrMat->error(Trk::locX) << " m_pull " << (posOnSurf.x()-hitOnSurface.x())/locErrMat->error(Trk::locX) );
-
-      //sTgcPrepData* prd = new sTgcPrepData( id,hash,posOnSurf,rdoList,locErrMat,detEl);
       sTgcPrepData* prd = new sTgcPrepData( id,hash,posOnSurf,rdoList,cov,detEl, bctag);
 
       if(type!=1 || lastHit || !m_mergePrds) {
@@ -596,12 +613,12 @@ StatusCode sTgcFastDigitizer::execute() {
       m_sulx = posOnSurf.x();
       m_suly = posOnSurf.y();
       m_errx = errX;
-      m_ich = m_idHelper->channel(id);
+      m_ich = m_idHelperSvc->stgcIdHelper().channel(id);
       m_istr  = stripNumber;
-      m_itype = m_idHelper->channelType(id);
+      m_itype = m_idHelperSvc->stgcIdHelper().channelType(id);
       if( type == 0 ){
-        m_ipadeta = m_idHelper->padEta(id);
-        m_ipadphi = m_idHelper->padPhi(id);
+        m_ipadeta = m_idHelperSvc->stgcIdHelper().padEta(id);
+        m_ipadphi = m_idHelperSvc->stgcIdHelper().padPhi(id);
       }
 
       ATH_MSG_VERBOSE("Global hit: r " << hit.globalPosition().perp() << " phi " << hit.globalPosition().phi() << " z " << hit.globalPosition().z());
@@ -612,14 +629,7 @@ StatusCode sTgcFastDigitizer::execute() {
 
       ATH_MSG_VERBOSE(" Prd: local posOnSurf.x() " << posOnSurf.x() << " posOnSurf.y() " << posOnSurf.y() );
 
-      ATH_MSG_DEBUG(" hit:  " << m_idHelperTool->toString(id) << " hitx " << posOnSurf.x() << " residual " << posOnSurf.x() - hitOnSurface.x() << " hitOnSurface.x() " << hitOnSurface.x() << " errorx " << m_errx << " pull " << (posOnSurf.x() - hitOnSurface.x())/m_errx);
-
-//       const MuonClusterOnTrack* rot = m_muonClusterCreator->createRIO_OnTrack( *prd, hit.globalPosition() );
-//       if( rot ){
-// 	m_res  = rot->localParameters().get(Trk::locX)-hitOnSurface.x();
-// 	m_pull = m_res/rot->localErrorMatrix().error(Trk::locX);
-// 	delete rot;
-//       }
+      ATH_MSG_DEBUG(" hit:  " << m_idHelperSvc->toString(id) << " hitx " << posOnSurf.x() << " residual " << posOnSurf.x() - hitOnSurface.x() << " hitOnSurface.x() " << hitOnSurface.x() << " errorx " << m_errx << " pull " << (posOnSurf.x() - hitOnSurface.x())/m_errx);
 
       m_ntuple->Fill();
       // create SDO 
@@ -638,11 +648,10 @@ StatusCode sTgcFastDigitizer::execute() {
   if( msgLvl(MSG::DEBUG) ){
     std::map<Identifier,int>::const_iterator hit = hitsPerChannel.begin();
     std::map<Identifier,int>::const_iterator hit_end = hitsPerChannel.end();
-    msg(MSG::DEBUG) << " number of channels with hit " << hitsPerChannel.size() << " nhits " << nhits << std::endl;
+    ATH_MSG_DEBUG(" number of channels with hit " << hitsPerChannel.size() << " nhits " << nhits);
     for( ;hit!=hit_end;++hit ){
-      msg(MSG::DEBUG) << " " << m_idHelperTool->toString(hit->first) << " ->  " << hit->second << std::endl;
+      ATH_MSG_DEBUG(" " << m_idHelperSvc->toString(hit->first) << " ->  " << hit->second);
     }
-    msg(MSG::DEBUG) << endmsg;
   }
   std::string key = "STGC_Measurements";
   ATH_MSG_DEBUG(" Done! Total number of sTgc chambers with PRDS: " << prdContainer->numberOfCollections() << " key " << key);
@@ -654,11 +663,9 @@ StatusCode sTgcFastDigitizer::execute() {
 }
 
 StatusCode sTgcFastDigitizer::finalize() {
-  //m_ntuple_SimHit->Write();
   m_ntuple->Write();
   m_file->Write();
   m_file->Close();
-
   return StatusCode::SUCCESS;
 }
 
@@ -668,12 +675,11 @@ double sTgcFastDigitizer::getResolution(float inAngle_space) const
 {
   // 0 degree --> 0.18mm; 10 degree --> 
   const int NIndex = 2; 
-  //double Reso[NIndex] = {0.18, 0.20, 0.24};
   double Reso[NIndex] = {0.06, 0.30};
   double Angle[NIndex] = {0., 60.};
  
   int index = 1;
-  inAngle_space = fabs(inAngle_space);
+  inAngle_space = std::abs(inAngle_space);
   while(index<NIndex && inAngle_space>Angle[index]){
     index++;
   }
@@ -776,17 +782,16 @@ bool sTgcFastDigitizer::readFileOfTimeJitter()
   while(ifs.good()){
     ifs >> angle >> bins;
     if (ifs.eof()) break;
-    if( msgLvl(MSG::VERBOSE) ) msg(MSG::VERBOSE) << "readFileOfTimeJitter(): Timejitter, angle, Number of bins, prob. dist.: " << angle << " " << bins << " ";
+    if( msgLvl(MSG::VERBOSE) ) ATH_MSG_VERBOSE("readFileOfTimeJitter(): Timejitter, angle, Number of bins, prob. dist.: " << angle << " " << bins << " ");
     m_vecAngle_Time.resize(i + 1);
     for (int j = 0; j < 41/*bins*/; j++) {
       ifs >> prob;
       m_vecAngle_Time[i].push_back(prob);
       if( msgLvl(MSG::VERBOSE) ){
-	if( j == 0) msg(MSG::VERBOSE) << "readFileOfTimeJitter(): ";
-	msg(MSG::VERBOSE) << prob << " ";
+	if( j == 0) ATH_MSG_VERBOSE("readFileOfTimeJitter(): ");
+	ATH_MSG_VERBOSE(prob << " ");
       }
     }
-    if( msgLvl(MSG::VERBOSE) ) msg(MSG::VERBOSE) << endmsg;
     i++;
   }
   ifs.close();
diff --git a/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/sTgcFastDigitizer.h b/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/sTgcFastDigitizer.h
index 0b8ad55ed7452d32ef7f812c0a08ccb48419d4a8..ef8c6fa591aff5d8b15f30d6629e0fa89afe30f8 100644
--- a/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/sTgcFastDigitizer.h
+++ b/MuonSpectrometer/MuonDigitization/MuonFastDigitization/src/sTgcFastDigitizer.h
@@ -1,33 +1,29 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef MUONDIGITIZATION_sTgcFASTDIGITIZER_H
 #define MUONDIGITIZATION_sTgcFASTDIGITIZER_H 
 
-#include "GaudiKernel/ToolHandle.h"
-#include "GaudiKernel/ServiceHandle.h"
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "GaudiKernel/ServiceHandle.h"
+#include "GaudiKernel/ToolHandle.h"
+
 #include "StoreGate/StoreGateSvc.h"
 #include "StoreGate/WriteHandleKey.h"
-
-//Random
 #include "CLHEP/Random/RandomEngine.h"
 #include "AthenaKernel/IAtRndmGenSvc.h"
 #include "CLHEP/Random/RandGauss.h"
-#include "MuonIdHelpers/MuonIdHelperTool.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h"
 
 class TTree;
 class TFile;
 
-class sTgcIdHelper;
 namespace MuonGM {
   class MuonDetectorManager;
 }
 
-class IAtRndmGenSvc;
-class ActiveStoreSvc;
 class MuonSimDataCollection;
 
 class sTgcFastDigitizer : public AthAlgorithm {
@@ -35,7 +31,7 @@ class sTgcFastDigitizer : public AthAlgorithm {
  public:
 
   sTgcFastDigitizer(const std::string& name, ISvcLocator* pSvcLocator);
-  ~sTgcFastDigitizer();
+  ~sTgcFastDigitizer()=default;
     
   StatusCode initialize();
   StatusCode execute();
@@ -46,12 +42,10 @@ class sTgcFastDigitizer : public AthAlgorithm {
 
  private:
   const MuonGM::MuonDetectorManager* m_detManager;
-  const sTgcIdHelper* m_idHelper;
 
   int m_channelTypes; // 1 -> strips, 2 -> strips+wires, 3 -> strips/wires/pads
 
   TFile* m_file;
-  //TTree* m_ntuple_SimHit;
   TTree* m_ntuple;
   float  m_dlx;  //  local position simhit in GeoModel frame
   float  m_dly;
@@ -116,12 +110,11 @@ class sTgcFastDigitizer : public AthAlgorithm {
   /**
      Reads parameters for intrinsic time response from timejitter.dat.
   */
-  bool  readFileOfTimeJitter();
-  bool  m_mergePrds;
-
+  bool readFileOfTimeJitter();
+  bool m_mergePrds;
 
  protected:
-  ToolHandle <Muon::MuonIdHelperTool> m_idHelperTool;      // IdHelperTool
+  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
   ToolHandle <Muon::IMuonClusterOnTrackCreator> m_muonClusterCreator;
   ServiceHandle <IAtRndmGenSvc> m_rndmSvc;      // Random number service
   CLHEP::HepRandomEngine *m_rndmEngine;    // Random number engine used - not init in SiDigitization
@@ -137,7 +130,6 @@ class sTgcFastDigitizer : public AthAlgorithm {
   double m_energyDepositThreshold;
   bool   m_checkIds;
   std::vector<std::vector<float> > m_vecAngle_Time;
-
 };
 
 #endif // MUONDIGITIZATION_sTgcDIGITIZER_H
diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitMaker.cxx b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitMaker.cxx
index 8b4b770650b452a51a307b1b643908002f2c7594..83e62ecae4c011e17d55f21736a8dad8db1006a9 100644
--- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitMaker.cxx
+++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitMaker.cxx
@@ -1,23 +1,9 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-////////////////////////////////////////////////////////////////////////////////
-//-----------------------------------------------------
-// sTgcDigitMaker.cxx
-//-----------------------------------------------------
-//
-// Authors:  Nectarios Benekos  <nectarios.benekos@cern.ch>
-//           Jiaming Yu  <jiaming.yu@cern.ch>  
-////////////////////////////////////////////////////////////////////////////////
-
-
- 
 #include "sTGC_Digitization/sTgcDigitMaker.h"
 
-#include <iostream>
-#include <fstream>
-
 #include "MuonDigitContainer/sTgcDigitCollection.h"
 #include "MuonSimEvent/sTGCSimHit.h"
 #include "MuonSimEvent/sTgcHitIdHelper.h"
@@ -27,10 +13,8 @@
 #include "MuonReadoutGeometry/sTgcReadoutElement.h"
 #include "TrkEventPrimitives/LocalDirection.h"
 #include "TrkSurfaces/Surface.h"
-
 #include "GaudiKernel/MsgStream.h"
 #include "PathResolver/PathResolver.h"
-
 #include "CLHEP/Units/SystemOfUnits.h"
 #include "CLHEP/Random/RandomEngine.h"
 #include "CLHEP/Random/RandFlat.h"
@@ -40,6 +24,8 @@
 
 #include "TF1.h" 
 #include <cmath>
+#include <iostream>
+#include <fstream>
 
 //---------------------------------------------------
 //  Constructor and Destructor
@@ -133,7 +119,7 @@ sTgcDigitCollection* sTgcDigitMaker::executeDigi(const sTGCSimHit* hit, const fl
   if(energyDeposit==0.) return 0;
 
   //////////  convert ID for this digitizer system 
-  sTgcSimIdToOfflineId simToOffline(*m_idHelper);  
+  sTgcSimIdToOfflineId simToOffline(m_idHelper);  
   int simId = hit->sTGCId();
   Identifier layid = simToOffline.convert(simId);
   ATH_MSG_VERBOSE("sTgc hit:  time " << hit->globalTime() << " position " << hit->globalPosition().x() << "  " << hit->globalPosition().y() << "  " << hit->globalPosition().z() << " mclink " << hit->particleLink() << " PDG ID " << hit->particleEncoding() );
diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx
index 36b207538b8f12df4ebd7db8c9c43f1c63d07b56..2d3c42d5d3a61554d6f7345a93cdf24ad4a26570 100644
--- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx
+++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx
@@ -439,7 +439,7 @@ StatusCode sTgcDigitizationTool::doDigitization(const EventContext& ctx) {
       else {
           msg(MSG::DEBUG) << "This hit came from the in time bunch." << endmsg;
       }
-      sTgcSimIdToOfflineId simToOffline(m_idHelperSvc->stgcIdHelper());
+      sTgcSimIdToOfflineId simToOffline(&m_idHelperSvc->stgcIdHelper());
       const int idHit = hit.sTGCId();
       ATH_MSG_VERBOSE("Hit ID " << idHit );
       Identifier layid = simToOffline.convert(idHit);
diff --git a/MuonSpectrometer/MuonGeoModelTest/MuonGeoModelTest/MuonHitRelocation.h b/MuonSpectrometer/MuonGeoModelTest/MuonGeoModelTest/MuonHitRelocation.h
index 625fcc769fd4f2573ef2940549721fde0bd7dcff..875880c81cb1dd6c85b548ca0b1c82f71250ad56 100644
--- a/MuonSpectrometer/MuonGeoModelTest/MuonGeoModelTest/MuonHitRelocation.h
+++ b/MuonSpectrometer/MuonGeoModelTest/MuonGeoModelTest/MuonHitRelocation.h
@@ -12,23 +12,19 @@
 #include "MuonSimEvent/TgcHitIdHelper.h"
 #include "MuonSimEvent/CscHitIdHelper.h"
 #include "MuonSimEvent/sTgcHitIdHelper.h"
-#include "MuonSimEvent/sTgcSimIdToOfflineId.h"
-#include "MuonSimEvent/MM_SimIdToOfflineId.h"
 #include "MuonSimEvent/MicromegasHitIdHelper.h"
 #include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
 // Histograms quantities related to G4 Hits in the Atlas
 // Detector.  Used to validate GeoModel + much more.
 
-
 class MuonHitRelocation: public AthAlgorithm {
 public:
 
     MuonHitRelocation(const std::string& name, ISvcLocator* pSvcLocator);
     ~MuonHitRelocation();
-    StatusCode  initialize();
-    StatusCode  execute();
-    StatusCode  finalize();
+    StatusCode initialize();
+    StatusCode execute();
     long getIntStName(std::string stName) const;
 
 private:
diff --git a/MuonSpectrometer/MuonGeoModelTest/src/MuonHitRelocation.cxx b/MuonSpectrometer/MuonGeoModelTest/src/MuonHitRelocation.cxx
index 97e4e01a4a952be4b86900aa28da1d45a74040b7..d6c7ad5c1b7781ee1bd0ea471037e16c599cddac 100644
--- a/MuonSpectrometer/MuonGeoModelTest/src/MuonHitRelocation.cxx
+++ b/MuonSpectrometer/MuonGeoModelTest/src/MuonHitRelocation.cxx
@@ -566,13 +566,6 @@ StatusCode MuonHitRelocation::execute() {
   //-------------------------------------------------------------------------------------------------------
   return StatusCode::SUCCESS;
 }
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
-
-StatusCode MuonHitRelocation::finalize() {
-
-  ATH_MSG_INFO( "GOODBYE from MuonHitRelocation"  );
-  return StatusCode::SUCCESS;
-}
 
 long MuonHitRelocation::getIntStName(std::string stName) const
 {
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h b/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
index 7012d0fdfefcdfed2f71df86136933bec3f3d526..2788cf0e3d431010c9c404be7c033b39553e6aba 100644
--- a/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 // Overlaying RDOs from two different events for InDet subdetectors.
@@ -11,25 +11,20 @@
 #ifndef CSCOVERLAY_CSCOVERLAY_H
 #define CSCOVERLAY_CSCOVERLAY_H
 
-
-#include "GaudiKernel/ToolHandle.h"
 #include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "GaudiKernel/ServiceHandle.h"
+#include "GaudiKernel/ToolHandle.h"
 
 #include "MuonRDO/CscRawDataContainer.h"
-
 #include "CscCalibTools/ICscCalibTool.h"
 #include "MuonCSC_CnvTools/ICSC_RDO_Decoder.h"
-
 #include "AthenaKernel/IAthRNGSvc.h"
-
-#include "MuonIdHelpers/MuonIdHelperTool.h"
+#include "MuonIdHelpers/IMuonIdHelperSvc.h"
 
 #include <vector>
 #include <string>
 #include <map>
 
-class CscIdHelper;
-
 namespace CLHEP {
   class HepRandomEngine;
 }
@@ -94,8 +89,7 @@ private:
   SG::WriteHandleKey<CscRawDataContainer> m_outputKey{this,"OutputKey","CSCRDO",""};
 
   Gaudi::Property<bool> m_isDataOverlay{this, "isDataOverlay", false, ""};
-  ToolHandle<Muon::MuonIdHelperTool> m_muonIdHelperTool{this, "idHelper", 
-    "Muon::MuonIdHelperTool/MuonIdHelperTool", "Handle to the MuonIdHelperTool"};
+  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
   ToolHandle<ICscCalibTool> m_cscCalibTool{this, "CalibTool", "CscCalibTool", ""};
   ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool{this, "CscRdoDecoderTool", "Muon::CscRDO_Decoder", ""};
 
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx b/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx
index 65f99441a7705599d4bb818500762d8226f5470f..74304be5f72f1cb05f4e52cd398fcccb5f31f82f 100644
--- a/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx
@@ -1,14 +1,11 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "CscOverlay/CscOverlay.h"
 
 #include "StoreGate/ReadHandle.h"
 #include "StoreGate/WriteHandle.h"
-
-#include "MuonIdHelpers/CscIdHelper.h"
-
 #include "AthenaKernel/RNGWrapper.h"
 #include "CLHEP/Random/RandomEngine.h"
 #include "CLHEP/Random/RandGauss.h"
@@ -19,18 +16,13 @@ namespace {
 
 //================================================================
 CscOverlay::CscOverlay(const std::string &name, ISvcLocator *pSvcLocator) :
-  AthReentrantAlgorithm(name, pSvcLocator)
-{
+  AthReentrantAlgorithm(name, pSvcLocator) {
 }
 
 //================================================================
-StatusCode CscOverlay::initialize()
-{
+StatusCode CscOverlay::initialize() {
   ATH_MSG_DEBUG("CscOverlay initialized");
-
-  /** access to the CSC Identifier helper */
-  ATH_CHECK( m_muonIdHelperTool.retrieve() );
-  ATH_MSG_DEBUG(" Found the MuonIdHelperTool. ");
+  ATH_CHECK(m_idHelperSvc.retrieve());
 
   /** CSC calibratin tool for the Condtiions Data base access */
   ATH_CHECK(m_cscCalibTool.retrieve());
@@ -202,7 +194,7 @@ StatusCode CscOverlay::overlayContainer(const CscRawDataContainer *bkgContainer,
         bool good = true;
         for (uint16_t j = 0; j < width; ++j) {
           const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(rdo.get(), j);
-          if (!m_muonIdHelperTool->cscIdHelper().valid(channelId)) {
+          if (!m_idHelperSvc->cscIdHelper().valid(channelId)) {
             ATH_MSG_WARNING("Invalid CSC Identifier! - skipping " << channelId);
             good = false;
             break;
@@ -388,7 +380,7 @@ void CscOverlay::mergeCollections(const CscRawDataCollection *bkgCollection,
           int stationName =  ( ( address & 0x00010000) >> 16 ) + 50;
           int stationEta  =  ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1;
           int stationPhi  =  ( ( address & 0x0000E000) >> 13 ) + 1;
-          Identifier me= m_muonIdHelperTool->cscIdHelper().elementID(stationName,stationEta,stationPhi);
+          Identifier me= m_idHelperSvc->cscIdHelper().elementID(stationName,stationEta,stationPhi);
           ATH_MSG_VERBOSE("stationName,Eta,Phi="<<stationName<<","<<stationEta<<","<<stationPhi<<" - me="<<me);
           bool good=true;
           for (unsigned int j=0; j<datum->width(); ++j) {
@@ -406,10 +398,10 @@ void CscOverlay::mergeCollections(const CscRawDataCollection *bkgCollection,
               }
             }
             insertedstrips.insert(strip);//for checks
-            Identifier mechan= m_muonIdHelperTool->cscIdHelper().channelID(me,chamberLayer,wireLayer,measuresPhi,strip);
+            Identifier mechan= m_idHelperSvc->cscIdHelper().channelID(me,chamberLayer,wireLayer,measuresPhi,strip);
             ATH_MSG_VERBOSE("mechan="<<mechan);
             const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(datum, j);
-            if(!(m_muonIdHelperTool->cscIdHelper().valid(channelId))) {
+            if(!(m_idHelperSvc->cscIdHelper().valid(channelId))) {
               ATH_MSG_WARNING("Invalid CSC Identifier in merge! - skipping " << channelId );
               good=false;
             }
@@ -453,15 +445,12 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data,
   ATH_MSG_DEBUG("stripData<>() begin: gasLayer="<<gasLayer<<" spuID="<<spuID<<" isdata="<<isdata);
 
   samples.clear();
-  IdContext context = m_muonIdHelperTool->cscIdHelper().channel_context();
+  IdContext context = m_idHelperSvc->cscIdHelper().channel_context();
 
   uint32_t maxInt  = 2147483640;
   uint32_t address = maxInt;
   hash             = maxInt;
 
-  //int max = 192;
-  //if ( spuID == 4 || spuID == 9 ) max = 48;
-
   /** loop over the data in the SPU */
   std::vector<const CscRawData*>::const_iterator idata = data.begin();
   std::vector<const CscRawData*>::const_iterator edata = data.end();
@@ -471,9 +460,9 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data,
 
     /** find the strip Identifier given the strip hash ID */
     Identifier stripId;
-    m_muonIdHelperTool->cscIdHelper().get_id(hashOffset, stripId, &context);
-    unsigned int strip = static_cast<unsigned int> ( m_muonIdHelperTool->cscIdHelper().strip( stripId ) );
-    int layer          = m_muonIdHelperTool->cscIdHelper().wireLayer( stripId );
+    m_idHelperSvc->cscIdHelper().get_id(hashOffset, stripId, &context);
+    unsigned int strip = static_cast<unsigned int> ( m_idHelperSvc->cscIdHelper().strip( stripId ) );
+    int layer          = m_idHelperSvc->cscIdHelper().wireLayer( stripId );
     uint16_t width = datum->width();
 
     /** create the map only layer by layer
diff --git a/MuonSpectrometer/MuonSimEvent/MuonSimEvent/MM_SimIdToOfflineId.h b/MuonSpectrometer/MuonSimEvent/MuonSimEvent/MM_SimIdToOfflineId.h
index 03d2d1b7f1575f63295ed6e15245491c91a6e1bc..10ae4b0c9db22d01c487aca2825c4bd928861a7e 100644
--- a/MuonSpectrometer/MuonSimEvent/MuonSimEvent/MM_SimIdToOfflineId.h
+++ b/MuonSpectrometer/MuonSimEvent/MuonSimEvent/MM_SimIdToOfflineId.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 MM_SIMIDTOOFFLINEID_H
@@ -9,16 +9,14 @@
 #include "MuonIdHelpers/MmIdHelper.h"
 #include "Identifier/Identifier.h"
 
-
-
 struct MM_SimIdToOfflineId {
   
-  MM_SimIdToOfflineId( const MmIdHelper& idHelper ) : m_idHelper(&idHelper),m_simIdHelper(MicromegasHitIdHelper::GetHelper()) {}
+  MM_SimIdToOfflineId( const MmIdHelper* idHelper ) : m_idHelper(idHelper),m_simIdHelper(MicromegasHitIdHelper::GetHelper()) {}
   
   inline Identifier convert( int simId ) const;
   inline int convert (const Identifier & id) const;
 
-  const MmIdHelper*            m_idHelper;
+  const MmIdHelper* m_idHelper;
   MicromegasHitIdHelper* m_simIdHelper;
 };
 
diff --git a/MuonSpectrometer/MuonSimEvent/MuonSimEvent/sTgcSimIdToOfflineId.h b/MuonSpectrometer/MuonSimEvent/MuonSimEvent/sTgcSimIdToOfflineId.h
index 5196cb93dfb83aaa70354c23372a5a7eb0534fe4..63c13bef559ca9239bc42df7576489a25fbe488a 100644
--- a/MuonSpectrometer/MuonSimEvent/MuonSimEvent/sTgcSimIdToOfflineId.h
+++ b/MuonSpectrometer/MuonSimEvent/MuonSimEvent/sTgcSimIdToOfflineId.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 sTgcSIMIDTOOFFLINEID_H
@@ -11,13 +11,13 @@
 
 struct sTgcSimIdToOfflineId {
   
-  sTgcSimIdToOfflineId( const sTgcIdHelper& idHelper ) : m_idHelper(&idHelper),m_simIdHelper(sTgcHitIdHelper::GetHelper()) {}
+  sTgcSimIdToOfflineId( const sTgcIdHelper* idHelper ) : m_idHelper(idHelper),m_simIdHelper(sTgcHitIdHelper::GetHelper()) {}
   
   inline Identifier convert( int simId ) const;
   inline int convert (const Identifier & id) const;
 
-  const sTgcIdHelper*  m_idHelper;
-  sTgcHitIdHelper*     m_simIdHelper;
+  const sTgcIdHelper* m_idHelper;
+  sTgcHitIdHelper* m_simIdHelper;
 };
 
 
diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMSimHitVariables.cxx b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMSimHitVariables.cxx
index ebd5cea13fd3b44b49a9d0afddb2b5e40739672e..55b977b0e200a2f447430f9ffa8ab08e3c9fa890 100644
--- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMSimHitVariables.cxx
+++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMSimHitVariables.cxx
@@ -28,7 +28,7 @@ StatusCode MMSimHitVariables::fillVariables(const MuonGM::MuonDetectorManager* M
   
   // Get the MicroMegas Id hit helper
   MicromegasHitIdHelper* hitHelper = MicromegasHitIdHelper::GetHelper();
-  MM_SimIdToOfflineId simToOffline(*m_MmIdHelper);
+  MM_SimIdToOfflineId simToOffline(m_MmIdHelper);
 
   if(nswContainer->size()==0) ATH_MSG_WARNING(" MMSimHit empty ");
   for( auto it : *nswContainer ) {
diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCSimHitVariables.cxx b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCSimHitVariables.cxx
index fa778a002ad8d2fc0ce7850866f42754cdcbdcfc..3113b996a4b01374ed334dc7d7e7ea34c9a1a9d6 100644
--- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCSimHitVariables.cxx
+++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCSimHitVariables.cxx
@@ -26,7 +26,7 @@ StatusCode sTGCSimHitVariables::fillVariables(const MuonGM::MuonDetectorManager*
 
   // Get sTGC Helper
   sTgcHitIdHelper* hitHelper = sTgcHitIdHelper::GetHelper();
-  sTgcSimIdToOfflineId simToOffline (*m_sTgcIdHelper);
+  sTgcSimIdToOfflineId simToOffline(m_sTgcIdHelper);
   
   if(nswContainer->size()==0) ATH_MSG_WARNING(" sTGCSimHit empty ");
   for(auto it : *nswContainer) {
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.cxx
index b7ef92c01c310d0b959005377984fcb898b8e66c..7a1ed1069d273defd148eb20cbefb27c22e9b807 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.cxx
@@ -2,7 +2,6 @@
   Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// class header
 #include "SimHitCreatorMS.h"
 
 // ISF includes
@@ -101,8 +100,8 @@ StatusCode iFatras::SimHitCreatorMS::initialize()
 
   ATH_CHECK(detStore()->retrieve(m_muonMgr));
 
-  m_mmOffToSimId = new MM_SimIdToOfflineId(*(m_muonMgr->mmIdHelper())); 
-  m_stgcOffToSimId = new sTgcSimIdToOfflineId(*(m_muonMgr->stgcIdHelper())); 
+  m_mmOffToSimId = new MM_SimIdToOfflineId(&m_idHelperSvc->mmIdHelper());
+  m_stgcOffToSimId = new sTgcSimIdToOfflineId(&m_idHelperSvc->stgcIdHelper());
   
   // get measurement tool
   ATH_CHECK(m_measTool.retrieve());
@@ -228,8 +227,6 @@ void iFatras::SimHitCreatorMS::handle( const Incident& inc ) {
 //================ Track Creation Interface  =====================================
 void iFatras::SimHitCreatorMS::createHits(const ISF::ISFParticle& isp,
 					  const std::vector<Trk::HitInfo>& hits) const {
-
-  //std::cout <<"creating MS hits"<< hits.size()<< std::endl;
     
   // iterate and assign as well the layer
   std::vector<Trk::HitInfo>::const_iterator plIter    = hits.begin();
@@ -239,20 +236,16 @@ void iFatras::SimHitCreatorMS::createHits(const ISF::ISFParticle& isp,
     const Trk::TrackParameters* parm = (*plIter).trackParms;
     double timeInfo = (*plIter).time;
     const Trk::Layer*        currLay = m_extrapolator->trackingGeometry()->associatedLayer( parm->position() );
-    //std::cout <<"hit position:"<<parm->position()<<","<<currLay <<":"<<parm->position().mag()<< std::endl; 
-    //std::cout <<"hit timing:"<< timeInfo << std::endl;
 
     if (!currLay) continue;
 
     Identifier id(currLay->layerType());
  
     // NSW hits
-    if ( m_idHelperSvc->mdtIdHelper().is_mm(id) ||  m_idHelperSvc->mdtIdHelper().is_stgc(id) ) {   
+    if ( m_idHelperSvc->isMM(id) ||  m_idHelperSvc->issTgc(id) ) {   
       // hit ID
       int simID = offIdToSimId(id);
       // local position : at MTG layer ( corresponds to the middle of the gas gap ) 
-      //Trk::GlobalPosition locPosRot = HepGeom::RotateY3D(M_PI)*HepGeom::RotateZ3D(+M_PI/2.)*currLay->surfaceRepresentation().transform().inverse()*parm->position();
-      //std::cout << "local rotated:" << locPosRot << std::endl;
       // generating particle info
       double mom  = parm->momentum().mag();
       double mass = isp.mass();
@@ -269,12 +262,12 @@ void iFatras::SimHitCreatorMS::createHits(const ISF::ISFParticle& isp,
 				     isp.pdgCode(), unitMom, 
 				     energyDeposit, isp.barcode()) ;
       
-      if ( m_muonMgr->mmIdHelper()->is_mm(id) )  m_mmSimHitCollection->Insert(nswMMHit); 
+      if ( m_idHelperSvc->isMM(id) )  m_mmSimHitCollection->Insert(nswMMHit); 
       else  m_stgcSimHitCollection->Insert(nswsTGCHit); 
 
       ATH_MSG_VERBOSE("[ muhit ] NSW hit created.");           
 
-    }  else if (m_idHelperSvc->mdtIdHelper().is_mdt(id)) {    // (A) special treatment for MDTs to find closest channel and nearby hits
+    }  else if (m_idHelperSvc->isMdt(id)) {    // (A) special treatment for MDTs to find closest channel and nearby hits
       double pitch = 0.;
       // get the identifier 
       Identifier hid = m_measTool->nearestDetEl(currLay,parm,false,pitch);
@@ -338,7 +331,7 @@ bool iFatras::SimHitCreatorMS::createHit(const ISF::ISFParticle& isp,
 					 const Trk::Layer* lay,const Trk::TrackParameters* parm, Identifier id, double globalTimeEstimate, double /* pitch */, bool /* smear */) const
 {
    // MDT SECTION 
-   if (m_idHelperSvc->mdtIdHelper().is_mdt(id)) {
+   if (m_idHelperSvc->isMdt(id)) {
             
      int simId = m_mdtHitIdHelper->BuildMdtHitId(m_idHelperSvc->mdtIdHelper().stationNameString(m_idHelperSvc->mdtIdHelper().stationName(id)),
 						 m_idHelperSvc->mdtIdHelper().stationPhi(id), m_idHelperSvc->mdtIdHelper().stationEta(id),
@@ -379,7 +372,7 @@ bool iFatras::SimHitCreatorMS::createHit(const ISF::ISFParticle& isp,
      } else {
        return false;
      }
-  } else if (m_idHelperSvc->rpcIdHelper().is_rpc(id)) { 
+  } else if (m_idHelperSvc->isRpc(id)) { 
     // local position from the rpc's
     const Amg::Vector3D localPos = m_muonMgr->getRpcReadoutElement(id)->globalToLocalCoords(parm->position(),id);
     int simId = m_rpcHitIdHelper->BuildRpcHitId(m_idHelperSvc->rpcIdHelper().stationNameString(m_idHelperSvc->rpcIdHelper().stationName(id)),
@@ -397,7 +390,7 @@ bool iFatras::SimHitCreatorMS::createHit(const ISF::ISFParticle& isp,
     RPCSimHit rpcHit = RPCSimHit(simId,globalTimeEstimate, localPos, isp.barcode(), localPos, energyDeposit,1.,isp.pdgCode(),isp.momentum().mag() ) ; 
     m_rpcSimHitCollection->Insert(rpcHit); 
 
-  } else if (m_idHelperSvc->tgcIdHelper().is_tgc(id) && !m_idHelperSvc->tgcIdHelper().isStrip(id) ) { 
+  } else if (m_idHelperSvc->isTgc(id) && !m_idHelperSvc->tgcIdHelper().isStrip(id) ) { 
     
     // take eta hits only
     // local position
@@ -419,7 +412,7 @@ bool iFatras::SimHitCreatorMS::createHit(const ISF::ISFParticle& isp,
     // a new simhit
     TGCSimHit tgcHit = TGCSimHit(simId,globalTimeEstimate, localPos, localDir, isp.barcode(), energyDeposit, stepLength ) ;
     m_tgcSimHitCollection->Insert(tgcHit); 
-  } else if (m_idHelperSvc->cscIdHelper().is_csc(id)) { 
+  } else if (m_idHelperSvc->isCsc(id)) { 
     // one of eta/phi hits only
     
     Amg::Vector3D dir(parm->momentum().normalized());
@@ -463,7 +456,7 @@ bool iFatras::SimHitCreatorMS::createHit(const ISF::ISFParticle& isp,
 
 int iFatras::SimHitCreatorMS::offIdToSimId(Identifier id) const{
 
-  if ( m_muonMgr->mmIdHelper()->is_mm(id) ) {
+  if (m_idHelperSvc->isMM(id)) {
   
     int simID = m_mmOffToSimId->convert(id);
 
@@ -473,15 +466,13 @@ int iFatras::SimHitCreatorMS::offIdToSimId(Identifier id) const{
     if ( check_id != id ) {
 
       ATH_MSG_WARNING("MM Id conversion error!");
-      ATH_MSG_WARNING(m_muonMgr->mmIdHelper()->print_to_string(id));
-      ATH_MSG_WARNING(m_muonMgr->mmIdHelper()->print_to_string(check_id));
+      ATH_MSG_WARNING(m_idHelperSvc->mmIdHelper().print_to_string(id));
+      ATH_MSG_WARNING(m_idHelperSvc->mmIdHelper().print_to_string(check_id));
 
     }
 
     return simID;
-  }
-
-  if ( m_muonMgr->stgcIdHelper()->is_stgc(id) ) {
+  } else if (m_idHelperSvc->issTgc(id)) {
       
     int simID = m_stgcOffToSimId->convert(id);
 
@@ -491,8 +482,8 @@ int iFatras::SimHitCreatorMS::offIdToSimId(Identifier id) const{
     if ( check_id != id ) {
 
       ATH_MSG_WARNING("sTGC Id conversion error!");
-      ATH_MSG_WARNING(m_muonMgr->stgcIdHelper()->print_to_string(id));
-      ATH_MSG_WARNING(m_muonMgr->stgcIdHelper()->print_to_string(check_id));
+      ATH_MSG_WARNING(m_idHelperSvc->stgcIdHelper().print_to_string(id));
+      ATH_MSG_WARNING(m_idHelperSvc->stgcIdHelper().print_to_string(check_id));
 
     }
 
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.h
index 0397b38c4ebefca6ba63b42fe99036763da0d417..e527cc4dfd59e54cc851192ebfb5d31c1bf1cfee 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.h
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.h
@@ -46,8 +46,8 @@ namespace ISF {
     class ISFParticle;
 }
 
-struct MM_SimIdToOfflineId;
-struct sTgcSimIdToOfflineId;
+class MM_SimIdToOfflineId;
+class sTgcSimIdToOfflineId;
 
 namespace iFatras 
 {
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMLoadVariables.h b/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMLoadVariables.h
index 7a9045dd0356e675fe83e404e56d86b90d7d5b1d..a5d34a11aeaead04ac109ca97f36bb76c2ec6444 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMLoadVariables.h
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/TrigT1NSWSimTools/MMLoadVariables.h
@@ -1,20 +1,17 @@
 /*
-  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 MMLOADVARIABLES_H
 #define MMLOADVARIABLES_H
 
+#include "MMT_struct.h" //for digitWrapper, hitData_key, hitData_entry, evInf_entry
+#include "AthenaBaseComps/AthMsgStreamMacros.h"
 
-//C++ language libraries
 #include <map>
 #include <vector>
 #include <string>
 
-#include "MMT_struct.h" //for digitWrapper, hitData_key, hitData_entry, evInf_entry
-#include "AthenaBaseComps/AthMsgStreamMacros.h"
-
-//forward declarations
 class MsgStream;
 class MmIdHelper;
 class MmDigit;
@@ -27,13 +24,12 @@ namespace MuonGM {
   class MuonDetectorManager;
 }
 
-
   class MMLoadVariables {
 
   public:
 
     MMLoadVariables(StoreGateSvc* evtStore, const MuonGM::MuonDetectorManager* detManager, const MmIdHelper* idhelper, MMT_Parameters *par);
-   ~MMLoadVariables();
+   ~MMLoadVariables()=default;
 
     void getMMDigitsInfo(std::vector<digitWrapper>& entries, std::map<hitData_key,hitData_entry>& Hits_Data_Set_Time, std::map<int,evInf_entry>& Event_Info);
     //Import_Athena..._.m stuff
@@ -162,9 +158,9 @@ namespace MuonGM {
     
     //
 
-    const MuonGM::MuonDetectorManager* m_detManager{};        //!< MuonDetectorManager
-    const MmIdHelper*                  m_MmIdHelper{};        //!< MM offline Id helper
-    StoreGateSvc*                      m_evtStore{};
+    const MuonGM::MuonDetectorManager* m_detManager;        //!< MuonDetectorManager
+    const MmIdHelper* m_MmIdHelper;        //!< MM offline Id helper
+    StoreGateSvc* m_evtStore;
     MMT_Parameters* m_par{};
     bool m_striphack{};
     std::string getWedgeType(const MmDigitContainer *nsw_MmDigitContainer);
diff --git a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMLoadVariables.cxx b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMLoadVariables.cxx
index a0613dfcb3cbf9cd37ee3f3a4e21193a11a72a9e..9f8c6b7b50c6c48334c9bcfaa91ee0ebeea4bc6e 100644
--- a/Trigger/TrigT1/TrigT1NSWSimTools/src/MMLoadVariables.cxx
+++ b/Trigger/TrigT1/TrigT1NSWSimTools/src/MMLoadVariables.cxx
@@ -1,35 +1,30 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// local includes
 #include "TrigT1NSWSimTools/MMLoadVariables.h"
+
 #include "TrigT1NSWSimTools/MMT_Finder.h"
 #include "TrigT1NSWSimTools/MMT_Fitter.h"
-
 #include "MuonDigitContainer/MmDigitContainer.h"
 #include "MuonSimEvent/MicromegasHitIdHelper.h"
 #include "MuonSimEvent/MM_SimIdToOfflineId.h"
-
 #include "AtlasHepMC/GenEvent.h"
 #include "GeneratorObjects/McEventCollection.h"
 #include "TrackRecord/TrackRecordCollection.h"
 #include "MuonSimData/MuonSimDataCollection.h"
-
-// //Event info includes
 #include "EventInfo/EventInfo.h"
 #include "EventInfo/EventID.h"
-//
 #include "StoreGate/StoreGateSvc.h"
+#include "MuonIdHelpers/MmIdHelper.h"
+
 #include "TVector3.h"
 #include <cmath>
 
-
 using std::map;
 using std::vector;
 using std::string;
 
-
 MMLoadVariables::MMLoadVariables(StoreGateSvc* evtStore, const MuonGM::MuonDetectorManager* detManager, const MmIdHelper* idhelper, MMT_Parameters *par):
       m_msg("MMLoadVariables"){
       m_par = par;
@@ -38,9 +33,6 @@ MMLoadVariables::MMLoadVariables(StoreGateSvc* evtStore, const MuonGM::MuonDetec
       m_MmIdHelper = idhelper;
 }
 
-MMLoadVariables::~MMLoadVariables() {
-}
-
     void MMLoadVariables::getMMDigitsInfo(vector<digitWrapper>& entries, map<hitData_key,hitData_entry>& Hits_Data_Set_Time, map<int,evInf_entry>& Event_Info){
       //*******Following MuonPRD code to access all the variables**********
 
@@ -237,7 +229,7 @@ MMLoadVariables::~MMLoadVariables() {
 
 
             MicromegasHitIdHelper* hitHelper = MicromegasHitIdHelper::GetHelper();
-            MM_SimIdToOfflineId simToOffline(*m_MmIdHelper);
+            MM_SimIdToOfflineId simToOffline(m_MmIdHelper);
             for( auto it2 : *nswContainer ) { //get hit variables
               const MMSimHit hit = it2;
               fillVars.NSWMM_globalTime.push_back(hit.globalTime());