diff --git a/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.cxx b/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.cxx
index 18a40713aa909bdcb32a4385622ae2e13d830d12..6b89fbdc543082b1761c559b4c93dc6ee19715e2 100755
--- a/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.cxx
+++ b/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.cxx
@@ -27,6 +27,7 @@
 #include "GaudiKernel/SystemOfUnits.h"
 
 #include <iomanip>
+#include <utility>
 #include <vector>
 
 
@@ -313,14 +314,14 @@ const BeamPipeDetectorManager * BeamPipeDetectorFactory::getDetectorManager() co
 
 void BeamPipeDetectorFactory::setTagNode(std::string tag, std::string node, std::string mode)
 {
-  m_versionTag = tag;
-  m_versionNode = node;
-  m_mode = mode;
+  m_versionTag = std::move(tag);
+  m_versionNode = std::move(node);
+  m_mode = std::move(mode);
 }
 
 
 BeamPipeDetectorFactory::EnvelopeShapes
-BeamPipeDetectorFactory::makeEnvelope(IRDBRecordset_ptr bpipeEnvelope)
+BeamPipeDetectorFactory::makeEnvelope(const IRDBRecordset_ptr& bpipeEnvelope)
 {
   EnvelopeShapes envelopes;
 
@@ -411,7 +412,7 @@ BeamPipeDetectorFactory::makeEnvelope(IRDBRecordset_ptr bpipeEnvelope)
 
 
 BeamPipeDetectorFactory::EnvelopeShapes
-BeamPipeDetectorFactory::makeEnvelopeOld(IRDBRecordset_ptr atlasMother)
+BeamPipeDetectorFactory::makeEnvelopeOld(const IRDBRecordset_ptr& atlasMother)
 {
 
   double iir = (*atlasMother)[0]->getDouble("IDETIR")*Gaudi::Units::cm;
diff --git a/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.h b/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.h
index a66ed70cc3d1dccf1aea10284000e788fc025e84..fee0384f903c50c23a549c0926317e5c45ca11e9 100755
--- a/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.h
+++ b/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.h
@@ -59,8 +59,8 @@ class BeamPipeDetectorFactory final : public GeoVDetectorFactory
   };
 
 
-  EnvelopeShapes makeEnvelope(IRDBRecordset_ptr bpipeEnvelope);
-  EnvelopeShapes makeEnvelopeOld(IRDBRecordset_ptr atlasMother);
+  EnvelopeShapes makeEnvelope(const IRDBRecordset_ptr& bpipeEnvelope);
+  EnvelopeShapes makeEnvelopeOld(const IRDBRecordset_ptr& atlasMother);
 
 
   // Illegal operations:
diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/CompositeAlgorithm.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/CompositeAlgorithm.h
index 93ad192660d2981d1d5c8e926d60d1c0e4a55c90..9c9b569904a2e35437af1b874e1c1f0632c35404 100644
--- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/CompositeAlgorithm.h
+++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/CompositeAlgorithm.h
@@ -34,7 +34,7 @@ protected:
   std::string m_name;
   AlgVec_t m_subAlgs;
 
-  HanAlgorithmConfig* ConfigureSubAlg(const dqm_core::AlgorithmConfig& config, std::string subalg);
+  HanAlgorithmConfig* ConfigureSubAlg(const dqm_core::AlgorithmConfig& config, const std::string& subalg);
   
 };
 
diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/DatabaseConfig.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/DatabaseConfig.h
index 37a7824d9c6c25f9a25f70f01b4a6edc19aaaf87..529d5f16ede0cda989d3071b7dc8796d4aba7147 100644
--- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/DatabaseConfig.h
+++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/DatabaseConfig.h
@@ -17,7 +17,7 @@ class DatabaseConfig {
 
 public:
   DatabaseConfig(std::string connectionString, long runNumber);
-  nlohmann::json GetPayload(std::string tag);
+  nlohmann::json GetPayload(const std::string& tag);
 
   bool IsConnected() const;
   void Disconnect();
@@ -34,7 +34,7 @@ private:
   cool::IDatabasePtr m_database;
 
   long GetRunNumber() const;
-  nlohmann::json LoadPayload(std::string tag);
+  nlohmann::json LoadPayload(const std::string& tag);
 
   void Connect();
 };
diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanConfig.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanConfig.h
index b0d0d6426017efaa524f13efb8138738a8a91458..c6fcf8164cbf5fd74e71d2287d822f0fb4623561 100644
--- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanConfig.h
+++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanConfig.h
@@ -97,7 +97,7 @@ protected:
   protected:
 
     void GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID,
