diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx
index f4daaef835ac1f8991535d0b81602a50b92e6be4..bef11ddf291b711951835e5def94fa2451f7561e 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx
@@ -37,8 +37,8 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillLabel( const ToolHandle<GenericMoni
 
 // *********************************************************************************
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillEfficiencies( std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs,
-                                                           const TrigInfo info ) const
+void TrigEgammaMonitorAnalysisAlgorithm::fillEfficiencies( const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs,
+                                                           const TrigInfo& info ) const
 {
 
   std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pair_vec;
@@ -150,10 +150,10 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillEfficiencies( std::vector< std::pai
 void TrigEgammaMonitorAnalysisAlgorithm::fillEfficiency( const std::string &subgroup, 
                                                          const std::string &level,
                                                          const std::string &pidword,
-                                                         const TrigInfo info,
-                                                         std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision* >> pairObjs,
+                                                         const TrigInfo& info,
+                                                         const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision* >>& pairObjs,
                                                          std::vector< asg::AcceptData > acceptObjs ,
-                                                         std::string dirname ) const
+                                                         const std::string& dirname ) const
 {
 
 
@@ -288,8 +288,8 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillEfficiency( const std::string &subg
 
 
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillDistributions( std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs,
-                                                           const TrigInfo info ) const
+void TrigEgammaMonitorAnalysisAlgorithm::fillDistributions( const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs,
+                                                           const TrigInfo& info ) const
 {
 
   const std::string trigger = info.trigName;
@@ -305,7 +305,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillDistributions( std::vector< std::pa
       auto initRois =  tdt()->features<TrigRoiDescriptorCollection>(trigger,condition,"",TrigDefs::allFeaturesOfType,"initialRoI");       
       for( auto &initRoi: initRois ){               
         if( !initRoi.link.isValid() ) continue;      
-        auto feat = match()->getL1Feature( initRoi.source );
+        const auto *feat = match()->getL1Feature( initRoi.source );
         if(feat)
           l1_vec.push_back(feat);
       }
@@ -367,7 +367,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillDistributions( std::vector< std::pa
           auto initRois =  tdt()->features<TrigRoiDescriptorCollection>(trigger,condition,"",TrigDefs::allFeaturesOfType,"initialRoI");       
           for( auto &initRoi: initRois ){               
             if( !initRoi.link.isValid() ) continue;      
-            auto feat = match()->getL1Feature( initRoi.source );
+            const auto *feat = match()->getL1Feature( initRoi.source );
             if(feat)
               l1_vec.push_back(feat);
           }
@@ -471,7 +471,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillDistributions( std::vector< std::pa
 
 
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillL1Calo( const std::string &trigger, std::vector< const xAOD::EmTauRoI* > l1_vec ) const 
+void TrigEgammaMonitorAnalysisAlgorithm::fillL1Calo( const std::string &trigger, const std::vector< const xAOD::EmTauRoI* >& l1_vec ) const 
 {
     auto monGroup = getGroup(trigger+"_Distributions_L1Calo");
 
@@ -484,7 +484,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL1Calo( const std::string &trigger,
     auto emIso_col    = Monitored::Collection( "emIso"   , emIso_vec     );
     auto hadCore_col  = Monitored::Collection( "hadCore" , hadCore_vec  );
 
-    for( auto l1 : l1_vec )
+    for( const auto *l1 : l1_vec )
     {
       if(!l1)  continue;
       eta_vec.push_back( l1->eta() );
@@ -503,7 +503,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL1Calo( const std::string &trigger,
 
 
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillL2Calo(const std::string &trigger, std::vector< const xAOD::TrigEMCluster *> emCluster_vec) const
+void TrigEgammaMonitorAnalysisAlgorithm::fillL2Calo(const std::string &trigger, const std::vector< const xAOD::TrigEMCluster *>& emCluster_vec) const
 {
     auto monGroup = getGroup(trigger+"_Distributions_L2Calo");
     
@@ -513,7 +513,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL2Calo(const std::string &trigger,
     auto eta_col  = Monitored::Collection("eta", eta_vec );    
     auto phi_col  = Monitored::Collection("phi", phi_vec );    
     
-    for ( auto emCluster : emCluster_vec )
+    for ( const auto *emCluster : emCluster_vec )
     {
       if(!emCluster)  continue;
       et_vec.push_back(  emCluster->et()/Gaudi::Units::GeV );
@@ -528,7 +528,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL2Calo(const std::string &trigger,
 
 
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillL2Electron(const std::string &trigger, std::vector< const xAOD::TrigElectron* > el_vec) const
+void TrigEgammaMonitorAnalysisAlgorithm::fillL2Electron(const std::string &trigger, const std::vector< const xAOD::TrigElectron* >& el_vec) const
 {
  
     auto monGroup = getGroup(trigger+"_Distributions_L2Electron");
@@ -539,7 +539,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL2Electron(const std::string &trigg
     auto eta_col  = Monitored::Collection("eta", eta_vec );    
     auto phi_col  = Monitored::Collection("phi", phi_vec );    
     
-    for ( auto el : el_vec )
+    for ( const auto *el : el_vec )
     {
       if(!el)  continue;
       et_vec.push_back( el->pt()/Gaudi::Units::GeV );
@@ -550,7 +550,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL2Electron(const std::string &trigg
     fill( monGroup, et_col, eta_col, phi_col );
 }
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillEFCalo(const std::string &trigger, std::vector< const xAOD::CaloCluster*> clus_vec) const
+void TrigEgammaMonitorAnalysisAlgorithm::fillEFCalo(const std::string &trigger, const std::vector< const xAOD::CaloCluster*>& clus_vec) const
 {
     
     auto monGroup = getGroup( trigger + "_Distributions_EFCalo" );
@@ -572,7 +572,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillEFCalo(const std::string &trigger,
     auto eta_calo_col   = Monitored::Collection("eta_calo" , eta_calo_vec );
     auto phi_calo_col   = Monitored::Collection("phi_calo" , phi_calo_vec );
 
-    for ( auto clus : clus_vec )
+    for ( const auto *clus : clus_vec )
     {
         double tmpeta = -999.;
         if(!clus->retrieveMoment(xAOD::CaloCluster::ETACALOFRAME,tmpeta))
@@ -603,7 +603,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillEFCalo(const std::string &trigger,
 
 
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillShowerShapes(const std::string &trigger, std::vector<const xAOD::Egamma*> eg_vec , bool online) const 
+void TrigEgammaMonitorAnalysisAlgorithm::fillShowerShapes(const std::string &trigger, const std::vector<const xAOD::Egamma*>& eg_vec , bool online) const 
 {
     
     ATH_MSG_DEBUG("Fill SS distributions: " << trigger);
@@ -634,7 +634,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillShowerShapes(const std::string &tri
     auto topoetcone20_rel_col   = Monitored::Collection("topoetcone20_rel", topoetcone20_rel_vec);
     auto topoetcone40_shift_rel_col   = Monitored::Collection("topoetcone40_shift_rel",  topoetcone40_shift_rel_vec );
      
-    for ( auto eg : eg_vec ){
+    for ( const auto *eg : eg_vec ){
 
         if(!eg) continue;
 
@@ -670,7 +670,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillShowerShapes(const std::string &tri
 }
 
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillTracking(const std::string &trigger, std::vector< const xAOD::Electron *> eg_vec, bool online ) const
+void TrigEgammaMonitorAnalysisAlgorithm::fillTracking(const std::string &trigger, const std::vector< const xAOD::Electron *>& eg_vec, bool online ) const
 {
 
     ATH_MSG_DEBUG("Fill tracking");
@@ -702,7 +702,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillTracking(const std::string &trigger
     auto ptvarcone20_rel_col  = Monitored::Collection( "ptvarcone20" , ptvarcone20_rel_vec );
 
 
-    for ( auto eg : eg_vec ){
+    for ( const auto *eg : eg_vec ){
     
       if(!eg)  continue;
 
@@ -757,8 +757,8 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillTracking(const std::string &trigger
 //
 
 
-void TrigEgammaMonitorAnalysisAlgorithm::fillResolutions( std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs,
-                                                          const TrigInfo info ) const
+void TrigEgammaMonitorAnalysisAlgorithm::fillResolutions( const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs,
+                                                          const TrigInfo& info ) const
 {
 
   std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >> pair_l1_vec;
@@ -777,28 +777,28 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillResolutions( std::vector< std::pair
     if (feat){
       if (info.trigL1){
         // Get l1 for all level one objects found for each off object
-        auto l1 = match()->getL1Feature( feat );
+        const auto *l1 = match()->getL1Feature( feat );
         if(l1){
-          pair_l1_vec.push_back( std::make_pair(eg,l1) );
+          pair_l1_vec.emplace_back(eg,l1 );
         }
       }else{
         //
         // Get only off and l1 where the offline object passed by the offline pid selector
         //
-        auto l1 = match()->getL1Feature( feat  );
+        const auto *l1 = match()->getL1Feature( feat  );
         if(eg->type()==xAOD::Type::Electron){
           const xAOD::Electron* el = static_cast<const xAOD::Electron*>(eg);
           float et = getEt(el)/Gaudi::Units::GeV;
           if( et < info.trigThrHLT-5.0) continue;
           if(!eg->auxdecor<bool>(info.trigPidDecorator)) continue;
-          pair_eg_vec.push_back(std::make_pair(el,feat));
-          if(l1)  pair_l1_vec.push_back( std::make_pair(eg,l1) );
+          pair_eg_vec.emplace_back(el,feat);
+          if(l1)  pair_l1_vec.emplace_back(eg,l1 );
         }
         else if(eg->type()==xAOD::Type::Photon){
           float et = getCluster_et(eg)/Gaudi::Units::GeV;
           if( et < info.trigThrHLT-5.0) continue;
-          pair_eg_vec.push_back(std::make_pair(eg,feat));
-          if(l1)  pair_l1_vec.push_back( std::make_pair(eg,l1) );
+          pair_eg_vec.emplace_back(eg,feat);
+          if(l1)  pair_l1_vec.emplace_back(eg,l1 );
         }
       }
 
@@ -834,7 +834,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillResolutions( std::vector< std::pair
 
 
 void TrigEgammaMonitorAnalysisAlgorithm::fillL1CaloResolution(const std::string &trigger,
-                                                              std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >> pairObjs ) const
+                                                              const std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >>& pairObjs ) const
 {
     auto monGroup = getGroup( trigger + "_Resolutions_L1Calo" );
     
@@ -844,9 +844,9 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL1CaloResolution(const std::string
     auto res_et_col = Monitored::Collection( "res_et"   , res_et_vec     );
  
 
-    for (auto& pairObj : pairObjs){
-      auto off = pairObj.first;
-      auto l1 = pairObj.second;
+    for (const auto & pairObj : pairObjs){
+      const auto *off = pairObj.first;
+      const auto *l1 = pairObj.second;
       ATH_MSG_DEBUG("Fill L1CaloResolution");
       if(off->type()==xAOD::Type::Electron){
         const xAOD::Electron* eloff =static_cast<const xAOD::Electron*> (off);
@@ -864,7 +864,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL1CaloResolution(const std::string
 
 
 void TrigEgammaMonitorAnalysisAlgorithm::fillL1CaloAbsResolution(const std::string &trigger,
-                                                                 std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >> pairObjs ) const
+                                                                 const std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >>& pairObjs ) const
 {
     auto monGroup = getGroup( trigger + "_AbsResolutions_L1Calo" );
     
@@ -874,9 +874,9 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL1CaloAbsResolution(const std::stri
     auto res_et_col = Monitored::Collection( "res_et"   , res_et_vec     );
  
 
-    for (auto& pairObj : pairObjs){
-      auto off = pairObj.first;
-      auto l1 = pairObj.second;
+    for (const auto & pairObj : pairObjs){
+      const auto *off = pairObj.first;
+      const auto *l1 = pairObj.second;
       ATH_MSG_DEBUG("Fill L1CaloAbsResolution");
       if(off->type()==xAOD::Type::Electron){
         const xAOD::Electron* eloff =static_cast<const xAOD::Electron*> (off);
@@ -892,7 +892,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL1CaloAbsResolution(const std::stri
 
 
 void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::string &trigger,
-                                                        std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs,
+                                                        const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs,
                                                         bool filliso) const
 {
 
@@ -956,7 +956,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::st
 
 
 
-    for ( auto& pairObj : pairObjs ){
+    for ( const auto & pairObj : pairObjs ){
 
       const xAOD::Electron *off = static_cast<const xAOD::Electron*>(pairObj.first);
       const xAOD::Electron *onl=nullptr;
@@ -1258,7 +1258,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::st
 
 
 void TrigEgammaMonitorAnalysisAlgorithm::fillHLTPhotonResolution(const std::string &trigger,
-                                                        std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs, 
+                                                        const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs, 
                                                         bool filliso) const
 {
 
@@ -1325,7 +1325,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTPhotonResolution(const std::stri
 
 
 
-    for ( auto& pairObj : pairObjs ){
+    for ( const auto & pairObj : pairObjs ){
 
       const xAOD::Photon *off = static_cast<const xAOD::Photon*>(pairObj.first);
       const xAOD::Photon *onl=nullptr;
@@ -1563,7 +1563,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTPhotonResolution(const std::stri
 
 
 void TrigEgammaMonitorAnalysisAlgorithm::fillL2CaloResolution(const std::string &trigger,
-                                                        std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs ) const
+                                                        const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs ) const
 
 {
     ATH_MSG_DEBUG("Fill L2Calo Resolution");
@@ -1591,7 +1591,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL2CaloResolution(const std::string
     auto res_eratio_col   = Monitored::Collection( "res_eratio"     , res_eratio_vec        );
 
 
-    for ( auto& pairObj : pairObjs ){
+    for ( const auto & pairObj : pairObjs ){
 
 
         const xAOD::Egamma *off = pairObj.first;
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.h b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.h
index d66b843cc4fed3e3cc42e32700e837d03d604a99..e5b25c42d3dcecc79ae47259a918c1de37d40a15 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.h
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.h
@@ -21,34 +21,34 @@ class TrigEgammaMonitorAnalysisAlgorithm: public TrigEgammaMonitorBaseAlgorithm
   protected:
 
     void fillLabel( const ToolHandle<GenericMonitoringTool>& groupHandle, const std::string &histname, const std::string &label ) const;
-    void fillEfficiencies( std::vector< std::pair<const xAOD::Egamma*, const TrigCompositeUtils::Decision*> > , TrigInfo ) const;
-    void fillDistributions( std::vector< std::pair<const xAOD::Egamma*, const TrigCompositeUtils::Decision*> > , TrigInfo ) const;
-    void fillResolutions( std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs, const TrigInfo info ) const;
+    void fillEfficiencies( const std::vector< std::pair<const xAOD::Egamma*, const TrigCompositeUtils::Decision*> >& , const TrigInfo& ) const;
+    void fillDistributions( const std::vector< std::pair<const xAOD::Egamma*, const TrigCompositeUtils::Decision*> >& , const TrigInfo& ) const;
+    void fillResolutions( const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs, const TrigInfo& info ) const;
 
   private:
 
 
     // Efficiency monitoring
-    void fillEfficiency( const std::string &subgroup, const std::string &level, const std::string &pidword, const TrigInfo info, 
-                         std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision* >> pairObjs,
-                         std::vector< asg::AcceptData > acceptObjs, std::string dirname ) const;
+    void fillEfficiency( const std::string &subgroup, const std::string &level, const std::string &pidword, const TrigInfo& info, 
+                         const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision* >>& pairObjs,
+                         std::vector< asg::AcceptData > acceptObjs, const std::string& dirname ) const;
 
 
     // Disribution monitoring
-    void fillL1Calo( const std::string &trigger, std::vector< const xAOD::EmTauRoI* > l1_vec ) const; 
-    void fillL2Calo(const std::string &trigger, std::vector< const xAOD::TrigEMCluster*> emCluster_vec ) const;
-    void fillL2Electron(const std::string &trigger, std::vector<const xAOD::TrigElectron*> el_vec) const;
-    void fillEFCalo(const std::string &trigger, std::vector<const xAOD::CaloCluster*> clus_vec) const;
-    void fillShowerShapes(const std::string &trigger, std::vector<const xAOD::Egamma*> eg_vec, bool online) const; 
-    void fillTracking(const std::string &trigger, std::vector<const xAOD::Electron *> eg_vec, bool online ) const;
+    void fillL1Calo( const std::string &trigger, const std::vector< const xAOD::EmTauRoI* >& l1_vec ) const; 
+    void fillL2Calo(const std::string &trigger, const std::vector< const xAOD::TrigEMCluster*>& emCluster_vec ) const;
+    void fillL2Electron(const std::string &trigger, const std::vector<const xAOD::TrigElectron*>& el_vec) const;
+    void fillEFCalo(const std::string &trigger, const std::vector<const xAOD::CaloCluster*>& clus_vec) const;
+    void fillShowerShapes(const std::string &trigger, const std::vector<const xAOD::Egamma*>& eg_vec, bool online) const; 
+    void fillTracking(const std::string &trigger, const std::vector<const xAOD::Electron *>& eg_vec, bool online ) const;
 
 
     // Resolution monitoring
-    void fillL1CaloResolution(const std::string &trigger, std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >> pairObjs ) const;
-    void fillL1CaloAbsResolution(const std::string &trigger, std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >> pairObjs ) const;
-    void fillL2CaloResolution(const std::string &trigger, std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs ) const;
-    void fillHLTElectronResolution(const std::string &trigger, std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs , bool) const;
-    void fillHLTPhotonResolution(const std::string &trigger, std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pairObjs , bool) const;
+    void fillL1CaloResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >>& pairObjs ) const;
+    void fillL1CaloAbsResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >>& pairObjs ) const;
+    void fillL2CaloResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs ) const;
+    void fillHLTElectronResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs , bool) const;
+    void fillHLTPhotonResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >>& pairObjs , bool) const;
 
 };
 
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx
index c795035b78ab9e890220eb60b4effa2082db0573..7ab325cd54b62e2a42083fd378eac7f550a8a860 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx
@@ -50,9 +50,9 @@ StatusCode TrigEgammaMonitorBaseAlgorithm::initialize()
 
 
 
-bool TrigEgammaMonitorBaseAlgorithm::ApplyElectronPid( const xAOD::Electron *eg, const std::string pidname) const
+bool TrigEgammaMonitorBaseAlgorithm::ApplyElectronPid( const xAOD::Electron *eg, const std::string& pidname) const
 {
-    auto ctx = Gaudi::Hive::currentContext() ;
+    const auto& ctx = Gaudi::Hive::currentContext() ;
     if (pidname == "tight"){
         return (bool) this->m_electronIsEMTool[0]->accept(ctx,eg);
     }
@@ -92,9 +92,9 @@ bool TrigEgammaMonitorBaseAlgorithm::ApplyElectronPid( const xAOD::Electron *eg,
 // ************************************************************************************************
 
 
-bool TrigEgammaMonitorBaseAlgorithm::ApplyPhotonPid( const xAOD::Photon *eg, const std::string pidname) const
+bool TrigEgammaMonitorBaseAlgorithm::ApplyPhotonPid( const xAOD::Photon *eg, const std::string& pidname) const
 {
-    auto ctx = Gaudi::Hive::currentContext() ;
+    const auto& ctx = Gaudi::Hive::currentContext() ;
     if (pidname == "tight"){
         return (bool) this->m_photonIsEMTool[0]->accept(ctx,eg);
     }
@@ -113,7 +113,7 @@ bool TrigEgammaMonitorBaseAlgorithm::ApplyPhotonPid( const xAOD::Photon *eg, con
 
 
 
-bool TrigEgammaMonitorBaseAlgorithm::isIsolated(const xAOD::Electron *eg, const std::string isolation) const {
+bool TrigEgammaMonitorBaseAlgorithm::isIsolated(const xAOD::Electron *eg, const std::string& isolation) const {
   ATH_MSG_DEBUG("Apply Isolation " << isolation);
   float ptcone20;
   eg->isolationValue(ptcone20, xAOD::Iso::ptcone20);
@@ -141,7 +141,7 @@ bool TrigEgammaMonitorBaseAlgorithm::isIsolated(const xAOD::Electron *eg, const
 
 
 
-bool TrigEgammaMonitorBaseAlgorithm::isPrescaled(const std::string trigger) const {
+bool TrigEgammaMonitorBaseAlgorithm::isPrescaled(const std::string& trigger) const {
 
     bool efprescale=false;
     bool l1prescale=false;
@@ -174,7 +174,7 @@ bool TrigEgammaMonitorBaseAlgorithm::isPrescaled(const std::string trigger) cons
 
 
 
-asg::AcceptData TrigEgammaMonitorBaseAlgorithm::setAccept( const TrigCompositeUtils::Decision *dec, const TrigInfo info) const {
+asg::AcceptData TrigEgammaMonitorBaseAlgorithm::setAccept( const TrigCompositeUtils::Decision *dec, const TrigInfo& info) const {
     
     ATH_MSG_DEBUG("setAccept");
 
@@ -574,7 +574,7 @@ float TrigEgammaMonitorBaseAlgorithm::getE0Eaccordion(const xAOD::Egamma *eg) co
 
 
 
-TrigInfo TrigEgammaMonitorBaseAlgorithm::getTrigInfo(const std::string trigger) const{ 
+TrigInfo TrigEgammaMonitorBaseAlgorithm::getTrigInfo(const std::string& trigger) const{ 
   return m_trigInfo.at(trigger); 
 }
 
@@ -582,7 +582,7 @@ TrigInfo TrigEgammaMonitorBaseAlgorithm::getTrigInfo(const std::string trigger)
 
 // This is not const function and can not be used in execute mode (not thread safe)
 // adds entry in TrigInfo map to retrieve later via trigger name
-void TrigEgammaMonitorBaseAlgorithm::setTrigInfo(const std::string trigger){
+void TrigEgammaMonitorBaseAlgorithm::setTrigInfo(const std::string& trigger){
 
     /********************************************
       std::string trigName; //Trigger Name
@@ -635,7 +635,7 @@ void TrigEgammaMonitorBaseAlgorithm::setTrigInfo(const std::string trigger){
 
 
 
-bool TrigEgammaMonitorBaseAlgorithm::splitTriggerName(const std::string trigger, 
+bool TrigEgammaMonitorBaseAlgorithm::splitTriggerName(const std::string& trigger, 
                                                   std::string &p1trigger, 
                                                   std::string &p2trigger) const {
 
@@ -688,8 +688,8 @@ bool TrigEgammaMonitorBaseAlgorithm::splitTriggerName(const std::string trigger,
 
 
 
-void TrigEgammaMonitorBaseAlgorithm::parseTriggerName(const std::string trigger, 
-                                                  std::string defaultPid,
+void TrigEgammaMonitorBaseAlgorithm::parseTriggerName(const std::string& trigger, 
+                                                  const std::string& defaultPid,
                                                   bool &isL1,
                                                   std::string &type,
                                                   float &threshold, 
@@ -779,15 +779,15 @@ void TrigEgammaMonitorBaseAlgorithm::parseTriggerName(const std::string trigger,
 
 
 
-std::string TrigEgammaMonitorBaseAlgorithm::getProbePid(const std::string pidtype) const {
+std::string TrigEgammaMonitorBaseAlgorithm::getProbePid(const std::string& pidtype) const {
     // Note vloose/lhvloose trigger mapped to Loose/LHLoose offline PID
     return m_pidMap.at(pidtype);
 }
 
 
 
-std::string TrigEgammaMonitorBaseAlgorithm::getL1Item(std::string trigger) const{
-    auto trig_conf = m_trigdec->ExperimentalAndExpertMethods()->getChainConfigurationDetails(trigger);
+std::string TrigEgammaMonitorBaseAlgorithm::getL1Item(const std::string& trigger) const{
+    const auto *trig_conf = m_trigdec->ExperimentalAndExpertMethods()->getChainConfigurationDetails(trigger);
     std::string L1_seed = "";
     if(trig_conf != nullptr){
         ATH_MSG_DEBUG("TrigConf available");
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.h b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.h
index ca978e60c4f26cc430c6a41b7eab394e0bed66a5..6e87750a460c0b1da0935d54b29ad49e7ee0ce45 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.h
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.h
@@ -121,33 +121,33 @@ class TrigEgammaMonitorBaseAlgorithm : public AthMonitorAlgorithm {
     /*! Get the trig info map */
     std::map<std::string,TrigInfo> getTrigInfoMap() { return m_trigInfo; } 
     /*! Get offline electron decision */
-    bool ApplyElectronPid(const xAOD::Electron *eg,const std::string) const;
+    bool ApplyElectronPid(const xAOD::Electron *eg,const std::string&) const;
     /*! Get offline electron decision */
-    bool ApplyPhotonPid(const xAOD::Photon *eg,const std::string) const;
+    bool ApplyPhotonPid(const xAOD::Photon *eg,const std::string&) const;
     /*! Get the TDT  */
     const ToolHandle<Trig::TrigDecisionTool>& tdt() const {return m_trigdec;};
     /*! Get the e/g match tool */
     const ToolHandle<TrigEgammaMatchingToolMT>& match() const {return m_matchTool;}
     /*! Set the accept object for all trigger levels */
-    asg::AcceptData setAccept(const TrigCompositeUtils::Decision*, const TrigInfo) const;
+    asg::AcceptData setAccept(const TrigCompositeUtils::Decision*, const TrigInfo&) const;
     /*! Get the trigger info parsed from the chain name */
-    TrigInfo getTrigInfo(const std::string) const;
+    TrigInfo getTrigInfo(const std::string&) const;
     /*! Get delta R */
     float dR(const float, const float, const float, const float) const;
     /*! Simple setter to pick up correct probe PID for given trigger */
-    void parseTriggerName(const std::string,const std::string, bool&, std::string &,float &, float &, std::string &,std::string &, bool&, bool&) const;
+    void parseTriggerName(const std::string&,const std::string&, bool&, std::string &,float &, float &, std::string &,std::string &, bool&, bool&) const;
     /*! Split double object trigger in two simple object trigger */
-    bool splitTriggerName(const std::string, std::string &, std::string &) const;
+    bool splitTriggerName(const std::string&, std::string &, std::string &) const;
     /*! Creates static map to return L1 item from trigger name */
-    std::string getL1Item(std::string trigger) const;
+    std::string getL1Item(const std::string& trigger) const;
     /*! Check if electron fulfils isolation criteria */
-    bool isIsolated(const xAOD::Electron*, const std::string) const;
+    bool isIsolated(const xAOD::Electron*, const std::string&) const;
     /*! Check if the event is prescaled */
-    bool isPrescaled(const std::string) const;
+    bool isPrescaled(const std::string&) const;
     /*! Get the pid name */
-    std::string getProbePid(const std::string) const;
+    std::string getProbePid(const std::string&) const;
     /*! Set the trigger info parsed from the chain name */
-    void setTrigInfo(const std::string);
+    void setTrigInfo(const std::string&);
     
     
   
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorElectronAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorElectronAlgorithm.cxx
index 9598afba4802570c7dd69ea5586e214c9f39a750..dcb4673076202b2fbef205d9b1eba5d91cf2b36d 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorElectronAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorElectronAlgorithm.cxx
@@ -89,9 +89,9 @@ StatusCode TrigEgammaMonitorElectronAlgorithm::fillHistograms( const EventContex
 
 
 StatusCode TrigEgammaMonitorElectronAlgorithm::executeNavigation( const EventContext& ctx, 
-                                                             std::string trigItem,
+                                                             const std::string& trigItem,
                                                              float etthr,
-                                                             std::string pidName,
+                                                             const std::string& pidName,
                                                              std::vector<std::pair<std::shared_ptr<const xAOD::Egamma>, const TrigCompositeUtils::Decision* >> &pairObjs) const
 {
 
@@ -107,7 +107,7 @@ StatusCode TrigEgammaMonitorElectronAlgorithm::executeNavigation( const EventCon
 
 
   const std::string decor="is"+pidName;
-  for(const auto eg : *offElectrons ){
+  for(const auto *const eg : *offElectrons ){
 
       const TrigCompositeUtils::Decision *dec=nullptr; 
 
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorElectronAlgorithm.h b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorElectronAlgorithm.h
index 5ca2d5ef3c6ab3afce6b60530ac0ff3b2d71b942..1b5f4c60f264b538b5e7b54ccbe36785aa91879d 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorElectronAlgorithm.h
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorElectronAlgorithm.h
@@ -30,7 +30,7 @@ class TrigEgammaMonitorElectronAlgorithm: public TrigEgammaMonitorAnalysisAlgori
 
   
     /*! navigation method called by executeNavigation */
-    StatusCode executeNavigation(const EventContext& ctx, const std::string trigItem,float,std::string,
+    StatusCode executeNavigation(const EventContext& ctx, const std::string& trigItem,float,const std::string&,
                                  std::vector<std::pair<std::shared_ptr<const xAOD::Egamma>, const TrigCompositeUtils::Decision*>> &) const;
     
     
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorPhotonAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorPhotonAlgorithm.cxx
index 7db10fd1dbbedb73943edcf26d8ee2f40b94ec9d..c35940275017db30440dd04f5d9e6cd444a2008f 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorPhotonAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorPhotonAlgorithm.cxx
@@ -89,7 +89,7 @@ StatusCode TrigEgammaMonitorPhotonAlgorithm::fillHistograms( const EventContext&
 
 
 
-StatusCode TrigEgammaMonitorPhotonAlgorithm::executeNavigation( const EventContext& ctx, std::string trigItem, float etthr, std::string pidName,  
+StatusCode TrigEgammaMonitorPhotonAlgorithm::executeNavigation( const EventContext& ctx, const std::string& trigItem, float etthr, const std::string& pidName,  
                                                        std::vector<std::pair<std::shared_ptr<const xAOD::Egamma>, const TrigCompositeUtils::Decision * >> &pairObjs) 
   const
 {
@@ -107,7 +107,7 @@ StatusCode TrigEgammaMonitorPhotonAlgorithm::executeNavigation( const EventConte
 
   const std::string decor="is"+pidName;
 
-  for(const auto eg : *offPhotons ){
+  for(const auto *const eg : *offPhotons ){
       const TrigCompositeUtils::Decision *dec=nullptr; 
       if(!eg->caloCluster()){
           ATH_MSG_DEBUG("No caloCluster");
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorPhotonAlgorithm.h b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorPhotonAlgorithm.h
index 15aeb2e0237181f215cc230c75fd8190f631de8d..f9d553deb91769746e950611e4cd0b1cfe528a49 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorPhotonAlgorithm.h
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorPhotonAlgorithm.h
@@ -31,7 +31,7 @@ class TrigEgammaMonitorPhotonAlgorithm: public TrigEgammaMonitorAnalysisAlgorith
   
     
     /*! navigation method called by executeNavigation */
-    StatusCode executeNavigation(const EventContext& ctx, const std::string trigItem,float, std::string pidName,
+    StatusCode executeNavigation(const EventContext& ctx, const std::string& trigItem,float, const std::string& pidName,
                                  std::vector<std::pair<std::shared_ptr<const xAOD::Egamma>, const TrigCompositeUtils::Decision*>> &) const;
   
     /*! List of triggers to study */
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorTagAndProbeAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorTagAndProbeAlgorithm.cxx
index 741b7c705d19b4d58ca18d4c748c236e6f36ac56..3ae6677ad8b5e1c0926926fa7775cc4b22eaac7f 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorTagAndProbeAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorTagAndProbeAlgorithm.cxx
@@ -44,7 +44,7 @@ TrigEgammaMonitorTagAndProbeAlgorithm::~TrigEgammaMonitorTagAndProbeAlgorithm()
 StatusCode TrigEgammaMonitorTagAndProbeAlgorithm::initialize() {
     
     ATH_MSG_INFO("TrigEgammaMonitorTagAndProbeAlgorithm::initialize()...");
-    ATH_CHECK(TrigEgammaMonitorBaseAlgorithm::initialize());
+    ATH_CHECK(TrigEgammaMonitorAnalysisAlgorithm::initialize());
 
     ATH_CHECK(m_offElectronKey.initialize());
     ATH_CHECK(m_jetKey.initialize());
@@ -101,7 +101,7 @@ StatusCode TrigEgammaMonitorTagAndProbeAlgorithm::fillHistograms( const EventCon
         
 
         const TrigInfo info = getTrigInfo(probeTrigger);
-        std::string trigName=probeTrigger;
+        const std::string& trigName=probeTrigger;
 
         ATH_MSG_DEBUG("Trigger " << probeTrigger << " pidword " << info.trigPidDecorator << " threshold " << info.trigThrHLT);
         matchObjects(trigName, probes, pairObjs);
@@ -174,7 +174,7 @@ bool TrigEgammaMonitorTagAndProbeAlgorithm::executeTandP( const EventContext& ct
  
 
 
-    SG::ReadHandle<xAOD::JetContainer> jets(m_jetKey);
+    SG::ReadHandle<xAOD::JetContainer> jets(m_jetKey,ctx);
     if(!jets.isValid()){
       ATH_MSG_WARNING("Failed to retrieve JetContainer");
       return false;
@@ -199,11 +199,11 @@ bool TrigEgammaMonitorTagAndProbeAlgorithm::executeTandP( const EventContext& ct
 
     
     ATH_MSG_DEBUG("Execute TandP BaseTool " << offElectrons->size());
-    for(const auto elTag : *offElectrons)
+    for(const auto *const elTag : *offElectrons)
     {
         if( ! isTagElectron( monGroup, elTag) ) continue;
         
-        for(const auto elProbe : *offElectrons)
+        for(const auto *const elProbe : *offElectrons)
         {  // Dress the probes with updated Pid decision
            
             fillLabel(monGroup, "ProbeCutCounter", "Electrons");
@@ -286,7 +286,7 @@ bool TrigEgammaMonitorTagAndProbeAlgorithm::minimalTriggerRequirement() const {
 
 
 
-void TrigEgammaMonitorTagAndProbeAlgorithm::matchObjects(const std::string probeTrigItem, 
+void TrigEgammaMonitorTagAndProbeAlgorithm::matchObjects(const std::string& probeTrigItem, 
                                            std::vector<std::shared_ptr<const xAOD::Electron>>& probeElectrons,
                                            std::vector<std::pair<const xAOD::Egamma*, const TrigCompositeUtils::Decision *>> &pairObj ) const
 {
@@ -303,7 +303,7 @@ void TrigEgammaMonitorTagAndProbeAlgorithm::matchObjects(const std::string probe
 
 
 
-bool TrigEgammaMonitorTagAndProbeAlgorithm::isTagElectron( ToolHandle<GenericMonitoringTool> monGroup, 
+bool TrigEgammaMonitorTagAndProbeAlgorithm::isTagElectron( const ToolHandle<GenericMonitoringTool>& monGroup, 
                                                const xAOD::Electron *el) const 
 {
     fillLabel(monGroup, "TagCutCounter", "Electrons");
@@ -435,7 +435,7 @@ bool TrigEgammaMonitorTagAndProbeAlgorithm::isTagElectron( ToolHandle<GenericMon
 
 
 
-bool TrigEgammaMonitorTagAndProbeAlgorithm::isGoodProbeElectron( ToolHandle<GenericMonitoringTool> monGroup, 
+bool TrigEgammaMonitorTagAndProbeAlgorithm::isGoodProbeElectron( const ToolHandle<GenericMonitoringTool>& monGroup, 
                                                    const xAOD::Electron *el,
                                                    const xAOD::JetContainer *jets ) const 
 {
@@ -478,7 +478,7 @@ bool TrigEgammaMonitorTagAndProbeAlgorithm::isGoodProbeElectron( ToolHandle<Gene
         TLorentzVector probeCandidate;
         probeCandidate.SetPtEtaPhiE(el->pt(), el->trackParticle()->eta(), el->trackParticle()->phi(), el->e());
         Int_t jetsAroundProbeElectron = 0; 
-        for(const auto i_jet : *jets){
+        for(const auto *const i_jet : *jets){
             TLorentzVector jet;
             jet.SetPtEtaPhiE(i_jet->pt(), i_jet->eta(), i_jet->phi(), i_jet->e());
             if( (jet.Et() > 20*Gaudi::Units::GeV) && (jet.DeltaR(probeCandidate) < 0.4)) jetsAroundProbeElectron++;
@@ -498,7 +498,7 @@ bool TrigEgammaMonitorTagAndProbeAlgorithm::isGoodProbeElectron( ToolHandle<Gene
 
 void TrigEgammaMonitorTagAndProbeAlgorithm::dressPid(const xAOD::Electron *eg) const
 {    
-    auto ctx = Gaudi::Hive::currentContext() ;
+    const auto& ctx = Gaudi::Hive::currentContext() ;
     for(int ipid=0;ipid<3;ipid++){
         bool accept = (bool) this->m_electronIsEMTool[ipid]->accept(ctx,eg);
         const std::string pidname="is"+m_isemname[ipid];
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorTagAndProbeAlgorithm.h b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorTagAndProbeAlgorithm.h
index f4aac99f423ff758219584bb5d0a8cf8231adc4b..cc9d0e79e12f30bf7b532741c2250a209fbb3cb3 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorTagAndProbeAlgorithm.h
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorTagAndProbeAlgorithm.h
@@ -29,7 +29,7 @@ class TrigEgammaMonitorTagAndProbeAlgorithm: public TrigEgammaMonitorAnalysisAlg
     bool executeTandP( const EventContext& ctx, std::vector<std::shared_ptr<const xAOD::Electron>> & ) const;
 
     /*! Match probes called by derived classes */
-    void matchObjects(const std::string trigItem,  std::vector<std::shared_ptr<const xAOD::Electron>>&, 
+    void matchObjects(const std::string& trigItem,  std::vector<std::shared_ptr<const xAOD::Electron>>&, 
                       std::vector<std::pair<const xAOD::Egamma*, const TrigCompositeUtils::Decision*>> &) const; 
     
    
@@ -44,9 +44,9 @@ class TrigEgammaMonitorTagAndProbeAlgorithm: public TrigEgammaMonitorAnalysisAlg
     /*! at least one chain should pass. e28_tight_iloose? */
     bool minimalTriggerRequirement () const;
     /*! Tag Electron selection */
-    bool isTagElectron( ToolHandle<GenericMonitoringTool> monGroup, const xAOD::Electron *el) const;
+    bool isTagElectron( const ToolHandle<GenericMonitoringTool>& monGroup, const xAOD::Electron *el) const;
     /*! Probe selection */
-    bool isGoodProbeElectron( ToolHandle<GenericMonitoringTool> monGroup, const xAOD::Electron *el, const xAOD::JetContainer *) const;
+    bool isGoodProbeElectron( const ToolHandle<GenericMonitoringTool>& monGroup, const xAOD::Electron *el, const xAOD::JetContainer *) const;
     /*! Return pseudo-lifetime of Jpsi */
     float getPseudoLifetime(const xAOD::Electron*,const xAOD::Electron*) const;
     /*! Calculate the displacement of the Jpsi vertex w.r.t. the primary vertex in the transverse plane */
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorElectronAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorElectronAlgorithm.cxx
index 44082afd5b35b607cac2b5a9c91232cdc1c0abb9..3ac9320d11ce4bbb2f92004a9426080f8e028496 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorElectronAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorElectronAlgorithm.cxx
@@ -49,7 +49,7 @@ void egammaMonitorElectronAlgorithm::filltopoElectronTrackCaloMatch(const EventC
     auto deltaPhiLast_col = Monitored::Collection("deltaPhiLast",deltaPhiLast_vec );
     auto d0_col = Monitored::Collection("d0",d0_vec);
 
-    for (const auto electron : *electrons){
+    for (const auto *const electron : *electrons){
 
         deltaEta0_vec.push_back(getCaloTrackMatch_deltaEta0(electron));
         deltaEta1_vec.push_back(getCaloTrackMatch_deltaEta1(electron));
@@ -102,7 +102,7 @@ void egammaMonitorElectronAlgorithm::filltopoElectronShowerShapes(const EventCon
     auto eta_col                = Monitored::Collection("eta"      , eta_vec     );
     auto phi_col                = Monitored::Collection("phi"      , phi_vec     );
     
-    for ( const auto electron : *electrons ){
+    for ( const auto *const electron : *electrons ){
 
         if(!electron) continue;
         
@@ -137,7 +137,7 @@ void egammaMonitorElectronAlgorithm::filltopoElectronIsolation(const EventContex
   
   // This is ok but defeats a bit the purpose...
   std::map<TString,std::vector<float>> iso_vec;
-  for (auto hk : m_isoKey) {
+  for (const auto& hk : m_isoKey) {
     TString n = hk.key();
     n.ReplaceAll(m_baseName,"");
     iso_vec.emplace(n,std::vector<float>());
@@ -148,7 +148,7 @@ void egammaMonitorElectronAlgorithm::filltopoElectronIsolation(const EventContex
 
   std::vector<std::reference_wrapper<Monitored::IMonitoredVariable>> allMonIsoVars;
   allMonIsoVars.insert(allMonIsoVars.end(),{col0,col1});
-  for (auto hk : m_isoKey) {
+  for (const auto& hk : m_isoKey) {
     TString n = hk.key();
     n.ReplaceAll(m_baseName,"");
     SG::ReadDecorHandle<xAOD::ElectronContainer, float> handle(hk,ctx);
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorPhotonAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorPhotonAlgorithm.cxx
index 40c3ab6316a30a051fe2c6e2c559210c86fd913f..c933646e13c075400f31599ac16b89e2d5db01a6 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorPhotonAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorPhotonAlgorithm.cxx
@@ -56,7 +56,7 @@ void egammaMonitorPhotonAlgorithm::filltopoPhotonShowerShapes( const EventContex
     auto eta_col                = Monitored::Collection("eta"      , eta_vec     );
     auto phi_col                = Monitored::Collection("phi"      , phi_vec     );
 
-    for ( const auto photon : *photons ){
+    for ( const auto *const photon : *photons ){
 
         if(!photon) continue;
         
@@ -93,7 +93,7 @@ void egammaMonitorPhotonAlgorithm::filltopoPhotonIsolation(const EventContext& c
   auto topoetcone20_col       = Monitored::Collection("topoetcone20", topoetcone20_vec);
   auto topoetcone40_shift_col = Monitored::Collection("topoetcone40_shift", topoetcone40_shift_vec);
 
-  for (auto hk : m_isoKey) {
+  for (const auto& hk : m_isoKey) {
     TString n = hk.key();
     n.ReplaceAll(m_baseName,"");
     SG::ReadDecorHandle<xAOD::PhotonContainer, float> handle(hk,ctx);
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorSuperClusterAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorSuperClusterAlgorithm.cxx
index 317c7658a62b20471e365c4c088011c37531483b..58cc129513a0b05a4ae5a1911836b78ffdb3328c 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorSuperClusterAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/egammaMonitorSuperClusterAlgorithm.cxx
@@ -40,7 +40,7 @@ void egammaMonitorSuperClusterAlgorithm::fillSuperClusterQuantities( const Event
     auto clusterSize_col = Monitored::Collection("clusterSize" ,clusterSize_vec);
     auto signalState_col = Monitored::Collection("signalState" ,signalState_vec);
     
-    for (const auto eg : *egammaRec) {
+    for (const auto *const eg : *egammaRec) {
 
         et_vec.push_back(eg->caloCluster()->et()/Gaudi::Units::GeV);
         eta_vec.push_back(eg->caloCluster()->eta());