diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/BremFind.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/BremFind.h
index e3516175da00d5b1997461ab7ac2a2e2f5f117a3..95139fe6de4c9a2b45321f68069aa66d97c83111 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/BremFind.h
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/BremFind.h
@@ -51,15 +51,15 @@ class QoverPBremFit;
     
 struct GraphParameter {
   double constant;
-  std::vector<double> coefficient;
-  std::vector<double> value;
-  std::vector<double> width;
+  std::vector<double> coefficient{};
+  std::vector<double> value{};
+  std::vector<double> width{};
 };
     
 struct Element {
-  double value;
-  double width;
-  bool sign;
+  double value{};
+  double width{};
+  bool sign{};
 };
  
   
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/BremFind.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/BremFind.cxx
index 2e9adc8a5654c563b5d05cf230109b4927bb39c7..76c74ef8eca94074300680bf48d512d9d9bee7ba 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/BremFind.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/BremFind.cxx
@@ -48,24 +48,69 @@ Trk::BremFind::BremFind(const std::string& type, const std::string& name, const
   AthAlgTool(type, name, parent),
   m_stateCombiner("Trk::MultiComponentStateCombiner"),
   m_propagator("Trk::IntersectorWrapper/IntersectorWrapper"),
+  //m_fieldProperties
   m_trackingGeometrySvc("TrackingGeometrySvc","AtlasTrackingGeometrySvc"),
   m_trackingGeometryName("AtlasTrackingGeometry"),
-  m_trackingGeometry(0),
+  m_trackingGeometry(nullptr),
+  //m_validationMode
   m_validationTreeName("BremInfo"),
   m_validationTreeName2("BremInfoZ"),
   m_validationTreeDescription("Brem Information"),
   m_validationTreeFolder("/valGSF2/BremInfo"),
   m_validationTreeFolder2("/valGSF2/BremInfoZ"),
-  m_validationTree(0),
-  m_validationTree2(0)
+  m_validationTree(nullptr),
+  m_validationTree2(nullptr),
+  //m_useCalibration{},
+  //m_usePropagate{},
+  m_forwardparameters{},
+  m_smoothedparameters{},
+  m_combinedparameters{},
+  m_perigee_1overP{},
+  m_perigee_Phi{},
+  m_perigee_Theta{},
+  m_perigee_d0{},
+  m_perigee_z0{},
+  m_brem_value{},
+  m_brem_phi{},
+  m_brem_theta{},
+  m_brem_energy{},
+  m_brem_UpperBound{},
+  m_brem_LowerBound{},
+  m_forward_kink{},
+  m_smoothed_kink{},
+  m_brem_significance{},
+  m_brem_valueCalibrated{},
+  m_surfaceX{},
+  m_surfaceY{},
+  m_surfaceZ{},
+  m_nBrems{},
+  m_Z_mode{},
+  //vectors could be initialised here
+  m_event_ID{},
+  m_forwardparameter_constant{},
+  m_forwardparameter_coefficient{},
+  m_forwardparameter_value{},
+  m_forwardparameter_width{},
+  m_smoothparameter_constant{},
+  m_smoothparameter_coefficient{},
+  m_smoothparameter_value{},
+  m_smoothparameter_width{},
+  m_forward_1overP{},
+  m_forward_1overPerr{},
+  m_forward_value{},
+  m_smooth_1overP{},
+  m_smooth_1overPerr{},
+  m_smooth_value{},
+  m_KinkSeparationScores{},
+  m_KinkSeparationScoresErr{},
+  m_forwardBremFit{},
+  m_smoothedBremFit{}
 {
-  declareInterface<IBremsstrahlungFinder>(this);  
+  declareInterface<IBremsstrahlungFinder>(this);
+  //jobOptions Variables
   declareProperty("StateCombiner",   m_stateCombiner );
   declareProperty("TrackingGeometrySvc",  m_trackingGeometrySvc);
   declareProperty("Propagator", m_propagator);
-  
-  
-  //jobOptions Variables
   declareProperty("UseCalibration", m_useCalibration=true);
   declareProperty("ValidationMode", m_validationMode=false);
   declareProperty("UseSurfacePropagation", m_usePropagate=false);
@@ -76,31 +121,19 @@ Trk::BremFind::BremFind(const std::string& type, const std::string& name, const
 
 StatusCode Trk::BremFind::initialize()
 {
- 
-  
    // The TrackingGeometrySvc ------------------------------------------------------
-  if (m_trackingGeometrySvc.retrieve().isFailure()) {
-    msg(MSG::FATAL) << "Failed to load TrackingGeometrySvc " << m_trackingGeometrySvc << endmsg;
-    return StatusCode::FAILURE;
-  } 
-  else {
-    msg(MSG::INFO) << "Retrieved service " << m_trackingGeometrySvc << endmsg;
-    m_trackingGeometryName = m_trackingGeometrySvc->trackingGeometryName();
-  }
+  ATH_CHECK (m_trackingGeometrySvc.retrieve());
+  
+  msg(MSG::DEBUG) << "Retrieved service " << m_trackingGeometrySvc << endmsg;
+  m_trackingGeometryName = m_trackingGeometrySvc->trackingGeometryName();
+  
 
   // Request the state combiner
-  if ( m_stateCombiner.retrieve().isFailure() ){
-    msg(MSG::FATAL) << "Request to retrieve the multi-component state combiner failed... Exiting!" << endmsg;
-    return StatusCode::FAILURE;
-  }
+  ATH_CHECK ( m_stateCombiner.retrieve() );
  
-
   //Retrieve the propagator
-  if (m_propagator.retrieve().isFailure()) {
-    msg(MSG::FATAL) << "Failed to retrieve tool " << m_propagator << endmsg;
-    return StatusCode::FAILURE;
-  }
-
+  ATH_CHECK (m_propagator.retrieve());
+  
   m_fieldProperties= Trk::MagneticFieldProperties(Trk::FullField);
 
 
@@ -109,7 +142,7 @@ StatusCode Trk::BremFind::initialize()
   
   if (m_validationMode) {
     
-    if (m_validationTree == 0) {
+    if (not m_validationTree) {
       //Crate a new tree if there doesn't exist one already
       m_validationTree = new TTree( m_validationTreeName.c_str(), m_validationTreeDescription.c_str() );
     
@@ -151,7 +184,7 @@ StatusCode Trk::BremFind::initialize()
     
 
 
-    if (m_validationTree2 == 0) {
+    if (not m_validationTree2) {
       //Crate a new tree if there doesn't exist one already
       m_validationTree2 = new TTree( m_validationTreeName2.c_str(), m_validationTreeDescription.c_str() );
     
@@ -215,7 +248,7 @@ StatusCode Trk::BremFind::initialize()
 
   //---------------------------- end of validation mode ------------------------------------
 
-  msg(MSG::INFO) << "Initialisation of " << name() << " was successful" << endmsg;
+  ATH_MSG_DEBUG( "Initialisation of " << name() << " was successful" );
   
   return StatusCode::SUCCESS;
 
@@ -224,7 +257,7 @@ StatusCode Trk::BremFind::initialize()
 
 StatusCode Trk::BremFind::finalize(){
  
- msg(MSG::INFO) << "Finalisation of " << name() << " was successful" << endmsg;
+ ATH_MSG_DEBUG( "Finalisation of " << name() << " was successful" );
 
  return StatusCode::SUCCESS;
 
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/ForwardGsfFitter.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/ForwardGsfFitter.cxx
index 8a32025858a0c1da779840af1a8382e0a13ca583..d4836cbbd5afc46bf3116061c0e0a7645813f438 100755
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/ForwardGsfFitter.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/ForwardGsfFitter.cxx
@@ -34,7 +34,8 @@ Trk::ForwardGsfFitter::ForwardGsfFitter(const std::string& type, const std::stri
   m_stateCombiner("Trk::MultiComponentStateCombiner/ForwardsFitterCombiner"),
   m_cutChiSquaredPerNumberDOF(50.),
   m_overideMaterialEffectsSwitch(false),
-  m_overideMaterialEffects(4)
+  m_overideMaterialEffects(4),
+  m_overideParticleHypothesis(nonInteracting)
 {
 
   declareInterface<IForwardGsfFitter>(this);
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GaussianSumFitter.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GaussianSumFitter.cxx
index 825aadf149215379a5c5880df1c0349befd6212e..c5a5f110212e6bf58ae63fc338db9227da66f011 100755
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GaussianSumFitter.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GaussianSumFitter.cxx
@@ -73,13 +73,52 @@ Trk::GaussianSumFitter::GaussianSumFitter(const std::string& type, const std::st
   m_BremFind("Trk::BremFind"),
   m_BremFind2("Trk::BremFind"),
   m_chronoSvc("ChronoStatSvc", name),
+  m_inputPreparator(0),
+  m_FitPRD(0),
+  m_FitMeasuremnetBase(0),
+  m_FowardFailure(0),
+  m_SmootherFailure(0),
+  m_PerigeeFailure(0),
+  m_fitQualityFailure(0),
   m_validationMode(false),
   m_validationTreeName("GSFValidation"),
   m_validationTreeDescription("Surface MCSOS"),
   m_validationTreeFolder("/valGSF/GSFValidation"),
   m_validationTree(0),
   m_surfaceCounterF(0),
-  m_surfaceCounterS(0)
+  m_surfacesF(0),
+  m_surfaceXF{},
+  m_surfaceYF{},
+  m_surfaceRF{},
+  m_surfaceZF{},
+  m_surfaceTypeF{},
+  m_surfaceNstatesF{},
+
+  m_surfaceThetaF{},
+  m_surfacePhiF{},
+  m_surfaceQoverPF{},
+  m_surfaceWeightF{},
+  m_surfaceErrThetaF{},
+  m_surfaceErrPhiF{},
+  m_surfaceErrQoverPF{},
+  m_surfaceCounterS(0),
+  m_surfacesS(0),
+  m_surfaceXS{},
+  m_surfaceYS{},
+  m_surfaceRS{},
+  m_surfaceZS{},
+  m_surfaceTypeS{},
+  m_surfaceNstatesS{},
+
+  m_surfaceThetaS{},
+  m_surfacePhiS{},
+  m_surfaceQoverPS{},
+  m_surfaceWeightS{},
+  m_surfaceErrThetaS{},
+  m_surfaceErrPhiS{},
+  m_surfaceErrQoverPS{},
+
+  m_event_ID(0)
 
 {
 
@@ -114,50 +153,25 @@ StatusCode Trk::GaussianSumFitter::initialize()
   StatusCode sc;
 
   // Request the Chrono Service
-  if ( m_chronoSvc.retrieve().isFailure() ) {
-   msg(MSG::FATAL) << "Failed to retrieve service " << m_chronoSvc << endmsg;
-   return StatusCode::FAILURE;
-  } else 
-   msg(MSG::INFO) << "Retrieved service " << m_chronoSvc << endmsg;
-
-
+  ATH_CHECK( m_chronoSvc.retrieve() );
 
   // Request the GSF forward fitter - hardwired type and instanace name for the GSF
-  if ( m_forwardGsfFitter.retrieve().isFailure() ) {
-    msg(MSG::FATAL) << "Request to retrieve the forward GSF fitter failed... Exiting!" << endmsg;
-    return StatusCode::FAILURE;
-  }
+  ATH_CHECK( m_forwardGsfFitter.retrieve());
 
   // Request the GSF smoother - hardwired type and instance name for the GSF
-  if ( m_gsfSmoother.retrieve().isFailure() ) {
-    msg(MSG::FATAL) << "Request to retrieve the GSF smoother failed... Exiting!" << endmsg;
-    return StatusCode::FAILURE;
-  }
+  ATH_CHECK( m_gsfSmoother.retrieve() );
 
   // Request the GSF Outlier m_logic - hardwired type and instance name for the GSF
-  if ( m_outlierLogic.retrieve().isFailure() ) {
-    msg(MSG::FATAL) << "Request to retrieve the GSF outlier m_logic failed... Exiting!" << endmsg;
-    return StatusCode::FAILURE;
-  }
+  ATH_CHECK( m_outlierLogic.retrieve() );
 
   // Request the GSF measurement updator - hardwired type and instance name for the GSF
-  if ( m_updator.retrieve().isFailure() ) {
-    msg(MSG::FATAL) << "Request to retrieve the GSF measurement updator failed... Exiting!" << endmsg;
-    return StatusCode::FAILURE;
-  }
+  ATH_CHECK ( m_updator.retrieve() );
 
   // Request the GSF extrapolator
-  if ( m_extrapolator.retrieve().isFailure() ) {
-    msg(MSG::FATAL) << "Request to retrieve the GSF extrapolator failed... Exiting!" << endmsg;
-    return StatusCode::FAILURE;
-  }
+  ATH_CHECK ( m_extrapolator.retrieve() );
  
   // Request the state combiner
-  if ( m_stateCombiner.retrieve().isFailure() ){
-    msg(MSG::FATAL) << "Request to retrieve the multi-component state combiner failed... Exiting!" << endmsg;
-    return StatusCode::FAILURE;
-  }
-
+  ATH_CHECK ( m_stateCombiner.retrieve() );
    //Request the brem finder
   if (m_runBremFinder){
     if ( m_BremFind.retrieve().isFailure() || m_BremFind2.retrieve().isFailure() ) {
@@ -175,7 +189,7 @@ StatusCode Trk::GaussianSumFitter::initialize()
     }
 
     else
-      msg(MSG::INFO) << "Request to retrieve the RIO_OnTrack Creator failed but track is fit at the MeasurementBase level... Continuing!" << endmsg;
+      ATH_MSG_INFO( "Request to retrieve the RIO_OnTrack Creator failed but track is fit at the MeasurementBase level... Continuing!");
 
   }
 
@@ -259,7 +273,7 @@ StatusCode Trk::GaussianSumFitter::initialize()
     }
 
     // now register the Tree
-    ITHistSvc* tHistSvc = 0;
+    ITHistSvc* tHistSvc = nullptr;
     if (service("THistSvc",tHistSvc).isFailure()){ 
       msg(MSG::ERROR)<<"initialize() Could not find Hist Service -> Switching ValidationMode Off !" << endmsg;
       delete m_validationTree; m_validationTree = 0;
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfBetheHeitlerEffects.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfBetheHeitlerEffects.cxx
index 94e302360cfacdd78999554595c9868532acae3c..7dc14a729ec5df5fe4e31445eeeca6b49aad1f6d 100755
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfBetheHeitlerEffects.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfBetheHeitlerEffects.cxx
@@ -33,9 +33,11 @@ Trk::GsfBetheHeitlerEffects::GsfBetheHeitlerEffects(const std::string& type, con
   MultiStateMaterialEffects(type, name, parent),
   m_parameterisationFileName("GeantSim_LT01_cdf_nC6_O5.par"),
   m_numberOfComponents(0),
+  m_transformationCode(0),
   m_correctionFlag(0),
   m_parameterisationFileNameHighX0("GeantSim_GT01_cdf_nC6_O5.par"),
-  m_numberOfComponentsHighX0(0)
+  m_numberOfComponentsHighX0(0),
+  m_transformationCodeHighX0(0)
 {
 
   declareInterface<IMultiStateMaterialEffects>(this);
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx
index 89f70a578bf5d5c801200b47c680e9c941206110..f87ce019820a33dd45824a8b7489d7f730afe740 100755
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx
@@ -326,8 +326,10 @@ const Trk::MultiComponentState* Trk::GsfExtrapolator::extrapolate( const Trk::IP
 
     // New reference parameters are the navigation parameters at the boundary surface
     referenceParameters = m_stateAtBoundarySurface.navigationParameters;
-    if (referenceParameters) printState("New Ref Parameters at next surface ", *referenceParameters);
-
+    //coverity 111522: null check is redundant here since referenceParameters is dereferenced later anyway.
+    //if (referenceParameters) printState("New Ref Parameters at next surface ", *referenceParameters);
+    printState("New Ref Parameters at next surface ", *referenceParameters);
+    
     // The volume that the extrapolation is about to enter into is called the nextVolume
     const Trk::TrackingVolume* nextVolume = m_stateAtBoundarySurface.trackingVolume;
 
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateCombiner.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateCombiner.cxx
index b705ca5dd83b63aabf0664918c1cab0edb717300..e90dd96148c117d44da835a9a95b1a7f180b52a5 100755
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateCombiner.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateCombiner.cxx
@@ -26,6 +26,7 @@ Trk::MultiComponentStateCombiner::MultiComponentStateCombiner (const std::string
   m_useModePhi(true),
   m_useModeTheta(true),
   m_useModeqOverP(true),
+  m_NumberOfCalls(0),
   m_fractionPDFused(1.0)
 {
 
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateModeCalculator.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateModeCalculator.cxx
index 8fecc236a7c41fdb6d36b56b0aae0198c1b28192..8646712a909a4f14117b6e2c7a33cbb4e11dc3c4 100755
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateModeCalculator.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateModeCalculator.cxx
@@ -24,7 +24,11 @@ description          : Implementation code for MultiComponentStateModeCalculator
 Trk::MultiComponentStateModeCalculator::MultiComponentStateModeCalculator( const std::string& type, const std::string& name, const IInterface* parent )
   :
   AthAlgTool( type, name, parent ),
-  m_outputlevel(1)
+  m_outputlevel(1),
+  m_NumberOfCalls(0),
+  m_ConverganceFilures(0),
+  m_NoErrorMatrix(0),
+  m_MixtureSizeZero(0)
 {
 
   declareInterface<IMultiComponentStateModeCalculator>(this);
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultipleScatterUpdator.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultipleScatterUpdator.cxx
index 5723981869e38aa343ef515153516628a5ea4f52..44bcac58ae2d130929e68af05384c53d742e68ce 100755
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultipleScatterUpdator.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultipleScatterUpdator.cxx
@@ -20,6 +20,7 @@ decription           : Implementation code for multiple scatter updator
 #include "TrkEventPrimitives/ParamDefs.h"
 
 #include "TrkExInterfaces/IMultipleScatteringUpdator.h"
+#include <cmath>
 
 Trk::ParticleMasses Trk::MultipleScatterUpdator::s_particleMasses;
 double Trk::MultipleScatterUpdator::s_multipleScatterMainFactor = 13.6 * Gaudi::Units::MeV;
@@ -50,27 +51,16 @@ Trk::MultipleScatterUpdator::~MultipleScatterUpdator()
 
 StatusCode Trk::MultipleScatterUpdator::initialize()
 {
-
   m_outputlevel = msg().level()-MSG::DEBUG;   // save the threshold for debug printout in private member
-
-  if( m_msUpdator.retrieve().isFailure() ) {
-    ATH_MSG_FATAL("Failed to retrieve tool " << m_msUpdator << ". No energy loss effects will be taken into account." );
-    return StatusCode::FAILURE;
-  } else
-    ATH_MSG_INFO( "Retrieved tool " << m_msUpdator );
-
-  
-  msg(MSG::INFO) << "Initialisation of " << name() << " was successful" << endmsg;
+  ATH_CHECK( m_msUpdator.retrieve());
+  ATH_MSG_DEBUG( "Initialisation of " << name() << " was successful" );
   return StatusCode::SUCCESS;
-
 }
 
 StatusCode Trk::MultipleScatterUpdator::finalize()
 {
-
-  msg(MSG::INFO) << "Finalisation of " << name() << " was successful" << endmsg;
+  ATH_MSG_DEBUG( "Finalisation of " << name() << " was successful" );
   return StatusCode::SUCCESS;
-
 }
 
 const Trk::TrackParameters* Trk::MultipleScatterUpdator::update( const Trk::TrackParameters* trackParameters,
@@ -79,18 +69,11 @@ const Trk::TrackParameters* Trk::MultipleScatterUpdator::update( const Trk::Trac
                  Trk::ParticleHypothesis particleHypothesis,
                  Trk::MaterialUpdateMode) const
 {
-
-  if (m_outputlevel < 0) 
-    msg(MSG::VERBOSE) << "Performing multiple scatter update using layer information" << endmsg;
-
-
-
-    
+  ATH_MSG_VERBOSE( "Performing multiple scatter update using layer information" );
   // Extract the material properties from the layer
   const Trk::MaterialProperties* materialProperties(0);
   double pathCorrection(0.);
 
-
   // Get the surface associated with the parameters
   const Trk::Surface& surface = trackParameters->associatedSurface();
 
@@ -104,7 +87,7 @@ const Trk::TrackParameters* Trk::MultipleScatterUpdator::update( const Trk::Trac
     materialProperties = layerMaterial ? layerMaterial->fullMaterial(trackParameters->position()) : 0;
 
     // Determine the pathCorrection if the material properties exist
-    pathCorrection = materialProperties ? 1. / fabs( surface.normal().dot( trackParameters->momentum().unit() ) ) : 0.;
+    pathCorrection = materialProperties ? 1. / std::fabs( surface.normal().dot( trackParameters->momentum().unit() ) ) : 0.;
 
   }
 
@@ -113,14 +96,14 @@ const Trk::TrackParameters* Trk::MultipleScatterUpdator::update( const Trk::Trac
   materialProperties = materialProperties ? materialProperties : layer.fullUpdateMaterialProperties( *trackParameters );
 
   if ( !materialProperties ) {
-    msg(MSG::DEBUG) << "No material properties associated with layer... returning original parameters" << endmsg;
+    ATH_MSG_DEBUG( "No material properties associated with layer... returning original parameters" );
     return trackParameters->clone();
   }
 
   const AmgSymMatrix(5)* measuredTrackCov = trackParameters->covariance();
 
   if (!measuredTrackCov){
-    msg(MSG::DEBUG) << "No measured track parameters for multiple scatter... returning original parameters" << endmsg;
+    ATH_MSG_DEBUG( "No measured track parameters for multiple scatter... returning original parameters" );
     return trackParameters->clone();
   }
   
@@ -139,13 +122,12 @@ const Trk::TrackParameters*
 Trk::MultipleScatterUpdator::update( const Trk::TrackParameters& trackParameters,
              const Trk::MaterialProperties& materialProperties,
              double pathLength,
-             PropDirection direction,
+             PropDirection /*direction*/,
              ParticleHypothesis /*particleHypothesis*/,
              Trk::MaterialUpdateMode ) const
 {
 
-  if (m_outputlevel < 0) 
-    msg(MSG::VERBOSE) << "Updating multiple scatter effects based on material properties and path length" << endmsg;
+  ATH_MSG_VERBOSE( "Updating multiple scatter effects based on material properties and path length" );
 
   const AmgSymMatrix(5)* measuredTrackCov = trackParameters.covariance();
 
@@ -154,7 +136,6 @@ Trk::MultipleScatterUpdator::update( const Trk::TrackParameters& trackParameters
     return trackParameters.clone();
   }
 
-
   const Amg::Vector3D& globalMomentum = trackParameters.momentum();
   double p = globalMomentum.mag();
 
@@ -164,21 +145,17 @@ Trk::MultipleScatterUpdator::update( const Trk::TrackParameters& trackParameters
   //and create a dummy materialProperties with the properties we are interested in
   MaterialProperties mprop(materialProperties.thicknessInX0(),1.,0.,0.,0.,0.);
   double angularVariation = m_msUpdator->sigmaSquare(mprop, p, pathcorrection, Trk::muon);  
-  
-
-  if (m_outputlevel <= 0) 
-    msg(MSG::DEBUG) << "Sigma squared multiple scattering: " << angularVariation << endmsg;
-  
+  ATH_MSG_DEBUG( "Sigma squared multiple scattering: " << angularVariation );
   AmgSymMatrix(5)* cov_out = new AmgSymMatrix(5)(*measuredTrackCov);
  
+  //double sign = (direction == Trk::oppositeMomentum) ? 1. : 1.;
+  double sinTheta = std::sin( trackParameters.parameters()[Trk::theta] );
 
-  double sign = (direction == Trk::oppositeMomentum) ? 1. : 1.;
-  double sinTheta = sin( trackParameters.parameters()[Trk::theta] );
-
-  (*cov_out)(Trk::phi,Trk::phi) += sign * angularVariation / (sinTheta*sinTheta);
-  (*cov_out)(Trk::theta,Trk::theta) += sign * angularVariation;
+  //(*cov_out)(Trk::phi,Trk::phi) += sign * angularVariation / (sinTheta*sinTheta);
+  //(*cov_out)(Trk::theta,Trk::theta) += sign * angularVariation;
   //std::cout << "MSU   DeltaPhi " << (*updatedCovarianceMatrix)[Trk::phi][Trk::phi] <<'\t' << angularVariation / (sinTheta * sinTheta) << std::endl;
-  
+  (*cov_out)(Trk::phi,Trk::phi) += angularVariation / (sinTheta*sinTheta);
+  (*cov_out)(Trk::theta,Trk::theta) += angularVariation;
   const AmgVector(5)& par = trackParameters.parameters();
   //return trackParameters.cloneToNew( trackParameters.parameters(), measuredTrackCov );
   return trackParameters.associatedSurface().createTrackParameters(par[Trk::loc1],par[Trk::loc2],par[Trk::phi],par[Trk::theta],par[Trk::qOverP],cov_out);
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/QoverPBremFit.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/QoverPBremFit.cxx
index 73849dad055cda1df1eb8c220b8c7bae61e79bc2..af6df4cb5a43b0db0cde733317a51dd37f47b7dd 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/QoverPBremFit.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/QoverPBremFit.cxx
@@ -101,8 +101,9 @@ Trk::GraphParameter Trk::QoverPBremFit::GetParameters(const DataVector <const Tr
 }
 
 
-void Trk::QoverPBremFit::FillVariables(const DataVector <const Trk::TrackStateOnSurface>& Trajectory) {
-
+void 
+Trk::QoverPBremFit::FillVariables(const DataVector <const Trk::TrackStateOnSurface>& Trajectory) {
+  //iterators will be constructed as NULL
   DataVector<const Trk::TrackStateOnSurface>::const_iterator trackStateOnSurface;
   DataVector<const Trk::TrackStateOnSurface>::const_iterator Trajectory_end; 
   
@@ -110,80 +111,76 @@ void Trk::QoverPBremFit::FillVariables(const DataVector <const Trk::TrackStateOn
   if (m_type==1) {
     trackStateOnSurface = Trajectory.begin();
     Trajectory_end = Trajectory.end(); 
-  }
-  else if (m_type==-1) {
+  } else if (m_type==-1) {
     trackStateOnSurface = Trajectory.end();
     trackStateOnSurface--;
     Trajectory_end = Trajectory.begin();
     Trajectory_end--;
+  } else {
+    //trackStateOnSurface and Trajectory_end will be NULL in this case, as constructed
+    return;
   }
   
 
   m_surfaceCounter=0;
   
   
-  for ( ; trackStateOnSurface != Trajectory_end; )  {
-    const Trk::MultiComponentState *TrajectoryMultiState=0;
-    const Trk::MultiComponentStateOnSurface *TrajectoryMultiStateOnSurface = dynamic_cast<const Trk::MultiComponentStateOnSurface*>(*trackStateOnSurface);
+    for ( ; trackStateOnSurface != Trajectory_end; )  {
+      const Trk::MultiComponentState *TrajectoryMultiState=0;
+      const Trk::MultiComponentStateOnSurface *TrajectoryMultiStateOnSurface = dynamic_cast<const Trk::MultiComponentStateOnSurface*>(*trackStateOnSurface);
+      if (m_surfaceCounter < TRKFGSF_VALSURFACES) {
+        if (!TrajectoryMultiStateOnSurface) {
+          // Create new multiComponentState from a single state
+          Trk::ComponentParameters componentParameters( (*trackStateOnSurface)->trackParameters(), 1.0);
+          TrajectoryMultiState = new Trk::MultiComponentState(componentParameters);
+        } else {
+          TrajectoryMultiState = TrajectoryMultiStateOnSurface->components();
+        }
 
-    if (m_surfaceCounter < TRKFGSF_VALSURFACES) {
+        const Amg::Vector3D posOnSurf = TrajectoryMultiStateOnSurface->trackParameters()->position();
       
-      if (!TrajectoryMultiStateOnSurface) {
-	// Create new multiComponentState from a single state
-	Trk::ComponentParameters componentParameters( (*trackStateOnSurface)->trackParameters(), 1.0);
-	TrajectoryMultiState = new Trk::MultiComponentState(componentParameters);
-      }
-      else
-	TrajectoryMultiState = TrajectoryMultiStateOnSurface->components();
 
-      const Amg::Vector3D posOnSurf = TrajectoryMultiStateOnSurface->trackParameters()->position();
+        //Fill the radius values
+        m_RadiusValue->push_back( posOnSurf.perp() );
+        m_Zvalue->push_back( posOnSurf.z() );
+
+        //Specify in joboptions whether to use mode or mean
+        const Trk::TrackParameters* CombinedMultiState = m_stateCombiner->combine(*TrajectoryMultiState,true);
       
+        if (CombinedMultiState->parameters()[Trk::qOverP] > 0.0) m_charge = 1.0;    
+        else m_charge = -1.0;
 
-      //Fill the radius values
-      m_RadiusValue->push_back( posOnSurf.perp() );
-      m_Zvalue->push_back( posOnSurf.z() );
+        //Fill the 1overPvalues in GeV
+        m_trackParameters->push_back( CombinedMultiState );
+        m_1overPvalue->push_back( 1000.0*fabs(CombinedMultiState->parameters()[Trk::qOverP]) );
+        m_PhiValue->push_back( CombinedMultiState->parameters()[Trk::phi] );
+        m_ThetaValue->push_back( CombinedMultiState->parameters()[Trk::theta] );
 
-      //Specify in joboptions whether to use mode or mean
-      const Trk::TrackParameters* CombinedMultiState = m_stateCombiner->combine(*TrajectoryMultiState,true);
-      
-      if (CombinedMultiState->parameters()[Trk::qOverP] > 0.0) 
-	m_charge = 1.0;    
-      else 
-	m_charge = -1.0;
-
-      //Fill the 1overPvalues in GeV
-      m_trackParameters->push_back( CombinedMultiState );
-      m_1overPvalue->push_back( 1000.0*fabs(CombinedMultiState->parameters()[Trk::qOverP]) );
-      m_PhiValue->push_back( CombinedMultiState->parameters()[Trk::phi] );
-      m_ThetaValue->push_back( CombinedMultiState->parameters()[Trk::theta] );
-
-      const AmgSymMatrix(5)* measuredCov = CombinedMultiState->covariance();
-
-      if (measuredCov) {
-	m_1overPvalueerror->push_back( 1000.0*sqrt((*measuredCov)(Trk::qOverP,Trk::qOverP)));
-	m_PhiValueerror->push_back( sqrt((*measuredCov)(Trk::phi,Trk::phi)));
-	m_ThetaValueerror->push_back( sqrt((*measuredCov)(Trk::theta,Trk::theta)));
-      }
-      else {
-	m_1overPvalueerror->push_back( 1000.0*fabs(CombinedMultiState->parameters()[Trk::qOverP]) );
-	m_PhiValueerror->push_back( fabs(CombinedMultiState->parameters()[Trk::phi]) );
-	m_ThetaValueerror->push_back( fabs(CombinedMultiState->parameters()[Trk::theta]) );
+        const AmgSymMatrix(5)* measuredCov = CombinedMultiState->covariance();
+
+        if (measuredCov) {
+          m_1overPvalueerror->push_back( 1000.0*sqrt((*measuredCov)(Trk::qOverP,Trk::qOverP)));
+          m_PhiValueerror->push_back( sqrt((*measuredCov)(Trk::phi,Trk::phi)));
+          m_ThetaValueerror->push_back( sqrt((*measuredCov)(Trk::theta,Trk::theta)));
+        }
+        else {
+          m_1overPvalueerror->push_back( 1000.0*fabs(CombinedMultiState->parameters()[Trk::qOverP]) );
+          m_PhiValueerror->push_back( fabs(CombinedMultiState->parameters()[Trk::phi]) );
+          m_ThetaValueerror->push_back( fabs(CombinedMultiState->parameters()[Trk::theta]) );
+        }  
       }
-          
-    }
     
-    if (!TrajectoryMultiStateOnSurface) { 
-      delete TrajectoryMultiState;
-    }
-    m_surfaceCounter++;
-    if (m_type==1) {
-      trackStateOnSurface++;
-    }
-    else if (m_type==-1) {
-      trackStateOnSurface--;
-    }
-  }
-
+      if (!TrajectoryMultiStateOnSurface) { 
+        delete TrajectoryMultiState;
+      }
+      m_surfaceCounter++;
+      if (m_type==1) {
+        trackStateOnSurface++;
+      }
+      else if (m_type==-1) {
+        trackStateOnSurface--;
+      }
+    }//end of for loop
 }
 
 
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/QuickCloseComponentsMultiStateMerger.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/QuickCloseComponentsMultiStateMerger.cxx
index fc7f8f6c0638cc43a5cc5772afbb241beed35081..d5020f483d591b5c17d19450e314b63738928143 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/QuickCloseComponentsMultiStateMerger.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/QuickCloseComponentsMultiStateMerger.cxx
@@ -50,7 +50,9 @@ Trk::QuickCloseComponentsMultiStateMerger::QuickCloseComponentsMultiStateMerger(
   m_stateAssembler("Trk::MultiComponentStateAssembler/CloseComponentsStateAssembler"),
   m_chronoSvc("ChronoStatSvc", name),
   m_useFullDistanceCalcArray(true),
-  m_useFullDistanceCalcVector(true)
+  m_useFullDistanceCalcVector(true),
+  m_useMap{}
+  
 {
 
   declareInterface<IMultiComponentStateMerger>(this);