-                                    std::string assessorName = "" ) const;
+                                    const std::string& assessorName = "" ) const;
 
     HanConfigGroup* m_root;
     const MiniConfig& m_algConfig;
@@ -172,7 +172,7 @@ protected:
   };
 
 
-  bool Initialize( std::string configName );
+  bool Initialize( const std::string& configName );
 
 
   TFile*             m_config;
@@ -190,8 +190,8 @@ protected:
 private:
 
   static TKey* GetObjKey( TDirectory* dir, std::string path );
-  static TDirectory* ChangeInputDir( TDirectory* dir, std::string path );
-  static TDirectory* ChangeOutputDir( TFile* file, std::string path, DirMap_t& directories );
+  static TDirectory* ChangeInputDir( TDirectory* dir, const std::string& path );
+  static TDirectory* ChangeOutputDir( TFile* file, const std::string& path, DirMap_t& directories );
 
 };
 
diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanInputRootFile.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanInputRootFile.h
index d5163de3cbf2fc96af2ec30ca407389c8f23b2bb..ace9532b94751beb1d6501c0199a0ccfc163932f 100644
--- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanInputRootFile.h
+++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanInputRootFile.h
@@ -19,7 +19,7 @@ namespace dqi {
 class HanInputRootFile: public dqm_core::InputRootFile {
 public:
 
-  HanInputRootFile( std::string& rootFileName, std::string path = "" );
+  HanInputRootFile( std::string& rootFileName, const std::string& path = "" );
   ~HanInputRootFile();
 
   virtual void addListener( const boost::regex& regex, dqm_core::InputListener* listener );
diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanOutput.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanOutput.h
index 89242ec7d3d90e19c5a7344c7248da99cab8aafc..53f9cdbea118670908aaea51dc243faada68e33d 100644
--- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanOutput.h
+++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanOutput.h
@@ -32,7 +32,7 @@ public:
 
   typedef std::map<std::string,TSeqCollection *> DQOutputMap_t;
 
-  HanOutput( std::string rootFileName, DQOutputMap_t* outputMap, TSeqCollection *outputList );
+  HanOutput( const std::string& rootFileName, DQOutputMap_t* outputMap, TSeqCollection *outputList );
   
   virtual ~HanOutput();
   
diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanUtils.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanUtils.h
index f7bf8200d7318f290e6ac9cf39e3061449a607b1..7ff5387cbbc08d3fc6bccb9b3054772a1cb48926 100644
--- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanUtils.h
+++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanUtils.h
@@ -13,13 +13,13 @@ class TDirectory;
 namespace dqi {
   TSeqCollection* newTList( const char *name, TObject *obj = 0 );
   TSeqCollection* newTObjArray( const char *name, TObject *obj = 0, Int_t size = TCollection::kInitCapacity);
-  TKey* getObjKey( TDirectory* dir, const std::string path );
+  TKey* getObjKey( TDirectory* dir, const std::string& path );
 
   extern boost::mutex root_mutex;
 
   class HanHistogramLink : public TNamed {
   public:
-    HanHistogramLink(TDirectory* dir, const std::string path);
+    HanHistogramLink(TDirectory* dir, const std::string& path);
     TObject* getObject();
   private:
     TDirectory* m_dir;
diff --git a/DataQuality/DataQualityInterfaces/src/CompositeAlgorithm.cxx b/DataQuality/DataQualityInterfaces/src/CompositeAlgorithm.cxx
index c8b044ce12052c45b455d801021edfd531d6b357..c5daf0731058b6bd99f39c51d17fe89ab97dacd9 100644
--- a/DataQuality/DataQualityInterfaces/src/CompositeAlgorithm.cxx
+++ b/DataQuality/DataQualityInterfaces/src/CompositeAlgorithm.cxx
@@ -147,7 +147,7 @@ execute( const std::string& name, const TObject& data, const dqm_core::Algorithm
 
 HanAlgorithmConfig*
 CompositeAlgorithm::
-ConfigureSubAlg(const dqm_core::AlgorithmConfig& config, std::string subalg)
+ConfigureSubAlg(const dqm_core::AlgorithmConfig& config, const std::string& subalg)
 {
 // caller owns the returned object
 
diff --git a/DataQuality/DataQualityInterfaces/src/DatabaseConfig.cxx b/DataQuality/DataQualityInterfaces/src/DatabaseConfig.cxx
index 91f99c41f7e0b45497d2b1751bfbf96f313d01e6..1f74d1bd97a8220ae1ce8c7b1ed27deedd67fe00 100644
--- a/DataQuality/DataQualityInterfaces/src/DatabaseConfig.cxx
+++ b/DataQuality/DataQualityInterfaces/src/DatabaseConfig.cxx
@@ -13,12 +13,13 @@
 
 #include "DataQualityInterfaces/DatabaseConfig.h"
 #include <array>
+#include <utility>
 
 namespace dqi {
 
 DatabaseConfig::
 DatabaseConfig(std::string connectionString, long runNumber)
-  : m_connectionString(connectionString)
+  : m_connectionString(std::move(connectionString))
   , m_runNumber((runNumber << 32) + 1)
   , m_dbConnected(false)
   , m_folderConnected(false)
@@ -61,7 +62,7 @@ Connect()
 
 nlohmann::json
 DatabaseConfig::
-GetPayload(std::string tag)
+GetPayload(const std::string& tag)
 {
   if(!m_dbConnected && !m_folderConnected) {
     Connect();
@@ -74,7 +75,7 @@ GetPayload(std::string tag)
 
 nlohmann::json
 DatabaseConfig::
-LoadPayload(std::string tag)
+LoadPayload(const std::string& tag)
 {
   nlohmann::json jsonData;
   if(m_dbConnected && m_folderConnected) {
diff --git a/DataQuality/DataQualityInterfaces/src/HanApp.cxx b/DataQuality/DataQualityInterfaces/src/HanApp.cxx
index ee424b80635dae4a5f6be5b81f7125c36ba5042d..d87ed92c22625dfe25ea983dc8ddc13342ddbe56 100644
--- a/DataQuality/DataQualityInterfaces/src/HanApp.cxx
+++ b/DataQuality/DataQualityInterfaces/src/HanApp.cxx
@@ -20,6 +20,8 @@
 
 #include <TCanvas.h>
 
+#include <utility>
+
 //Get rid of Root macros that confuse Doxygen
 ///\cond CLASSIMP
 ClassImp(dqi::HanApp)
@@ -65,7 +67,7 @@ HanApp()
 HanApp::
 HanApp( std::string configName_, std::string inputName_, std::string outputName_, std::string path_ )
 {
-  Analyze( configName_, inputName_, outputName_, path_ );
+  Analyze( std::move(configName_), std::move(inputName_), std::move(outputName_), std::move(path_) );
 }
 
 
diff --git a/DataQuality/DataQualityInterfaces/src/HanConfig.cxx b/DataQuality/DataQualityInterfaces/src/HanConfig.cxx
index 72c01c3b545b209a9a1362c3e82211eebc5876f4..f902a6c63ea1c653a4e39495e54c6fb34cc5fd5c 100644
--- a/DataQuality/DataQualityInterfaces/src/HanConfig.cxx
+++ b/DataQuality/DataQualityInterfaces/src/HanConfig.cxx
@@ -27,29 +27,30 @@
 #include <TROOT.h>
 #include <TEfficiency.h>
 
-#include "dqm_core/LibraryManager.h"
-#include "dqm_core/Parameter.h"
-#include "dqm_core/ParameterConfig.h"
-#include "dqm_core/Region.h"
-#include "dqm_core/RegionConfig.h"
+#include "DataQualityInterfaces/CompositeAlgorithm.h"
+#include "DataQualityInterfaces/ConditionsSingleton.h"
+#include "DataQualityInterfaces/DatabaseConfig.h"
 #include "DataQualityInterfaces/HanAlgorithmConfig.h"
+#include "DataQualityInterfaces/HanConfigAlgLimit.h"
+#include "DataQualityInterfaces/HanConfigAlgPar.h"
 #include "DataQualityInterfaces/HanConfigAssessor.h"
 #include "DataQualityInterfaces/HanConfigGroup.h"
-#include "DataQualityInterfaces/HanConfigAlgPar.h"
-#include "DataQualityInterfaces/HanConfigAlgLimit.h"
 #include "DataQualityInterfaces/HanConfigMetadata.h"
-#include "DataQualityInterfaces/CompositeAlgorithm.h"
 #include "DataQualityInterfaces/HanOutput.h"
-#include "DataQualityInterfaces/MiniConfig.h"
 #include "DataQualityInterfaces/HanUtils.h"
-#include "DataQualityInterfaces/DatabaseConfig.h"
-#include <boost/regex.hpp>
+#include "DataQualityInterfaces/MiniConfig.h"
+#include "dqm_core/LibraryManager.h"
+#include "dqm_core/Parameter.h"
+#include "dqm_core/ParameterConfig.h"
+#include "dqm_core/Region.h"
+#include "dqm_core/RegionConfig.h"
 #include <boost/algorithm/string/case_conv.hpp>
-#include <boost/algorithm/string/split.hpp>
 #include <boost/algorithm/string/classification.hpp>
+#include <boost/algorithm/string/split.hpp>
 #include <boost/algorithm/string/trim.hpp>
 #include <boost/pointer_cast.hpp>
-#include "DataQualityInterfaces/ConditionsSingleton.h"
+#include <boost/regex.hpp>
+#include <utility>
 
 ClassImp(dqi::HanConfig)
 
@@ -96,7 +97,7 @@ AssembleAndSave( std::string infileName, std::string outfileName, std::string co
   RefVisitor refvisitor( outfile.get(), directories, &refsourcedata );
   refconfig.SendVisitor( refvisitor );
 
-  DatabaseConfig databaseConfig(connectionString, runNumber);
+  DatabaseConfig databaseConfig(std::move(connectionString), runNumber);
   RefWriter refwriter(databaseConfig, bulk);
   refconfig.SendWriter( refwriter );
   databaseConfig.Disconnect();
@@ -262,7 +263,7 @@ GetReference( std::string& groupName, std::string& name )
 }
 
 std::string
-SplitReference(std::string refPath, std::string refName )
+SplitReference(std::string refPath, const std::string& refName )
 {
   // this will never be run in a multithread environment
   static std::unordered_set<std::string> badPaths;
@@ -281,7 +282,7 @@ SplitReference(std::string refPath, std::string refName )
   //Try to open each file in the list
   for(std::size_t i=0; i<refFileList.size(); i++){
     std::string fileName=refFileList.at(i)+refName;
-    size_t first = fileName.find_first_not_of(" ");
+    size_t first = fileName.find_first_not_of(' ');
     fileName.erase(0, first);
     if (badPaths.find(fileName) != badPaths.end()) continue;
     if (gROOT->GetListOfFiles()->FindObject(fileName.c_str()) ) {
@@ -448,8 +449,8 @@ GetROOTFile( std::string& fname ) const
   }
 }
 
-float AttribToFloat(const MiniConfigTreeNode* node, const std::string attrib,
-		    const std::string warningString, bool local=false)
+float AttribToFloat(const MiniConfigTreeNode* node, const std::string& attrib,
+		    const std::string& warningString, bool local=false)
 {
   std::istringstream valstream;
   if (local) {
@@ -470,7 +471,7 @@ float AttribToFloat(const MiniConfigTreeNode* node, const std::string attrib,
 void
 HanConfig::AssessmentVisitorBase::
 GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID,
-                           std::string assessorName ) const
+                           const std::string& assessorName ) const
 {
   // bool hasName(false);
   std::set<std::string> algAtt;
@@ -809,14 +810,14 @@ Visit( const MiniConfigTreeNode* node ) const
 
     std::string strNodeName(histNode->GetName());
     std::string strHistName, strFullHistName;
-    std::string::size_type atsign = strNodeName.find("@");
+    std::string::size_type atsign = strNodeName.find('@');
     if (atsign == std::string::npos) {
       strHistName = strNodeName;
       strFullHistName = histNode->GetPathName();
     } else {
       strHistName = strNodeName.substr(0, atsign);
       strFullHistName = histNode->GetPathName();
-      strFullHistName = strFullHistName.substr(0, strFullHistName.find("@"));
+      strFullHistName = strFullHistName.substr(0, strFullHistName.find('@'));
     }
 
     if( strHistName == "all_in_dir" )
@@ -888,7 +889,7 @@ Visit( const MiniConfigTreeNode* node ) const
 
     std::string strNodeName(histNode->GetName());
     std::string strHistName, strFullHistName, extension;
-    std::string::size_type atsign = strNodeName.find("@");
+    std::string::size_type atsign = strNodeName.find('@');
     if (atsign == std::string::npos) {
       strHistName = strNodeName;
       strFullHistName = histNode->GetPathName();
@@ -897,7 +898,7 @@ Visit( const MiniConfigTreeNode* node ) const
       strHistName = strNodeName.substr(0, atsign);
       extension = strNodeName.substr(atsign, std::string::npos);
       strFullHistName = histNode->GetPathName();
-      strFullHistName = strFullHistName.substr(0, strFullHistName.find("@"));
+      strFullHistName = strFullHistName.substr(0, strFullHistName.find('@'));
     }
 
     if( strHistName == "all_in_dir" ) {
@@ -1106,7 +1107,7 @@ Visit( const MiniConfigTreeNode* node ) const
         std::string::size_type pos = subAlgs.find(',');
         for(int size=subAlgs.size(), sizeOld=-8;
     	    size != sizeOld;
-    	    subAlgs.erase(0, pos+1), pos = subAlgs.find(","),sizeOld=size, size=subAlgs.size()) {
+    	    subAlgs.erase(0, pos+1), pos = subAlgs.find(','),sizeOld=size, size=subAlgs.size()) {
             //std::cout << "  --> adding component algorithm: " <<  subAlgs.substr(0,pos) << std::endl;
             compAlg->AddAlg( subAlgs.substr(0,pos));
           }
@@ -1116,7 +1117,7 @@ Visit( const MiniConfigTreeNode* node ) const
         std::string::size_type pos = libs.find(',');
         for(int size=libs.size(), sizeOld=-8;
     	    size != sizeOld;
-    	    libs.erase(0, pos+1), pos = libs.find(","),sizeOld=size, size=libs.size()) {
+    	    libs.erase(0, pos+1), pos = libs.find(','),sizeOld=size, size=libs.size()) {
             //std::cout << "  --> using library: " <<  libs.substr(0,pos) << std::endl;
             compAlg->AddLib( libs.substr(0,pos));
           }
@@ -1174,7 +1175,7 @@ Visit( const MiniConfigTreeNode* node ) const
 
 bool
 HanConfig::
-Initialize( std::string configName )
+Initialize( const std::string& configName )
 {
   if( m_config == 0 || m_top_level == 0 ) {
 
@@ -1253,7 +1254,7 @@ Initialize( std::string configName )
 
 TDirectory*
 HanConfig::
-ChangeInputDir( TDirectory* dir, std::string path )
+ChangeInputDir( TDirectory* dir, const std::string& path )
 {
   if( dir == 0 )
     return 0;
@@ -1285,7 +1286,7 @@ ChangeInputDir( TDirectory* dir, std::string path )
 
 TDirectory*
 HanConfig::
-ChangeOutputDir( TFile* file, std::string path, DirMap_t& directories )
+ChangeOutputDir( TFile* file, const std::string& path, DirMap_t& directories )
 {
 	if( file == 0 )
 		return 0;
diff --git a/DataQuality/DataQualityInterfaces/src/HanConfigAssessor.cxx b/DataQuality/DataQualityInterfaces/src/HanConfigAssessor.cxx
index 437466ae898ef926b5806d12f5cdea4eafe2fc84..13bbe307793c952dc863d37279402f1e31673d93 100644
--- a/DataQuality/DataQualityInterfaces/src/HanConfigAssessor.cxx
+++ b/DataQuality/DataQualityInterfaces/src/HanConfigAssessor.cxx
@@ -7,9 +7,10 @@
 // **********************************************************************
 
 #include "DataQualityInterfaces/HanConfigAssessor.h"
-#include "DataQualityInterfaces/HanUtils.h"
 #include "DataQualityInterfaces/ConditionsSingleton.h"
+#include "DataQualityInterfaces/HanUtils.h"
 #include <cstring>
+#include <utility>
 
 #include <TKey.h>
 #include <TH1F.h>
@@ -427,7 +428,7 @@ GetList( TDirectory* basedir, std::map<std::string,TSeqCollection*>& mp )
        || (strncmp(className, "TEfficiency", 11) == 0) ) {
 	// TNamed* transobj = dynamic_cast<TNamed*>(key->ReadObj());
 	// if (transobj != NULL) {
-	std::string::size_type rslash = nameString.rfind("/");
+	std::string::size_type rslash = nameString.rfind('/');
 	if (rslash == std::string::npos) {
 	  rslash = 0;
 	} else {
@@ -460,7 +461,7 @@ void
 HanConfigAssessor::
 Accept( const Visitor& visitor, boost::shared_ptr<dqm_core::Region> dqParent ) const
 {
-  visitor.Visit( this, dqParent );
+  visitor.Visit( this, std::move(dqParent) );
 }
 
 
diff --git a/DataQuality/DataQualityInterfaces/src/HanInputRootFile.cxx b/DataQuality/DataQualityInterfaces/src/HanInputRootFile.cxx
index 165d3ec36921379223ef14c8f832251229ab0677..18b0f51410bd28dc10df7669cda52c74aa9760c6 100644
--- a/DataQuality/DataQualityInterfaces/src/HanInputRootFile.cxx
+++ b/DataQuality/DataQualityInterfaces/src/HanInputRootFile.cxx
@@ -13,15 +13,15 @@
 
 namespace {
 
-TKey* getObjKeyFromTDir( TDirectory* dir, std::string path );
-TDirectory* changeInputDir( TDirectory* dir, std::string path );
+TKey* getObjKeyFromTDir( TDirectory* dir, const std::string& path );
+TDirectory* changeInputDir( TDirectory* dir, const std::string& path );
 
 }
 
 namespace dqi {
 
 HanInputRootFile::
-HanInputRootFile( std::string& rootFileName, std::string path )
+HanInputRootFile( std::string& rootFileName, const std::string& path )
   : dqm_core::InputRootFile::InputRootFile(rootFileName)
   , m_rootFile( TFile::Open(rootFileName.c_str()) )
   , m_basedir(0)
@@ -165,7 +165,7 @@ getBasedir() const
 namespace {
 
 // This method is copy-pasted from InputRootFile (it was private)
-TKey* getObjKeyFromTDir( TDirectory* dir, std::string path ) {
+TKey* getObjKeyFromTDir( TDirectory* dir, const std::string& path ) {
   if( dir == 0 )
     return 0;
 
@@ -195,7 +195,7 @@ TKey* getObjKeyFromTDir( TDirectory* dir, std::string path ) {
 }
 
 
-TDirectory* changeInputDir( TDirectory* dir, std::string path )
+TDirectory* changeInputDir( TDirectory* dir, const std::string& path )
 {
   if( dir == 0 )
     return 0;
diff --git a/DataQuality/DataQualityInterfaces/src/HanOutput.cxx b/DataQuality/DataQualityInterfaces/src/HanOutput.cxx
index 2375c2fcf893de6e74f166a6c58c79053e7a23ec..72bc71cf72af391b60d75f869c86092b032b1f26 100644
--- a/DataQuality/DataQualityInterfaces/src/HanOutput.cxx
+++ b/DataQuality/DataQualityInterfaces/src/HanOutput.cxx
@@ -86,7 +86,7 @@ const int HanOutput::Result::s_charArrSize = 10;
 // *********************************************************************
 
 HanOutput::
-HanOutput( std::string rootFileName, DQOutputMap_t *outMap, TSeqCollection *outList )
+HanOutput( const std::string& rootFileName, DQOutputMap_t *outMap, TSeqCollection *outList )
   : m_fileName(rootFileName)
   , m_file( TFile::Open(rootFileName.c_str(),"RECREATE") )
   , m_retainUnpubData(false)
diff --git a/DataQuality/DataQualityInterfaces/src/HanUtils.cxx b/DataQuality/DataQualityInterfaces/src/HanUtils.cxx
index f60f14fc0279d9a67f22c89c489bfd59aa0af9e1..d3ec693a9058cc71334292accae6755952f08cc9 100644
--- a/DataQuality/DataQualityInterfaces/src/HanUtils.cxx
+++ b/DataQuality/DataQualityInterfaces/src/HanUtils.cxx
@@ -29,7 +29,7 @@ TSeqCollection* newTObjArray( const char *name, TObject *obj, Int_t size )
   return ret;
 }
 
-TKey* getObjKey( TDirectory* dir, const std::string path )
+TKey* getObjKey( TDirectory* dir, const std::string& path )
 {
   if( dir == 0 )
     return 0;
@@ -73,7 +73,7 @@ DisableMustClean::~DisableMustClean()
 }
 
 HanHistogramLink::
-HanHistogramLink(TDirectory* dir, const std::string path)
+HanHistogramLink(TDirectory* dir, const std::string& path)
   : m_dir(dir)
   , m_path(path)
 {}
diff --git a/DataQuality/DataQualityInterfaces/src/MiniConfig.cxx b/DataQuality/DataQualityInterfaces/src/MiniConfig.cxx
index af8bf1bb5f7f1bc8a5c842e7c6d4e4c502d29f49..ac7c2e76e301e6de63f5db4e0a1c58c145f81fe1 100644
--- a/DataQuality/DataQualityInterfaces/src/MiniConfig.cxx
+++ b/DataQuality/DataQualityInterfaces/src/MiniConfig.cxx
@@ -8,8 +8,9 @@
 
 #include <fstream>
 #include <iostream>
-#include <sstream>
 #include <optional>
+#include <sstream>
+#include <utility>
 //#include <algorithm>
 
 #include "boost/algorithm/string/case_conv.hpp"
@@ -50,7 +51,7 @@ void
 MiniConfig::
 AddKeyword( std::string keyword_ )
 {
-  KeySet_t::value_type keyval( keyword_ );
+  const KeySet_t::value_type& keyval( std::move(keyword_) );
   m_keywords.insert( keyval );
 }
 
@@ -59,7 +60,7 @@ void
 MiniConfig::
 AddAttributeKeyword( std::string keyword_ )
 {
-  KeySet_t::value_type keyval( keyword_ );
+  const KeySet_t::value_type& keyval( std::move(keyword_) );
   m_attKeywords.insert( keyval );
 }
 
@@ -224,7 +225,7 @@ GetStringAttribute( std::string objName, std::string attName ) const
               << "\"" << objName << "\" does not exist\n";
     return std::string("");
   }
-  return node->GetAttribute( attName );
+  return node->GetAttribute( std::move(attName) );
 }
 
 
diff --git a/DataQuality/DataQualityInterfaces/src/MiniConfigTreeNode.cxx b/DataQuality/DataQualityInterfaces/src/MiniConfigTreeNode.cxx
index f19819762ba2c787db823b350229a4a613b4f2ef..3e9410105614228a7e695e39c826f8d7cc6e1ce9 100644
--- a/DataQuality/DataQualityInterfaces/src/MiniConfigTreeNode.cxx
+++ b/DataQuality/DataQualityInterfaces/src/MiniConfigTreeNode.cxx
@@ -6,6 +6,8 @@
 // $Id: MiniConfigTreeNode.cxx,v 1.5 2008-12-04 16:40:16 ponyisi Exp $
 // **********************************************************************
 
+#include <utility>
+
 #include "DataQualityInterfaces/MiniConfigTreeNode.h"
 
 
@@ -23,7 +25,7 @@ namespace dqi {
 
 MiniConfigTreeNode::
 MiniConfigTreeNode( std::string name_, MiniConfigTreeNode* parent_ )
-  : m_name(name_)
+  : m_name(std::move(name_))
   , m_parent(parent_)
   , m_propagateDown(true)
 {
diff --git a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx
index 7bf34c57532243997c82ba833a01c44cc2dff837..1e9e7d48537dce580d75a5b733cbc500dffa20d8 100644
--- a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx
+++ b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx
@@ -155,7 +155,7 @@ void DumpEventDataToJsonAlg::prependTestEvent()
 template <class TYPE>
 StatusCode DumpEventDataToJsonAlg::getAndFillArrayOfContainers(nlohmann::json &event,
                                                                const SG::ReadHandleKeyArray<TYPE> &keys,
-                                                               const std::string jsonType)
+                                                               const std::string& jsonType)
 {
   for (SG::ReadHandle<TYPE> handle : keys.makeHandles())
   {
@@ -360,7 +360,7 @@ StatusCode DumpEventDataToJsonAlg::finalize()
 template <class TYPE>
 StatusCode DumpEventDataToJsonAlg::getAndFillContainer(nlohmann::json &event,
                                                        const SG::ReadHandleKey<TYPE> &key,
-                                                       const std::string jsonType)
+                                                       const std::string& jsonType)
 {
 SG::ReadHandle<TYPE> handle(key);
 
diff --git a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h
index 72c085a5646b3c5c00201f20555c5fb692ed9e18..af5604952c5e539d5c2237d02f3ebd1c7fb225c8 100644
--- a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h
+++ b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h
@@ -48,12 +48,12 @@ protected:
   void prependTestEvent();
 
   template <class TYPE>
-  StatusCode getAndFillArrayOfContainers(nlohmann::json &event, const SG::ReadHandleKeyArray<TYPE> &keys, const std::string jsonType);
+  StatusCode getAndFillArrayOfContainers(nlohmann::json &event, const SG::ReadHandleKeyArray<TYPE> &keys, const std::string& jsonType);
 
   template <class TYPE>
   StatusCode getAndFillContainer(nlohmann::json &event,
                                  const SG::ReadHandleKey<TYPE> &key,
-                                 const std::string jsonType);
+                                 const std::string& jsonType);
   template <class TYPE>
   nlohmann::json getData(const TYPE &object);
 
diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EMECSupportConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EMECSupportConstruction.h
index 0a2ed57847b85de8ba72956eabfe6073b042c1c1..50ee7f47bb3561e751043a24b542f4c8f9e8f1ce 100755
--- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EMECSupportConstruction.h
+++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EMECSupportConstruction.h
@@ -95,7 +95,7 @@ class EMECSupportConstruction
     void put_back_outer_barettes(GeoPhysVol *) const;
     void put_front_outer_electronics(GeoPhysVol *) const;
 
-	GeoPcon* getPcon(std::string) const;
+	GeoPcon* getPcon(const std::string&) const;
 
     type_t m_Type;
     bool m_pos_zside;
diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx
index 5d68a241f47e633c7d79b39fd9f807a5565857a8..29bbb66cfc7ddc5b47b93d2ca7907abdf86f8bb8 100755
--- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx
+++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx
@@ -585,7 +585,7 @@ void LArGeo::EMECConstruction::place_custom_solids(
   // This lambda function creates a proxy for the LArCustomShape:
   auto toUnidentified = [] (const LArCustomShape *inputShape)
     {
-      std::string name= inputShape->name();
+      const std::string& name= inputShape->name();
       return new GeoUnidentifiedShape("LArCustomShape",name);
     };  
 
diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx
index 407143c2ce7da8c4e2d206c62fad96e1b32e3c87..5fd3f94665d94592b3f08ee0ae949ddb24243f28 100755
--- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx
+++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx
@@ -95,7 +95,7 @@ EMECSupportConstruction::EMECSupportConstruction(
     type_t type, bool pos_zside, bool is_module,
     std::string basename, double position
 ) : m_Type(type), m_pos_zside(pos_zside), m_isModule(is_module),
-    m_BaseName(basename), m_Position(position)
+    m_BaseName(std::move(basename)), m_Position(position)
 {
 //	std::cout << "Experimental EMECSupportConstruction" << std::endl;
 
@@ -215,8 +215,9 @@ static void printWarning(const std::ostringstream &message)
 }
 
 #include<map>
+#include <utility>
 typedef std::map<std::string, unsigned int> map_t;
-static map_t getMap(IRDBRecordset_ptr db, std::string s)
+static map_t getMap(const IRDBRecordset_ptr& db, const std::string& s)
 {
     map_t result;
     for(unsigned int i = 0; i < db->size(); ++ i){
@@ -226,7 +227,7 @@ static map_t getMap(IRDBRecordset_ptr db, std::string s)
     return result;
 }
 
-static map_t getNumbersMap(IRDBRecordset_ptr db, std::string s)
+static map_t getNumbersMap(const IRDBRecordset_ptr& db, const std::string& s)
 {
 	map_t result;
 	for(unsigned int i = 0; i < db->size(); ++ i){
@@ -241,7 +242,7 @@ static map_t getNumbersMap(IRDBRecordset_ptr db, std::string s)
 }
 
 static double getNumber(
-	IRDBRecordset_ptr db, const map_t &m, const std::string &idx,
+	const IRDBRecordset_ptr& db, const map_t &m, const std::string &idx,
 	const char *number, double defval = 0.
 )
 {
@@ -258,7 +259,7 @@ static double getNumber(
 }
 
 static double getNumber(
-	IRDBRecordset_ptr db, const std::string &s,
+	const IRDBRecordset_ptr& db, const std::string &s,
 	const std::string &parameter, double defval = 0.)
 {
 	for(unsigned int i = 0; i < db->size(); ++ i){
@@ -302,7 +303,7 @@ GeoPhysVol* EMECSupportConstruction::GetEnvelope(void) const
 	}
 }
 
-GeoPcon* EMECSupportConstruction::getPcon(std::string id) const
+GeoPcon* EMECSupportConstruction::getPcon(const std::string& id) const
 {
 	double phi_start = m_PhiStart;
 	double phi_size = m_PhiSize;
diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx
index 6bfa82058d4604c93f647de680d61ce9ed9d03f5..07b960ff9de4aaac5cb51d11cbf773de54f155a2 100755
--- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx
+++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx
@@ -55,10 +55,11 @@
 #include "GaudiKernel/Bootstrap.h"
 #include "GaudiKernel/SystemOfUnits.h"
 
-#include <string>
 #include <cmath>
 #include <iomanip>
 #include <map>
+#include <string>
+#include <utility>
 
 #include "LArGeoMiniFcal/MiniFcalConstruction.h"
 
@@ -81,8 +82,8 @@ LArGeo::EndcapCryostatConstruction::EndcapCryostatConstruction(
   m_pAccessSvc(NULL),
   m_geoModelSvc(NULL),
   m_fullGeo(fullGeo),
-  m_EMECVariantInner(emecVariantInner),
-  m_EMECVariantOuter(emecVariantOuter),
+  m_EMECVariantInner(std::move(emecVariantInner)),
+  m_EMECVariantOuter(std::move(emecVariantOuter)),
   m_activateFT(activateFT),
   m_enableMBTS(enableMBTS)
 {