diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/ATLAS_CHECK_THREAD_SAFETY b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..53a9cf79e88feb1d2169937e2a22bd9c110f1543
--- /dev/null
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/MdtCalibrationFactory.h b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/MdtCalibrationFactory.h
index 8249c552f00c8c2e8318b089aad85e3ba0feff57..9774047889b266e0e3b712e50239c5060f92e34f 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/MdtCalibrationFactory.h
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/MdtCalibrationFactory.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef MUONCALIB_MDTCALIBRATIONFACTORY_H
@@ -28,25 +28,25 @@ Factory to create instances of correction functions
   class MdtCalibrationFactory {
     typedef CalibFunc::ParVec ParVec;
   public:
-    static IMdtBackgroundCorFunc* createBackgroundCorFunc( std::string name, 
+    static IMdtBackgroundCorFunc* createBackgroundCorFunc( const std::string& name, 
 							   const ParVec& pars);
 
-    static IMdtBFieldCorFunc*     createBFieldCorFunc( std::string name, 
+    static IMdtBFieldCorFunc*     createBFieldCorFunc( const std::string& name, 
 						       const ParVec& pars);
 
-    static IMdtSlewCorFunc*       createMdtSlewCorFunc( std::string name, 
+    static IMdtSlewCorFunc*       createMdtSlewCorFunc( const std::string& name, 
 							const ParVec& pars);
 
-    static IMdtTempCorFunc*       createMdtTempCorFunc( std::string name, 
+    static IMdtTempCorFunc*       createMdtTempCorFunc( const std::string& name, 
 							const ParVec& pars);
   
-    static IMdtWireSagCorFunc*    createMdtWireSagCorFunc( std::string name, 
+    static IMdtWireSagCorFunc*    createMdtWireSagCorFunc( const std::string& name, 
 							   const ParVec& pars);
   
-    static IRtRelation*           createRtRelation( std::string name, 
+    static IRtRelation*           createRtRelation( const std::string& name, 
 						    const ParVec& pars);
   
-    static IRtResolution*         createRtResolution( std::string name, 
+    static IRtResolution*         createRtResolution( const std::string& name, 
 						      const ParVec& pars);
   
   };
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/RtFromPoints.h b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/RtFromPoints.h
index bcdba65ee3b0ced8d336f95ba99d88991cdbb0ee..3d8ffd25297b21591640d0dad81f46b9508e4d79 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/RtFromPoints.h
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/RtFromPoints.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -42,7 +42,7 @@ public:
   ///< contains the drift time, x2 the corresponding radius;
   ///< the method takes the minimum and maximum x1 values in the set of
   ///< sample points a lower and upper limits in RtChebyshev
-  RtChebyshev getRtChebyshev(const std::vector<SamplePoint> & sample_points,
+  static RtChebyshev getRtChebyshev(const std::vector<SamplePoint> & sample_points,
 			     const unsigned int & order);
 
   ///< get an RtRelationLookUp resembling the r(t) function as 
@@ -51,11 +51,11 @@ public:
   ///< x2 the corresponding radius; the method takes the minimum and
   ///< maximum x1 values in the set of sample points a lower and upper
   ///< limits in RtRelationLookUp
-  RtRelationLookUp getRtRelationLookUp(const std::vector<SamplePoint> & sample_points);
+  static RtRelationLookUp getRtRelationLookUp(const std::vector<SamplePoint> & sample_points);
 
  private:
   // get the minimimum and maximum x1 coordinate of the given sample points
-  void get_min_max(const std::vector<SamplePoint> & sample_points,
+  static void get_min_max(const std::vector<SamplePoint> & sample_points,
 		   double & x_min, double & x_max);
 
 };
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/RtResolutionFromPoints.h b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/RtResolutionFromPoints.h
index 64aa2959d5c74418b00ea499bbb645b1596a73f0..f7a3a535421dbcd2a07de17b86e97fac179e7880 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/RtResolutionFromPoints.h
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/RtResolutionFromPoints.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -41,7 +41,7 @@ public:
   ///< "order"; x1 coordinate of the sample points contains the drift time, x2 the 
   ///< corresponding radius; the method takes the minimum and maximum x1 values in the set of
   ///< sample points a lower and upper limits in RtResolutionChebyshev
-  RtResolutionChebyshev getRtResolutionChebyshev(
+  static RtResolutionChebyshev getRtResolutionChebyshev(
     const std::vector<SamplePoint> &sample_points, const unsigned int & order);
 
   ///< get an RtResolutionLookUp resembling the sigma(t) function as 
@@ -50,11 +50,11 @@ public:
   ///< x2 the corresponding radius; the method takes the minimum and
   ///< maximum x1 values in the set of sample points a lower and upper
   ///< limits in RtResolutionLookUp
-  RtResolutionLookUp getRtResolutionLookUp(const std::vector<SamplePoint> & sample_points);
+  static RtResolutionLookUp getRtResolutionLookUp(const std::vector<SamplePoint> & sample_points);
 
  private:
   // get the minimimum and maximum x1 coordinate of the given sample points
-  void get_min_max(const std::vector<SamplePoint> &sample_points,
+  static void get_min_max(const std::vector<SamplePoint> &sample_points,
 		   double &x_min, double &x_max);
 
 };
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/TrRelation.h b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/TrRelation.h
index 1eb53ee247a0f3860d7ef7e95040e2f049a86a1d..156fa8a2cf7f37567741fd655efd6b1e7d3fc5fd 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/TrRelation.h
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/MdtCalibData/TrRelation.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -61,7 +61,7 @@ private:
   std::vector<double> m_t; // drift times
 
 // r(t) inversion method
-  double getTFromR(const double &r, const IRtRelation &input_rt);
+  static double getTFromR(const double &r, const IRtRelation &input_rt);
 
 };
 
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/BFieldCorFunc.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/BFieldCorFunc.cxx
index 8abef3a33c242fd00cf1a3a88087bb1a60e4f50f..201a795201ea0200f60012138f6dce1b446f4735 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/BFieldCorFunc.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/BFieldCorFunc.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -38,7 +38,7 @@ void BFieldCorFunc::init(const std::string &quality, const CalibFunc::ParVec &pa
   if (m_param.size()!=2) {
     MsgStream log(Athena::getMessageSvc(), "BFieldCorFunc");
     log<<MSG::ERROR<< "Wrong number of parameters!"<<endmsg;
-    m_Legendre=NULL;
+    m_Legendre=nullptr;
     return;	
   }
 
@@ -109,7 +109,7 @@ void BFieldCorFunc::init(const std::string &quality, const CalibFunc::ParVec &pa
   if (fitter.fit_parameters(sample_points, 1, nb_points, &legendre)) {
     MsgStream log(Athena::getMessageSvc(), "BFieldCorFunc");
     log<<MSG::WARNING<<"Unable to fit the integral in the correction!"<<endmsg;
-    m_Legendre=NULL;
+    m_Legendre=nullptr;
     return;	
   }
   m_alpha = fitter.coefficients();
@@ -247,7 +247,7 @@ std::string BFieldCorFunc::name() const {
 //:: METHOD correction ::
 //:::::::::::::::::::::::
 double BFieldCorFunc::correction(double t, double B_wire, double B_mu) const {
-  if(m_Legendre==NULL) {
+  if(m_Legendre==nullptr) {
     return 0.0;
   }
 
@@ -302,7 +302,7 @@ double BFieldCorFunc::correction(double t, double B_wire, double B_mu) const {
 //::::::::::::::::::::::::::::
 double BFieldCorFunc::correction_to_B(
   double t, double B_wire, double B_mu, double B_factor) const {
-  if (m_Legendre==NULL)	{
+  if (m_Legendre==nullptr)	{
     return 0.0;
   }
 ///////////////
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtCalibrationFactory.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtCalibrationFactory.cxx
index 439ccac013087612592199e4849d0f64b9c848fa..2421a8d79b10b9e517682181a6106fe37f01ffc1 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtCalibrationFactory.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtCalibrationFactory.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "MdtCalibData/MdtCalibrationFactory.h"  
@@ -17,7 +17,7 @@
 
 namespace MuonCalib{
 
-IMdtBackgroundCorFunc *MdtCalibrationFactory::createBackgroundCorFunc(std::string name, const CalibFunc::ParVec& pars) {
+IMdtBackgroundCorFunc *MdtCalibrationFactory::createBackgroundCorFunc(const std::string& name, const CalibFunc::ParVec& pars) {
   if( name == "MdtBackgroundCorFunc0" ) {
     return new MdtBackgroundCorFunc0(pars);
   }else{
@@ -27,7 +27,7 @@ IMdtBackgroundCorFunc *MdtCalibrationFactory::createBackgroundCorFunc(std::strin
   }
 }
 
-IMdtBFieldCorFunc *MdtCalibrationFactory::createBFieldCorFunc( std::string name, const CalibFunc::ParVec& pars) {
+IMdtBFieldCorFunc *MdtCalibrationFactory::createBFieldCorFunc( const std::string& name, const CalibFunc::ParVec& pars) {
   if( name == "MdtBFieldCorFunc0" ) {
     return new MdtBFieldCorFunc0(pars);
   }else{
@@ -37,7 +37,7 @@ IMdtBFieldCorFunc *MdtCalibrationFactory::createBFieldCorFunc( std::string name,
   }
 }
   
-IMdtSlewCorFunc *MdtCalibrationFactory::createMdtSlewCorFunc( std::string name, const CalibFunc::ParVec& pars) {
+IMdtSlewCorFunc *MdtCalibrationFactory::createMdtSlewCorFunc( const std::string& name, const CalibFunc::ParVec& pars) {
   if( name == "MdtSlewCorFunc0" ) {
     return new MdtSlewCorFunc0(pars);
   }else{
@@ -47,7 +47,7 @@ IMdtSlewCorFunc *MdtCalibrationFactory::createMdtSlewCorFunc( std::string name,
   }
 }
  
-IMdtTempCorFunc *MdtCalibrationFactory::createMdtTempCorFunc( std::string name, const CalibFunc::ParVec& pars) {
+IMdtTempCorFunc *MdtCalibrationFactory::createMdtTempCorFunc( const std::string& name, const CalibFunc::ParVec& pars) {
   if( name == "MdtTempCorFunc0" ) {
     return new MdtTempCorFunc0(pars);
   }else{
@@ -57,7 +57,7 @@ IMdtTempCorFunc *MdtCalibrationFactory::createMdtTempCorFunc( std::string name,
   }
 }
 
-IMdtWireSagCorFunc* MdtCalibrationFactory::createMdtWireSagCorFunc( std::string name, const CalibFunc::ParVec& pars) {
+IMdtWireSagCorFunc* MdtCalibrationFactory::createMdtWireSagCorFunc( const std::string& name, const CalibFunc::ParVec& pars) {
   if( name == "MdtWireSagCorFunc0" ) {
     return new MdtWireSagCorFunc0(pars);
   }else{
@@ -67,7 +67,7 @@ IMdtWireSagCorFunc* MdtCalibrationFactory::createMdtWireSagCorFunc( std::string
   }
 }
   
-IRtRelation* MdtCalibrationFactory::createRtRelation( std::string name, const CalibFunc::ParVec& pars) {
+IRtRelation* MdtCalibrationFactory::createRtRelation( const std::string& name, const CalibFunc::ParVec& pars) {
   if( name == "RtRelationLookUp" ) {
     return new RtRelationLookUp(pars);
   }else{
@@ -77,7 +77,7 @@ IRtRelation* MdtCalibrationFactory::createRtRelation( std::string name, const Ca
   }
 }
 
-IRtResolution* MdtCalibrationFactory::createRtResolution( std::string name, const CalibFunc::ParVec& pars) {
+IRtResolution* MdtCalibrationFactory::createRtResolution( const std::string& name, const CalibFunc::ParVec& pars) {
   if( name == "RtResolutionLookUp" ) {
     return new RtResolutionLookUp(pars);
   }else{
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtCorFuncSet.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtCorFuncSet.cxx
index 0af81897c98b09a1bbbcb575aeab33d367deadab..3132831e0e9c76f3488a62efed38217012598c9d 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtCorFuncSet.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtCorFuncSet.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "MdtCalibData/MdtCorFuncSet.h"
@@ -18,7 +18,7 @@ namespace MuonCalib {
   }
 
   MdtCorFuncSet::MdtCorFuncSet() 
-      : m_slewing(0),m_bField(0),m_temperature(0),m_background(0),m_wireSag(0) {
+      : m_slewing(nullptr),m_bField(nullptr),m_temperature(nullptr),m_background(nullptr),m_wireSag(nullptr) {
   }
 
   MdtCorFuncSet::~MdtCorFuncSet() {
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtRtRelation.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtRtRelation.cxx
index 1f270f71030c1a8cc8a40d0c274fb2015ab9cfd9..f7a026a183ec3b0c1473d1671301a340fee35448 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtRtRelation.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtRtRelation.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "MdtCalibData/IRtRelation.h"
@@ -11,14 +11,14 @@ namespace MuonCalib {
 
 MdtRtRelation::~MdtRtRelation() { 
   delete m_rt; delete m_rtRes;
-  if (m_tr!=0) {
+  if (m_tr!=nullptr) {
     delete m_tr;
   }
 }
 
 MdtRtRelation::MdtRtRelation( IRtRelation* rt, IRtResolution* reso, float t0 ): m_rt(rt), m_rtRes(reso), m_t0(t0)  {
-  m_tr = 0;
-  if (rt!=0) {
+  m_tr = nullptr;
+  if (rt!=nullptr) {
     m_tr = new TrRelation(*m_rt);
   }
 }
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtSlewCorFuncHardcoded.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtSlewCorFuncHardcoded.cxx
index 8f8e2a736e8cc95721e0117b5c48ce615d54a6ad..8074f876a20a77b51789040d7ec6cc7cc42f69d8 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtSlewCorFuncHardcoded.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/MdtSlewCorFuncHardcoded.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 
   MDT Timeslew correction for AMT digitization chip.
   Timeslew correction parmeterized as function of ADC:  timeslew = 109/q(ADC) [ns]
@@ -27,7 +27,9 @@ const std::vector<double> MdtSlewCorFuncHardcoded::initialize_LUT() {
   // Constant 109 is from an optimization of the timeslew correction
   // calibrated_p(i) is the integrated charge as a function of ADC
   std::vector<double> LUT;
-  for( int i=0; i<400; i++ ) {
+  LUT.reserve(400);
+
+for( int i=0; i<400; i++ ) {
     LUT.push_back(109./calibrated_p(i));
   }
   return LUT;
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/RtFullInfo.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/RtFullInfo.cxx
index df779e36fa8a678e81547bead47c21594cf40472..d2d10e1b29aa320be0867f3d385ae36d375dc695 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/RtFullInfo.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/RtFullInfo.cxx
@@ -1,9 +1,9 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "MdtCalibData/RtFullInfo.h"
-#include <stdio.h>
+#include <cstdio>
 
 namespace MuonCalib {
 
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/WireSagCorFunc.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/WireSagCorFunc.cxx
index f46346d525f2924d056f6ee75ec0fdd473a7df0e..b5a90e6169944ba061e146d09ea109d06c3e2162 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/WireSagCorFunc.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibData/src/WireSagCorFunc.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -25,7 +25,7 @@ using namespace MuonCalib;
 void WireSagCorFunc::init(const CalibFunc::ParVec& params) {
   MsgStream log(Athena::getMessageSvc(), "WireSagCorFunc");
   m_params = params;
-  if (m_params.size() != 0) {
+  if (!m_params.empty()) {
     log << MSG::ERROR << "Wrong number of parameters: " << m_params.size() << endmsg;
   }
 }