diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionMgField/src/ForwardRegionFieldSvc.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionMgField/src/ForwardRegionFieldSvc.cxx
index 1273c16969a26d46cb3496c75d9b2186fb1d5e3f..e0e69ef4f5b30f00f9a8b569b7c35ccc9fe068bf 100644
--- a/ForwardDetectors/ForwardSimulation/ForwardRegionMgField/src/ForwardRegionFieldSvc.cxx
+++ b/ForwardDetectors/ForwardSimulation/ForwardRegionMgField/src/ForwardRegionFieldSvc.cxx
@@ -12,6 +12,7 @@
 
 #include "PathResolver/PathResolver.h"
 
+//comments kept as a reference
 // static ForwardRegionMgField q1("Q1",ForwardRegionField::Q1);
 // static ForwardRegionMgField q2("Q2",ForwardRegionField::Q2);
 // static ForwardRegionMgField q3("Q3",ForwardRegionField::Q3);
@@ -133,7 +134,7 @@ void MagField::ForwardRegionFieldSvc::getField(const double *xyz, double *bxyz,
 /** if deriv[9] is given, field derivatives are returned in kT/mm */
 void MagField::ForwardRegionFieldSvc::getFieldZR(const double*, double*, double*) const
 {
-  throw; //FIXME not supported yet.
+  throw std::logic_error("MagField::ForwardRegionFieldSvc::getFieldZR should not be called"); //FIXME not supported yet.
 }
 
 G4ThreeVector MagField::ForwardRegionFieldSvc::FieldValue(G4ThreeVector Point) const
diff --git a/ForwardDetectors/ForwardTracker/ForwardTracker/Beamline.h b/ForwardDetectors/ForwardTracker/ForwardTracker/Beamline.h
index 2b661076b47341a02620599d3381485b1689f7eb..5fbe3335636e957c7ed1c96200392afe36294fbd 100644
--- a/ForwardDetectors/ForwardTracker/ForwardTracker/Beamline.h
+++ b/ForwardDetectors/ForwardTracker/ForwardTracker/Beamline.h
@@ -1,13 +1,13 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef FORWARDTRACKER_BEAMLINE_H
 #define FORWARDTRACKER_BEAMLINE_H
 
 #include "IBeamElement.h"
-#include "IParticle.h"
-#include "Point.h"
+#include <iosfwd>
+#include <string>
 
 namespace ForwardTracker {
 
diff --git a/ForwardDetectors/ForwardTracker/ForwardTracker/IBeamElement.h b/ForwardDetectors/ForwardTracker/ForwardTracker/IBeamElement.h
index 70026df72b0be00db8ada1957d46abf41c3ba829..4b1aed9d458a0d7e67ad7733309d9d2a5a44f702 100644
--- a/ForwardDetectors/ForwardTracker/ForwardTracker/IBeamElement.h
+++ b/ForwardDetectors/ForwardTracker/ForwardTracker/IBeamElement.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef FORWARDTRACKER_IBEAMELEMENT_H
@@ -9,8 +9,10 @@
 
 #include "boost/shared_ptr.hpp"
 
+#include <string>
 #include <vector>
 #include <list>
+#include <iosfwd>
 
 namespace ForwardTracker {
 
diff --git a/ForwardDetectors/ForwardTracker/src/Beamline.cxx b/ForwardDetectors/ForwardTracker/src/Beamline.cxx
index 67165ccbce7fc0b058a02e32c946135f19f0f79c..a46ac4bcbf87f9c4b90cf7731c8d5fd58f3d31e3 100644
--- a/ForwardDetectors/ForwardTracker/src/Beamline.cxx
+++ b/ForwardDetectors/ForwardTracker/src/Beamline.cxx
@@ -1,10 +1,18 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "ForwardTracker/Beamline.h"
+#include "ForwardTracker/Point.h"
+#include "ForwardTracker/IParticle.h"
+#include <cmath>      //fabs
+#include <iostream>   //<<, ostream
+#include <iomanip>    //setw
+#include <sstream>    //stringstream
+#include <ios>        //std::fixed
+#include <algorithm>  //std::find_if
+#include <stdexcept>  //std::runtime_error
 
-#include <iostream>
 
 namespace ForwardTracker {
   
@@ -12,7 +20,7 @@ namespace ForwardTracker {
   
   IBeamElement::Iter_t findBeamLineEnd(IBeamElement::Container_t& container) {
   
-    IBeamElement::Iter_t ei = find_if(container.begin(), container.end(), isEndMarker);
+    IBeamElement::Iter_t ei = std::find_if(container.begin(), container.end(), isEndMarker);
     
     if (ei != container.end()) ++ei;
     else throw std::runtime_error("Could not find the end of the beamline.");
@@ -65,7 +73,7 @@ namespace ForwardTracker {
     
     IBeamElement::ConstIter_t nextElement = std::lower_bound(m_elements.begin(), m_elements.end(), particle.z(), zPosNextElement());
 
-    std::find_if(nextElement, m_elements.end(), ParticleTracker(particle));
+    [[maybe_unused]]const auto & firstOutOfAperture = std::find_if(nextElement, m_elements.end(), ParticleTracker(particle));
   }
   
   class Stringer {
diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/tools/RunZDCTreeAnalysis.C b/ForwardDetectors/ZDC/ZdcAnalysis/tools/RunZDCTreeAnalysis.C
index 0945d8f8995c08fac84220284245d038f9214b90..0bc30c0a8229124fdd24b64ccad947411778698d 100644
--- a/ForwardDetectors/ZDC/ZdcAnalysis/tools/RunZDCTreeAnalysis.C
+++ b/ForwardDetectors/ZDC/ZdcAnalysis/tools/RunZDCTreeAnalysis.C
@@ -31,7 +31,7 @@ void SetT0Values(double LGt0Array[2][4], double HGt0Array[2][4])
 
 } 
 
-void LoadCalibrations(ZDCTreeAnalysis* ana, std::string filename, int runNumber, bool eCalib = true, bool t0Calib = true)
+void LoadCalibrations(ZDCTreeAnalysis* ana, const std::string & filename, int runNumber, bool eCalib = true, bool t0Calib = true)
 {
   TFile* file = TFile::Open(filename.c_str());
   if (!file->IsOpen()) {
diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/tools/ZDCNLCalibration.cxx b/ForwardDetectors/ZDC/ZdcAnalysis/tools/ZDCNLCalibration.cxx
index 40f70cacf81b0e5e0d60ace358e59e8dd58e9ee1..ad61a01b5ba82265a796284d7f2e27e6dafd59b1 100644
--- a/ForwardDetectors/ZDC/ZdcAnalysis/tools/ZDCNLCalibration.cxx
+++ b/ForwardDetectors/ZDC/ZdcAnalysis/tools/ZDCNLCalibration.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #define ZDCNLCalibration_cxx
@@ -48,8 +48,9 @@ void ZDCNLCalibration::FillLumiBlockEvtMap()
   }
 }
 
-void ZDCNLCalibration::AddCalibration(size_t side, std::string tag, const CalibData& calib)
+void ZDCNLCalibration::AddCalibration(size_t side, const std::string & tag, const CalibData& calib)
 {
+  //cppcheck-suppress mismatchingContainers
   std::map<std::string, CalibData>::iterator iter = m_calibrations.at(side).find(tag);
   if (iter != m_calibrations[side].end()) (*iter).second = calib;//*iter = std::pair<std::string, CalibData>(tag, calib);
   else {
@@ -57,7 +58,7 @@ void ZDCNLCalibration::AddCalibration(size_t side, std::string tag, const CalibD
   }
 }
 
-CalibData ZDCNLCalibration::GetCalibration(size_t side, std::string tag)
+CalibData ZDCNLCalibration::GetCalibration(size_t side, const std::string & tag)
 {
   CalibData null;
 
diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/tools/ZDCNLCalibration.h b/ForwardDetectors/ZDC/ZdcAnalysis/tools/ZDCNLCalibration.h
index 58a356e81356611d81d60ac4117f539e79e4c502..47c0c8f5a34432ae9f6d70dea4515ab42420d97e 100644
--- a/ForwardDetectors/ZDC/ZdcAnalysis/tools/ZDCNLCalibration.h
+++ b/ForwardDetectors/ZDC/ZdcAnalysis/tools/ZDCNLCalibration.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 //////////////////////////////////////////////////////////
@@ -15,18 +15,21 @@
 #include <TROOT.h>
 #include <TTree.h>
 #include <TFile.h>
-#include <TH1.h>
+
 
 #include <array>
 #include <map>
 #include <algorithm>
 #include <iostream>
 #include <vector>
+#include <string>
 
 #include <TVectorD.h>
 #include <TMatrixD.h>
 #include <TDecompLU.h>
 
+class TH1;
+class TH1D;
 
 struct CalibData 
 {
@@ -55,12 +58,10 @@ class ZDCNLCalibration
   TTree*  m_tree;
 
   size_t m_maxNLPower;
-  //  float  m_HEDeweight;
   bool m_useGRL;
   int m_debugLevel;
 
-  // size_t m_numWeights;
-  // size_t m_numFitParams;
+  
 
   const float m_SNEnergy;
   const std::vector<float> m_HEFraction;
@@ -73,21 +74,10 @@ class ZDCNLCalibration
   UInt_t          passBits;
   
   Float_t         zdc_ZdcAmp[2];
-  //   Float_t         zdc_ZdcEnergy[2];
-  //   Float_t         zdc_ZdcTime[2];
-  //   Short_t         zdc_ZdcStatus[2];
-  //   Float_t         zdc_ZdcTrigEff[2];
+ 
   UInt_t          zdc_ZdcModuleMask;
   Float_t         zdc_ZdcModuleAmp[2][4];
-  // Float_t         zdc_ZdcModuleTime[2][4];
-  // Float_t         zdc_ZdcModuleFitAmp[2][4];
-  // Float_t         zdc_ZdcModuleFitT0[2][4];
-  // UInt_t          zdc_ZdcModuleStatus[2][4];
-  // Float_t         zdc_ZdcModuleChisq[2][4];
-  // Float_t         zdc_ZdcModuleCalibAmp[2][4];
-  // Float_t         zdc_ZdcModuleCalibTime[2][4];
-  // Float_t         zdc_ZdcModuleBkgdMaxFraction[2][4];
-  // Float_t         zdc_ZdcModuleAmpError[2][4];
+ 
   Bool_t          L1_ZDC_A;
   Bool_t          L1_ZDC_C;
   Bool_t          L1_ZDC_AND;
@@ -102,21 +92,10 @@ class ZDCNLCalibration
   TBranch        *b_passBits;   //!
   
   TBranch        *b_zdc_ZdcAmp;   //!
-  //   TBranch        *b_zdc_ZdcEnergy;   //!
-  //   TBranch        *b_zdc_ZdcTime;   //!
-  //  TBranch        *b_zdc_ZdcStatus;   //!
-  // TBranch        *b_zdc_ZdcTrigEff;   //!
+  
   TBranch        *b_zdc_ZdcModuleMask;   //!
   TBranch        *b_zdc_ZdcModuleAmp;   //!
-  // TBranch        *b_zdc_ZdcModuleTime;   //!
-  // TBranch        *b_zdc_ZdcModuleFitAmp;   //!
-  // TBranch        *b_zdc_ZdcModuleFitT0;   //!
-  // TBranch        *b_zdc_ZdcModuleStatus;   //!
-  // TBranch        *b_zdc_ZdcModuleChisq;   //!
-  // TBranch        *b_zdc_ZdcModuleCalibAmp;   //!
-  // TBranch        *b_zdc_ZdcModuleCalibTime;   //!
-  // TBranch        *b_zdc_ZdcModuleBkgdMaxFraction;   //!
-  // TBranch        *b_zdc_ZdcModuleAmpError;   //!
+
   TBranch        *b_L1_ZDC_A;   //!
   TBranch        *b_L1_ZDC_C;   //!
   TBranch        *b_L1_ZDC_AND;   //!
@@ -139,7 +118,7 @@ public:
   TTree* m_testTree{};
 
 
-  ZDCNLCalibration(std::string file, int maxNLPower = 3, bool useGRL = true, int debugLevel = 0);
+  ZDCNLCalibration(const std::string & file, int maxNLPower = 3, bool useGRL = true, int debugLevel = 0);
   virtual ~ZDCNLCalibration() {}
 
   std::array<float, 4> FindSNPeaks(size_t LBLow, size_t LBHigh, size_t side);
@@ -173,8 +152,8 @@ private:
 			    const std::vector<std::vector<double> >& sums1DVec, const std::vector<double>& sumsHE,
 			    const std::vector<std::vector<double> >& sums2DVec, const std::vector<double>& sumsHE2D);
  
-  void AddCalibration(size_t side, std::string tag, const CalibData& calib);
-  CalibData GetCalibration(size_t side, std::string tag);
+  void AddCalibration(size_t side, const std::string & tag, const CalibData& calib);
+  CalibData GetCalibration(size_t side, const std::string & tag);
 
   //  Add the four amplitudes from a given event to the set of sums used in the NL weight fitting
   //    we need to make all combinations of amplitude products and for all combinations of powers
@@ -227,10 +206,9 @@ private:
 #endif
 
 #ifdef ZDCNLCalibration_cxx
-ZDCNLCalibration::ZDCNLCalibration(std::string file, int maxNLPower,  bool useGRL, int debugLevel) : 
-  m_TFile(0), m_tree(0), m_maxNLPower(maxNLPower), //m_HEDeweight(heDeweight),
+ZDCNLCalibration::ZDCNLCalibration(const std::string & file, int maxNLPower,  bool useGRL, int debugLevel) : 
+  m_TFile(0), m_tree(0), m_maxNLPower(maxNLPower), 
   m_useGRL(useGRL), m_debugLevel(debugLevel),
-  //  m_numWeights(m_maxNLPower*4), m_numFitParams(m_maxNLPower *4),
   m_SNEnergy(2510), m_HEFraction({0.31, 0.27, 0.21, 0.21}),
   m_haveTest(false)
 {