diff --git a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/CMakeLists.txt b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/CMakeLists.txt
index 38c19ec38f83cd12cbee566c03a2618abe2c948e..899ae1db0bdfc9ae65fd83f9d07b80a59f6e5971 100644
--- a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/CMakeLists.txt
+++ b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_depends_on_subdirs( PUBLIC
                           MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools
                           MuonSpectrometer/MuonCnv/MuonCSC_CnvTools
                           MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondInterface
+                          MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondData
                           MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry
                           MuonSpectrometer/MuonIdHelpers
                           MuonSpectrometer/MuonRDO )
@@ -30,7 +31,7 @@ atlas_add_component( CscCalibAlgs
                      src/*.cxx
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthContainers StoreGateLib SGtests GaudiKernel CscCalibData MuonCondInterface MuonReadoutGeometry MuonIdHelpersLib MuonRDO )
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthContainers StoreGateLib SGtests GaudiKernel CscCalibData MuonCondInterface MuonCondData MuonReadoutGeometry MuonIdHelpersLib MuonRDO )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
diff --git a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcPed.cxx b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcPed.cxx
index 792bf7b7ddb6d2e5d23351a4a26cd7de1630e578..3ec362f744b4298a0d46d0072f6c7967b746ab2c 100644
--- a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcPed.cxx
+++ b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcPed.cxx
@@ -42,7 +42,6 @@ namespace MuonCalib {
     m_cscId(NULL),
     m_muon_mgr(NULL),
     m_chronoSvc(0),
-    m_cscCoolStrSvc("MuonCalib::CscCoolStrSvc",name),
     m_cscRdoDecoderTool ("Muon::CscRDO_Decoder"),
     m_maxStripHash(0),
     m_numBits(12),
@@ -127,11 +126,7 @@ namespace MuonCalib {
       return StatusCode::FAILURE;
     }
 
-    if(m_cscCoolStrSvc.retrieve().isFailure())
-    {
-      mLog << MSG::FATAL << "Unable to retrieve CscCoolStrSvc" << endmsg;
-      return StatusCode::FAILURE;
-    }
+    ATH_CHECK(m_readKey.initialize());
 
     sc = service("ChronoStatSvc",m_chronoSvc);    
     if(sc.isFailure())
@@ -812,6 +807,9 @@ namespace MuonCalib {
       if(m_debug) mLog << MSG::DEBUG <<  "Begining loop over all " << m_peds->size()  
         << " channels data was collected for." << endmsg;
 
+      SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey}; 
+      const CscCondDbData* readCdo{*readHandle};
+
       //form is:hashID chamber LayerOrientationStrip  parametervalue parametervalue 
       CscCalibResultCollection::iterator pedItr = m_peds->begin();
       CscCalibResultCollection::iterator pedEnd = m_peds->end();
@@ -830,7 +828,7 @@ namespace MuonCalib {
         string onlineHexId;
 
         //Online ids are same as "string ids" used internally in COOL db.
-        m_cscCoolStrSvc->indexToStringId(hashId, "CHANNEL", onlineHexId);
+        readCdo->indexToStringId(hashId, "CHANNEL", onlineHexId);
 
         if(m_debug) mLog << MSG::DEBUG << "we're on hash " << hashId << " with pedestal " << ped 
           << "and noise " << noise << endmsg;//<< " and threshold " << thold << endmsg;
@@ -903,6 +901,9 @@ namespace MuonCalib {
     //Outputs a single parameter in version 03-00
     void CscCalcPed::outputParameter3(const CscCalibResultCollection & results, ofstream & out){
 
+      SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey}; 
+      const CscCondDbData* readCdo{*readHandle};
+
       out << "\n";
       out << "<NEW_PAR> " << results.parName() << "\n";
       std::string idString;
@@ -914,7 +915,7 @@ namespace MuonCalib {
         double value = (*resItr)->value();
         std::string idString;
 
-        m_cscCoolStrSvc->indexToStringId(hashId, "CHANNEL", idString);
+        readCdo->indexToStringId(hashId, "CHANNEL", idString);
 
         out << idString << " " << value << "\n";
       }
diff --git a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcPed.h b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcPed.h
index a15ffaca85e1d62722f5d190205370d726a5e645..70202cd710ff07d413ef9ac31e4f160ff2b3505f 100644
--- a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcPed.h
+++ b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcPed.h
@@ -24,11 +24,12 @@ an RDO
 #include "TH1.h"
 #include "TH2.h"
 #include "TH2F.h"
-#include "MuonCondInterface/CscICoolStrSvc.h"
+#include "MuonCondData/CscCondDbData.h"
 
 class cscIdHelper;
 class TFile;
 class IdentifierHash;
+class CscCondDbData;
 //class ICscCalibTool;
 
 namespace Muon {
@@ -105,9 +106,9 @@ namespace MuonCalib{
       const CscIdHelper *m_cscId;
       const MuonGM::MuonDetectorManager * m_muon_mgr;
       IChronoStatSvc* m_chronoSvc;
-      ServiceHandle<CscICoolStrSvc> m_cscCoolStrSvc;
       ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool;
-    
+      SG::ReadCondHandleKey<CscCondDbData> m_readKey{this, "ReadKey", "CscCondDbData", "Key of CscCondDbData"};   
+ 
 
     /**Parameters input through joboptions*/
       std::string m_outputFileName;
diff --git a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcSlope.cxx b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcSlope.cxx
index 2b797b05de8bd431062784031ac69e536faa687e..551266f1b4d7ebfdcd3c235fc0a342d537503f03 100644
--- a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcSlope.cxx
+++ b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcSlope.cxx
@@ -48,7 +48,6 @@ namespace MuonCalib {
     AthAlgorithm(name,pSvcLocator),
     m_storeGate(NULL),
     m_cscCalibTool(NULL),
-    m_cscCoolStrSvc("MuonCalib::CscCoolStrSvc",name),
     m_cscRdoDecoderTool ("Muon::CscRDO_Decoder"),
     m_cscId(NULL),
     m_chronoSvc(NULL),
@@ -345,11 +344,7 @@ cerr << "done init services" << endl;
     }
     else
     {
-      if(m_cscCoolStrSvc.retrieve().isFailure())
-      {
-        mLog << MSG::FATAL << "Unable to retrieve CscCoolStrSvc" << endmsg;
-        return StatusCode::FAILURE;
-      }
+      ATH_CHECK(m_readKey.initialize());
     }
 
     /*for(unsigned int stripItr = 0 ; stripItr < m_maxStripHash+1; stripItr++)
@@ -465,8 +460,11 @@ cerr << "done init services" << endl;
     {
       mLog << MSG::FATAL << "Could not find event" << endmsg;
       return StatusCode::FAILURE;
-    }
+    }  
 
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey}; 
+    const CscCondDbData* readCdo{*readHandle};
+       
     //	mLog << MSG::INFO <<"Got raw data " << endmsg;
     //Loop over RODs (data from 2 chambers), each of which is in
     //a single CscRawaData collection
@@ -587,8 +585,7 @@ cerr << "done init services" << endl;
               }
               else{
 
-                if(StatusCode::SUCCESS != m_cscCoolStrSvc->getParameter(ped,"ped",stripHash))
-                {
+                if(!readCdo->readChannelPed(stripHash, ped).isSuccess()){
                   ped = 2054;
                   mLog << (m_ignoreDatabaseError ? MSG::WARNING :  MSG::ERROR) 
                     << "Failed at getting pedestal from COOL for hash " << stripHash << endmsg;
@@ -598,8 +595,7 @@ cerr << "done init services" << endl;
                 }
                 else
                   mLog << MSG::VERBOSE << "Got pedestal of " << ped << endmsg;
-                if(StatusCode::SUCCESS != m_cscCoolStrSvc->getParameter(
-                      noise, "noise", stripHash))
+                if(!readCdo->readChannelNoise(stripHash, noise).isSuccess())
                 {
                   noise = .001;
                   mLog << (m_ignoreDatabaseError ? MSG::WARNING : MSG::ERROR) << "Failed at getting noise from COOL for hash " << stripHash << endmsg;
@@ -1134,6 +1130,9 @@ cerr << "done init services" << endl;
 
     mLog << MSG::INFO << "Printing out parameter " << results.parName() << endmsg;
 
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey}; 
+    const CscCondDbData* readCdo{*readHandle};
+
     out << "\n";
     out << "<NEW_PAR> " << results.parName() << "\n";
     std::string idString;
@@ -1145,7 +1144,7 @@ cerr << "done init services" << endl;
       double value = (*resItr)->value();
       std::string idString;
 
-      m_cscCoolStrSvc->indexToStringId(hashId, "CHANNEL", idString);
+      readCdo->indexToStringId(hashId, "CHANNEL", idString);
 
       out << idString << " " << value << "\n";
     }
diff --git a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcSlope.h b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcSlope.h
index c917b0cd4fd1ec8572d3b67728c402efa90630ac..7fc2ea9ae59bd0d1ffd0dcdf48debee194de7def 100644
--- a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcSlope.h
+++ b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/src/CscCalcSlope.h
@@ -19,6 +19,7 @@ so that he can determine the validity of the constants
 #include "AthContainers/DataVector.h"
 #include "CscCalibData/CscCalibResultCollection.h"
 #include "MuonCSC_CnvTools/ICSC_RDO_Decoder.h"
+#include "MuonCondData/CscCondDbData.h"
 
 //temporary for tests
 #include "BipolarFit.h"
@@ -36,6 +37,7 @@ class ICscCalibTool;
 class cscIdHelper;
 class CscCalibResultCollection;
 class TGraphErrors;
+class CscCondDbData;
 
 namespace MuonCalib{
   /** 
@@ -83,10 +85,10 @@ namespace MuonCalib{
       StoreGateSvc * m_storeGate;
       //ITHistSvc * m_thistSvc;
       ICscCalibTool * m_cscCalibTool;
-      ServiceHandle<CscICoolStrSvc> m_cscCoolStrSvc;
       ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool;
       const CscIdHelper *m_cscId;
       IChronoStatSvc* m_chronoSvc;
+      SG::ReadCondHandleKey<CscCondDbData> m_readKey{this, "ReadKey", "CscCondDbData", "Key of CscCondDbData"};   
 
       /**Parameters input through joboptions*/
       std::string m_outputFileName;
diff --git a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools/src/CscCalibTool.cxx b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools/src/CscCalibTool.cxx
index 1a2ea618aa9d0b43efde218df6fa048ab0d29c73..43459b63e63d595b571554511271a613bf30fbf3 100644
--- a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools/src/CscCalibTool.cxx
+++ b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools/src/CscCalibTool.cxx
@@ -10,14 +10,13 @@
 
 #include <cmath>
 
-using namespace MuonCalib;
+//using namespace MuonCalib;
 using std::ostringstream;
 using std::setw;
 
 CscCalibTool::CscCalibTool
 ( const std::string& t, const std::string& n, const IInterface*  p )
-  : base_class(t,n,p),
-    m_cscCoolStrSvc("MuonCalib::CscCoolStrSvc", n)
+  : base_class(t,n,p)
 {
   declareProperty( "Slope", m_slope = 0.19 );
   declareProperty( "Noise", m_noise = 3.5 );
@@ -94,11 +93,8 @@ StatusCode CscCalibTool::initialize() {
   if (m_onlineHLT) {
     ATH_MSG_DEBUG( "T0BaseFolder and T0PhaseFolder are not loaded!!! HLT COOLDB does not have it!!");
   }
-  
-  if ( m_cscCoolStrSvc.retrieve().isFailure() ) {
-    ATH_MSG_FATAL ( "Unable to retrieve pointer to the CSC COLL Conditions Service" );
-    return StatusCode::FAILURE;
-  }
+ 
+  ATH_CHECK(m_readKey.initialize()); 
 
   m_messageCnt_t0base=0;
   m_messageCnt_t0phase=0;
@@ -115,10 +111,12 @@ float CscCalibTool::getPSlope(uint32_t stripHashId) const {
   
   float slope = m_slope;
   if ( m_readFromDatabase && m_slopeFromDatabase ) {
-     if ( !m_cscCoolStrSvc->getSlope(slope,stripHashId) ) {
-       ATH_MSG_WARNING ( " failed to access CSC conditions database - slope - " 
-                         << "strip hash id = " << stripHashId );
-     }
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+    const CscCondDbData* readCdo{*readHandle};
+    if(!readCdo->readChannelPSlope(stripHashId, slope).isSuccess()){
+      ATH_MSG_WARNING ( " failed to access CSC conditions database - slope - " 
+                        << "strip hash id = " << stripHashId );
+    }
   }
   ATH_MSG_DEBUG ( "The slope is " << slope << " for strip hash = " << stripHashId );
 
@@ -168,7 +166,9 @@ double CscCalibTool::stripNoise ( uint32_t stripHashId, const bool convert ) con
 
   float noise = m_noise;  /// ADC counts
   if ( m_readFromDatabase ) {
-    if ( !m_cscCoolStrSvc->getNoise(noise,stripHashId) ) {
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+    const CscCondDbData* readCdo{*readHandle};
+    if(!readCdo->readChannelNoise(stripHashId, noise).isSuccess()){
       ATH_MSG_DEBUG ( " failed to access CSC conditions database - noise - " 
                       << "strip hash id = " << stripHashId );
       noise = m_noise;
@@ -193,7 +193,9 @@ double CscCalibTool::stripRMS ( uint32_t stripHashId, const bool convert ) const
 
   float rms = m_noise;  /// ADC counts initialized with m_noise...
   if ( m_readFromDatabase ) {
-    if ( !m_cscCoolStrSvc->getRMS(rms,stripHashId) ) {
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+    const CscCondDbData* readCdo{*readHandle};
+    if(!readCdo->readChannelRMS(stripHashId, rms).isSuccess()){
       ATH_MSG_DEBUG ( " failed to access CSC conditions database - rms - " 
                       << "strip hash id = " << stripHashId );
       rms = m_noise;
@@ -219,7 +221,9 @@ double CscCalibTool::stripF001 ( uint32_t stripHashId, const bool convert ) cons
 
   float f001 = m_noise+m_pedestal;  /// ADC counts initialized with m_noise...
   if ( m_readFromDatabase ) {
-    if ( !m_cscCoolStrSvc->getF001(f001,stripHashId) ) {
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+    const CscCondDbData* readCdo{*readHandle};
+    if(!readCdo->readChannelF001(stripHashId, f001).isSuccess()){
       ATH_MSG_DEBUG ( " failed to access CSC conditions database - f001 - " 
                       << "strip hash id = " << stripHashId );
       f001 = 3.251*m_noise+m_pedestal;
@@ -243,7 +247,9 @@ double CscCalibTool::stripPedestal ( uint32_t stripHashId, const bool convert )
 
   float pedestal = m_pedestal;
   if ( m_readFromDatabase ) {
-    if ( !m_cscCoolStrSvc->getPedestal(pedestal,stripHashId) ) {
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+    const CscCondDbData* readCdo{*readHandle};
+    if(!readCdo->readChannelPed(stripHashId, pedestal).isSuccess()){
       ATH_MSG_DEBUG ( " failed to access CSC conditions database - pedestal - " 
                       << "strip hash id = " << stripHashId );
       pedestal = m_pedestal;
@@ -274,25 +280,17 @@ bool CscCalibTool::isGood ( uint32_t stripHashId ) const
 
 
 int CscCalibTool::stripStatusBit ( uint32_t stripHashId ) const {
-  
-  uint32_t status = 0x0;
+ 
+  int status = 0; 
   if ( m_readFromDatabase ) {
-    if ( !m_cscCoolStrSvc->getStatus(status,stripHashId) ) {
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+    const CscCondDbData* readCdo{*readHandle};
+    if(!readCdo->readChannelStatus(stripHashId, status).isSuccess())
       ATH_MSG_WARNING ( " failed to access CSC conditions database - status - "
                         << "strip hash id = " << stripHashId );
-
-      uint8_t status2 = 0x0;
-      if ( (m_cscCoolStrSvc->getStatus(status2,stripHashId)).isFailure() ) {
-        ATH_MSG_WARNING ( " failed to access CSC conditions database old way - status - "
-                          << "strip hash id = " << stripHashId );
-      }else{
-        ATH_MSG_INFO ( " Accessed CSC conditions database old way - status - "
-                          << "strip hash id = " << stripHashId );
-      }
-    } else {
-      ATH_MSG_VERBOSE ( "The status word is " << std::hex << status 
-                        << " for strip hash = " << std::dec << stripHashId );
-    }
+    else
+      ATH_MSG_INFO ( " Accessed CSC conditions database old way - status - "
+                        << "strip hash id = " << stripHashId );
   }
   return status;
 }
@@ -305,7 +303,9 @@ bool CscCalibTool::stripT0phase ( uint32_t stripHashId ) const {
 
   if (! m_onlineHLT ) {
     if ( m_readFromDatabase ) {
-      if ( !m_cscCoolStrSvc->getT0Phase(t0phase,stripHashId) ) {
+      SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+      const CscCondDbData* readCdo{*readHandle};
+      if(!readCdo->readChannelT0Phase(stripHashId, t0phase).isSuccess()){
         if (m_messageCnt_t0phase < 3) {
           ATH_MSG_WARNING ( " failed to access CSC conditions database - t0phase - "
                             << "strip hash id = " << stripHashId );
@@ -326,7 +326,9 @@ double CscCalibTool::stripT0base ( uint32_t stripHashId ) const {
   float t0base = 0.0;
   if (! m_onlineHLT ) {
     if ( m_readFromDatabase ) {
-      if ( !m_cscCoolStrSvc->getT0Base(t0base,stripHashId) ) {
+      SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+      const CscCondDbData* readCdo{*readHandle};
+      if(!readCdo->readChannelT0Base(stripHashId, t0base).isSuccess()){
         
         if (m_messageCnt_t0base < 3) {
           ATH_MSG_WARNING ( " failed to access CSC conditions database - t0base - "
@@ -526,7 +528,9 @@ double CscCalibTool::adcCountToFemtoCoulomb(uint32_t stripHashId, const float ad
   float slope    = getPSlope(stripHashId);
 
   if ( m_readFromDatabase ) {
-    if ( !m_cscCoolStrSvc->getPedestal(pedestal,stripHashId) ) {
+    SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+    const CscCondDbData* readCdo{*readHandle};
+    if(!readCdo->readChannelPed(stripHashId, pedestal).isSuccess()){
       ATH_MSG_DEBUG ( " failed to access CSC conditions database - pedestal - " 
                       << "strip hash id = " << stripHashId );
       pedestal = m_pedestal;
@@ -550,7 +554,9 @@ double CscCalibTool::adcCountToNumberOfElectrons(uint32_t stripHashId, const flo
   float pedestal = m_pedestal;
   float slope    = getPSlope(stripHashId);
   if ( m_readFromDatabase ) {
-     if ( !m_cscCoolStrSvc->getPedestal(pedestal,stripHashId) ) {
+     SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+     const CscCondDbData* readCdo{*readHandle};
+     if(!readCdo->readChannelPed(stripHashId, pedestal).isSuccess()){
        ATH_MSG_DEBUG ( "failed to access CSC Conditions database - pedestal - " 
                        << "strip hash id = " << stripHashId );
        pedestal = m_pedestal;
@@ -573,7 +579,9 @@ bool CscCalibTool::adcToCharge(const std::vector<uint16_t>& samples, uint32_t st
    float pedestal = m_pedestal;
    float slope    = getPSlope(stripHashId);
    if ( m_readFromDatabase ) {
-      if ( !m_cscCoolStrSvc->getPedestal(pedestal,stripHashId) ) {
+      SG::ReadCondHandle<CscCondDbData> readHandle{m_readKey};
+      const CscCondDbData* readCdo{*readHandle};
+      if(!readCdo->readChannelPed(stripHashId, pedestal).isSuccess()){
         ATH_MSG_DEBUG ( "failed to access CSC Conditions database - pedestal - " 
                         << "strip hash id = " << stripHashId );
         pedestal = m_pedestal; 
diff --git a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools/src/CscCalibTool.h b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools/src/CscCalibTool.h
index feb3e2154030750019c1defad42aa148cbcf82ef..f4b75d9a5503fdffe9e8eb446e12779f41265e54 100644
--- a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools/src/CscCalibTool.h
+++ b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools/src/CscCalibTool.h
@@ -19,8 +19,7 @@
 *******************************************************************************/
 
 #include "AthenaBaseComps/AthAlgTool.h"
-#include "MuonCondData/CscCondDataContainer.h"
-#include "MuonCondInterface/CscICoolStrSvc.h"
+#include "MuonCondData/CscCondDbData.h"
 #include "CscCalibTools/ICscCalibTool.h"
 #include "CxxUtils/checker_macros.h"
 
@@ -33,6 +32,8 @@
 #include <mutex>
 #include <vector>
 
+class CscCondDbData;
+
 class CscCalibTool : public extends<AthAlgTool, ICscCalibTool> {
 
 public:
@@ -143,7 +144,7 @@ private:
 
 protected:
 
-  ServiceHandle<MuonCalib::CscICoolStrSvc> m_cscCoolStrSvc;
+  SG::ReadCondHandleKey<CscCondDbData> m_readKey{this, "ReadKey", "CscCondDbData", "Key of CscCondDbData"};   
 
   bool  m_readFromDatabase;
   bool  m_slopeFromDatabase;