From 33295e66890f77247af843af8a3258a0a5403d56 Mon Sep 17 00:00:00 2001
From: christos <christos@cern.ch>
Date: Thu, 14 May 2020 02:44:17 +0100
Subject: [PATCH] Add pass EventContext as argument to GSFSmoother, use a bit
 more unique_ptr clean up messages

---
 .../TrkGaussianSumFilter/GaussianSumFitter.h  |  38 +--
 .../TrkGaussianSumFilter/GsfSmoother.h        |   2 +
 .../TrkGaussianSumFilter/IGsfSmoother.h       |   2 +
 .../src/GaussianSumFitter.cxx                 | 220 +++++-------------
 .../TrkGaussianSumFilter/src/GsfSmoother.cxx  |  14 +-
 5 files changed, 95 insertions(+), 181 deletions(-)

diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GaussianSumFitter.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GaussianSumFitter.h
index f200f6049d0..db19aca0c48 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GaussianSumFitter.h
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GaussianSumFitter.h
@@ -18,7 +18,7 @@ decription           : Class for fitting according to the Gaussian Sum Filter
 #include "TrkFitterInterfaces/ITrackFitter.h"
 #include "TrkFitterUtils/FitterTypes.h"
 #include "TrkParameters/TrackParameters.h"
-
+#include "TrkFitterUtils/TrackFitInputPreparator.h"
 #include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
 
 #include "AthenaBaseComps/AthAlgTool.h"
@@ -26,19 +26,19 @@ decription           : Class for fitting according to the Gaussian Sum Filter
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ToolHandle.h"
 
+
 #include <atomic>
 
-namespace Trk {
 
+namespace Trk {
 class IMultiStateMeasurementUpdator;
 class MultiComponentStateOnSurface;
 class IMultiStateExtrapolator;
-
-class TrackFitInputPreparator;
 class IForwardGsfFitter;
 class IGsfSmoother;
-class Track;
 class FitQuality;
+class Track;
+
 
 class GaussianSumFitter
   : virtual public ITrackFitter
@@ -110,6 +110,7 @@ public:
 private:
   /** Produces a perigee from a smoothed trajectory */
   const MultiComponentStateOnSurface* makePerigee(
+    const EventContext& ctx,
     const SmoothedTrajectory*,
     const ParticleHypothesis particleHypothesis = nonInteracting) const;
 
@@ -151,20 +152,23 @@ private:
   bool m_refitOnMeasurementBase;
   bool m_doHitSorting;
   PropDirection m_directionToPerigee;
-  TrkParametersComparisonFunction* m_trkParametersComparisonFunction;
+  std::unique_ptr<TrkParametersComparisonFunction> m_trkParametersComparisonFunction;
+  std::unique_ptr<TrackFitInputPreparator> m_inputPreparator;
   std::vector<double> m_sortingReferencePoint;
   ServiceHandle<IChronoStatSvc> m_chronoSvc;
-  TrackFitInputPreparator* m_inputPreparator;
-
-  // GSF Fit Statistics
-  mutable std::atomic<int> m_FitPRD; // Number of Fit PrepRawData Calls
-  mutable std::atomic<int>
-    m_FitMeasurementBase; // Number of Fit MeasurementBase Calls
-  mutable std::atomic<int> m_ForwardFailure;  // Number of Foward Fit Failures
-  mutable std::atomic<int> m_SmootherFailure; // Number of Smoother Failures
-  mutable std::atomic<int> m_PerigeeFailure;  // Number of MakePerigee Failures
-  mutable std::atomic<int>
-    m_fitQualityFailure; // Number of Tracks that fail fit Quailty test
+
+  // Number of Fit PrepRawData Calls
+  mutable std::atomic<int> m_FitPRD;   
+  // Number of Fit MeasurementBase Calls
+  mutable std::atomic<int> m_FitMeasurementBase;
+  // Number of Foward Fit Failures
+  mutable std::atomic<int> m_ForwardFailure;
+  // Number of Smoother Failures
+  mutable std::atomic<int> m_SmootherFailure;
+  // Number of MakePerigee Failures
+  mutable std::atomic<int> m_PerigeeFailure;
+  // Number of Tracks that fail fit Quailty test
+  mutable std::atomic<int> m_fitQualityFailure;
 };
 
 } // end Trk namespace
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfSmoother.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfSmoother.h
index 4158cebf49c..ad65b2862b7 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfSmoother.h
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfSmoother.h
@@ -56,6 +56,7 @@ public:
 
   /** Gsf smoother method */
   virtual SmoothedTrajectory* fit(
+    const EventContext& ctx,
     const ForwardTrajectory&,
     const ParticleHypothesis particleHypothesis = nonInteracting,
     const CaloCluster_OnTrack* ccot = nullptr) const;
@@ -67,6 +68,7 @@ private:
 
   /** Methof to add the CaloCluster onto the track */
   MultiComponentState addCCOT(
+    const EventContext& ctx,
     const Trk::TrackStateOnSurface* currentState,
     const Trk::CaloCluster_OnTrack* ccot,
     Trk::SmoothedTrajectory* smoothedTrajectory) const;
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/IGsfSmoother.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/IGsfSmoother.h
index aa20ac008a7..aaef237d538 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/IGsfSmoother.h
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/IGsfSmoother.h
@@ -19,6 +19,7 @@ decription           : Abstract interface for the GSF smoother
 #include "TrkFitterUtils/FitterTypes.h"
 #include "TrkMultiComponentStateOnSurface/MultiComponentState.h"
 
+#include "GaudiKernel/EventContext.h"
 #include "GaudiKernel/IAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 
@@ -49,6 +50,7 @@ public:
 
   /** Gsf smoother method */
   virtual SmoothedTrajectory* fit(
+    const EventContext& ctx,
     const ForwardTrajectory&,
     const ParticleHypothesis particleHypothesis = nonInteracting,
     const CaloCluster_OnTrack* ccot = nullptr) const = 0;
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GaussianSumFitter.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GaussianSumFitter.cxx
index 65be4c549ec..7f9f920f38c 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GaussianSumFitter.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GaussianSumFitter.cxx
@@ -2,14 +2,11 @@
   Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-/* *******************************************************************************
-      GaussianSumFitter.cxx  -  description
-      -------------------------------------
-begin                : Monday 7th March 2005
-author               : amorley atkinson
-email                : Anthony.Morley@cern.ch Tom.Atkinson@cern.ch
-decription           : Implementation code for Gaussian Sum Fitter class
-**********************************************************************************
+/**
+ * @file GaussianSumFitter.cxx 
+ * @begin         Monday 7th March 2005
+ * @author        Anthony Morley, Tom  Atkinson, Christos Anastopoulos
+ * @brief         Implementation code for Gaussian Sum Fitter class
 */
 
 #include "TrkGaussianSumFilter/GaussianSumFitter.h"
@@ -26,7 +23,6 @@ decription           : Implementation code for Gaussian Sum Fitter class
 
 #include "TrkCaloCluster_OnTrack/CaloCluster_OnTrack.h"
 #include "TrkEventPrimitives/FitQuality.h"
-#include "TrkFitterUtils/TrackFitInputPreparator.h"
 #include "TrkMaterialOnTrack/EstimatedBremOnTrack.h"
 #include "TrkMultiComponentStateOnSurface/MultiComponentStateOnSurface.h"
 #include "TrkPrepRawData/PrepRawData.h"
@@ -51,8 +47,8 @@ Trk::GaussianSumFitter::GaussianSumFitter(const std::string& type,
   , m_doHitSorting(true)
   , m_directionToPerigee(Trk::oppositeMomentum)
   , m_trkParametersComparisonFunction(nullptr)
-  , m_chronoSvc("ChronoStatSvc", name)
   , m_inputPreparator(nullptr)
+  , m_chronoSvc("ChronoStatSvc", name)
   , m_FitPRD{ 0 }
   , m_FitMeasurementBase{ 0 }
   , m_ForwardFailure{ 0 }
@@ -118,18 +114,11 @@ Trk::GaussianSumFitter::initialize()
                                   m_sortingReferencePoint[2]);
 
   m_trkParametersComparisonFunction =
-    new Trk::TrkParametersComparisonFunction(referencePosition);
-
-  if (!m_trkParametersComparisonFunction) {
-    ATH_MSG_FATAL("Request to instansiate the ClosestTrackParametersFinder "
-                  "object failed... Exiting!");
-    return StatusCode::FAILURE;
-  }
+    std::make_unique<Trk::TrkParametersComparisonFunction>(referencePosition);
 
   // Configure forward fitter
   sc = m_forwardGsfFitter->configureTools(
     m_extrapolator, m_updator, m_rioOnTrackCreator);
-
   if (sc.isFailure()) {
     ATH_MSG_FATAL("Could not configure the forwards GSF fitter... Exiting!");
     return StatusCode::FAILURE;
@@ -137,7 +126,6 @@ Trk::GaussianSumFitter::initialize()
 
   // Configure smoother
   sc = m_gsfSmoother->configureTools(m_extrapolator, m_updator);
-
   if (sc.isFailure()) {
     ATH_MSG_FATAL("Could not configure the GSF smoother... Exiting!");
     return StatusCode::FAILURE;
@@ -151,7 +139,7 @@ Trk::GaussianSumFitter::initialize()
   m_PerigeeFailure = 0;     // Number of MakePerigee Failures:
   m_fitQualityFailure = 0;
 
-  m_inputPreparator = new TrackFitInputPreparator();
+  m_inputPreparator = std::make_unique<TrackFitInputPreparator>();
 
   ATH_MSG_INFO("Initialisation of " << name() << " was successful");
 
@@ -161,65 +149,45 @@ Trk::GaussianSumFitter::initialize()
 StatusCode
 Trk::GaussianSumFitter::finalize()
 {
-
-  // Delete dynamic memory
-  delete m_trkParametersComparisonFunction;
-  delete m_inputPreparator;
-
-  msg(MSG::INFO) << "-----------------------------------------------" << endmsg;
-  msg(MSG::INFO) << "            Some Brief GSF Statistics          " << endmsg;
-  msg(MSG::INFO) << "-----------------------------------------------" << endmsg;
-
-  msg(MSG::INFO) << "Number of Fit PrepRawData Calls:          " << m_FitPRD
-                 << endmsg;
-  msg(MSG::INFO) << "Number of Fit MeasurementBase Calls:      "
-                 << m_FitMeasurementBase << endmsg;
-  msg(MSG::INFO) << "Number of Forward Fit Failures:           "
-                 << m_ForwardFailure << endmsg;
-  msg(MSG::INFO) << "Number of Smoother Failures:              "
-                 << m_SmootherFailure << endmsg;
-  msg(MSG::INFO) << "Number of MakePerigee Failures:           "
-                 << m_PerigeeFailure << endmsg;
-  msg(MSG::INFO) << "Number of Trks that fail fitquality test: "
-                 << m_fitQualityFailure << endmsg;
-  msg(MSG::INFO) << "-----------------------------------------------" << endmsg;
-
-  msg(MSG::INFO) << "Finalisation of " << name() << " was successful" << endmsg;
-
+  ATH_MSG_INFO(
+    "-----------------------------------------------"
+    << '\n'
+    << "            Some Brief GSF Statistics          " << '\n'
+    << "-----------------------------------------------" << '\n'
+    << "Number of Fit PrepRawData Calls:          " << m_FitPRD << '\n'
+    << "Number of Fit MeasurementBase Calls:      " << m_FitMeasurementBase
+    << '\n'
+    << "Number of Forward Fit Failures:           " << m_ForwardFailure << '\n'
+    << "Number of Smoother Failures:              " << m_SmootherFailure << '\n'
+    << "Number of MakePerigee Failures:           " << m_PerigeeFailure << '\n'
+    << "Number of Trks that fail fitquality test: " << m_fitQualityFailure
+    << '\n'
+    << "-----------------------------------------------" << '\n'
+    << "Finalisation of " << name() << " was successful");
   return StatusCode::SUCCESS;
 }
 
-/* ======================================================================================================
-   Refitting of a track
-=========================================================================================================
+/* 
+ * Refitting of a track
 */
-
 Trk::Track*
 Trk::GaussianSumFitter::fit(
   const Trk::Track& inputTrack,
   const Trk::RunOutlierRemoval outlierRemoval,
   const Trk::ParticleHypothesis particleHypothesis) const
 {
-
-  if (msgLvl(MSG::VERBOSE)) {
-    msg() << "Trk::GaussianSumFilter::fit() - Refitting a track" << endmsg;
-  }
-
   // Start the timer
   Chrono chrono(&(*m_chronoSvc), name());
 
   // Check that the input track has well defined parameters
   if (inputTrack.trackParameters()->empty()) {
-    msg(MSG::FATAL)
-      << "No estimation of track parameters near origin... Exiting!" << endmsg;
+    ATH_MSG_FATAL("No estimation of track parameters near origin... Exiting!");
     return nullptr;
   }
-
   // Check that the input track has associated MeasurementBase objects
   if (inputTrack.trackStateOnSurfaces()->empty()) {
-    msg(MSG::FATAL) << "Attempting to fit track to empty MeasurementBase "
-                       "collection... Exiting!"
-                    << endmsg;
+    ATH_MSG_FATAL("Attempting to fit track to empty MeasurementBase "
+                  "collection... Exiting!");
     return nullptr;
   }
 
@@ -229,11 +197,6 @@ Trk::GaussianSumFitter::fit(
                        inputTrack.trackParameters()->end(),
                        *m_trkParametersComparisonFunction));
 
-  if (msgLvl(MSG::VERBOSE)) {
-    msg() << "Estimation parameters near reference point: "
-          << *parametersNearestReference << endmsg;
-  }
-
   // If refitting of track is at the MeasurementBase level
   // extract the MeasurementBase from the input track and create a new vector
   if (m_refitOnMeasurementBase) {
@@ -318,9 +281,8 @@ Trk::GaussianSumFitter::fit(
              particleHypothesis);
 }
 
-/* ==================================================================================================================
+/*
    Fitting of a set of PrepRawData objects
-=====================================================================================================================
 */
 
 Trk::Track*
@@ -330,38 +292,32 @@ Trk::GaussianSumFitter::fit(
   const Trk::RunOutlierRemoval outlierRemoval,
   const Trk::ParticleHypothesis particleHypothesis) const
 {
-
-  ATH_MSG_VERBOSE(
-    "Trk::GaussianSumFilter::fit() - Fitting a set of PrepRawData objects"
-    << '\n'
-    << "Material effects switch: " << particleHypothesis << '\n'
-    << "Outlier removal switch:  " << outlierRemoval);
-
   ++m_FitPRD;
 
+  if (outlierRemoval) {
+    ATH_MSG_DEBUG(
+      "Outlier removal not yet implemented for the Gaussian Sum Filter");
+  }
+
   // Start the timer
   Chrono chrono(&(*m_chronoSvc), name());
-
   // Protect against empty PrepRawDataSet object
   if (prepRawDataSet.empty()) {
     ATH_MSG_FATAL("PrepRawData set for fit is empty... Exiting!");
     return nullptr;
   }
 
-  // A const stl container cannot be sorted. This will re-cast it so that it
-  // can.
   Trk::PrepRawDataSet sortedPrepRawDataSet = PrepRawDataSet(prepRawDataSet);
 
   if (m_doHitSorting) {
-    Trk::PrepRawDataComparisonFunction* prdComparisonFunction =
-      new Trk::PrepRawDataComparisonFunction(
+    Trk::PrepRawDataComparisonFunction prdComparisonFunction =
+      Trk::PrepRawDataComparisonFunction(
         estimatedParametersNearOrigin.position(),
         estimatedParametersNearOrigin.momentum());
+
     std::sort(sortedPrepRawDataSet.begin(),
               sortedPrepRawDataSet.end(),
-              *prdComparisonFunction);
-
-    delete prdComparisonFunction;
+              prdComparisonFunction);
   }
 
   // Perform GSF forwards fit
@@ -384,11 +340,10 @@ Trk::GaussianSumFitter::fit(
     return nullptr;
   }
 
-  ATH_MSG_VERBOSE("*** Forward GSF fit passed! ***");
-
+  const EventContext& ctx= Gaudi::Hive::currentContext();
   // Perform GSF smoother operation
   SmoothedTrajectory* smoothedTrajectory =
-    m_gsfSmoother->fit(*forwardTrajectory, particleHypothesis);
+    m_gsfSmoother->fit(ctx,*forwardTrajectory, particleHypothesis);
 
   // Protect against failed smoother fit
   if (!smoothedTrajectory) {
@@ -398,11 +353,8 @@ Trk::GaussianSumFitter::fit(
     return nullptr;
   }
 
-  ATH_MSG_VERBOSE("*** GSF smoother fit passed! ***");
-
   // Outlier m_logic and track finalisation
   const FitQuality* fitQuality = buildFitQuality(*smoothedTrajectory);
-
   if (!fitQuality) {
     ATH_MSG_DEBUG("Chi squared could not be calculated... Bailing");
     ++m_fitQualityFailure;
@@ -413,14 +365,9 @@ Trk::GaussianSumFitter::fit(
 
   Track* fittedTrack = nullptr;
 
-  if (outlierRemoval) {
-    ATH_MSG_DEBUG(
-      "Outlier removal not yet implemented for the Gaussian Sum Filter");
-  }
-
   if (m_makePerigee) {
     const Trk::MultiComponentStateOnSurface* perigeeMultiStateOnSurface =
-      this->makePerigee(smoothedTrajectory, particleHypothesis);
+      this->makePerigee(ctx,smoothedTrajectory, particleHypothesis);
     ATH_MSG_DEBUG(
       "perigeeMultiStateOnSurface  :" << perigeeMultiStateOnSurface);
     if (perigeeMultiStateOnSurface) {
@@ -446,24 +393,12 @@ Trk::GaussianSumFitter::fit(
   info.setTrackProperties(TrackInfo::BremFitSuccessful);
   fittedTrack = new Track(info, smoothedTrajectory, fitQuality);
 
-  if (fittedTrack) {
-    ATH_MSG_VERBOSE("Fitting of a set of PrepRawData objects is successful"
-                    << '\n'
-                    << "Track fit chi squared... " << fitQuality->chiSquared()
-                    << '\n'
-                    << "Track fit number of degrees of freedom... "
-                    << fitQuality->numberDoF());
-  } else {
-    ATH_MSG_DEBUG("Trk::GaussianSumFilter::fit() failed!");
-  }
   return fittedTrack;
 }
 
-/* ================================================================================================
-   Fitting of a set of MeasurementBase objects
-==============
-====================================================================================
-*/
+/*
+ * Fitting of a set of MeasurementBase objects
+ */
 
 Trk::Track*
 Trk::GaussianSumFitter::fit(
@@ -473,15 +408,15 @@ Trk::GaussianSumFitter::fit(
   const Trk::ParticleHypothesis particleHypothesis) const
 {
 
+  if (outlierRemoval) {
+    ATH_MSG_DEBUG(
+      "Outlier removal not yet implemented for the Gaussian Sum Filter");
+  }
+
+
   // Start the timer
   Chrono chrono(&(*m_chronoSvc), name());
 
-  ATH_MSG_VERBOSE(
-    "Trk::GaussianSumFilter::fit() - Fitting a set of MeasurementBase objects"
-    << '\n'
-    << "Material effects switch: " << particleHypothesis << '\n'
-    << "Outlier removal switch:  " << outlierRemoval);
-
   ++m_FitMeasurementBase;
   // Protect against empty PrepRawDataSet object
   if (measurementSet.empty()) {
@@ -547,11 +482,11 @@ Trk::GaussianSumFitter::fit(
     return nullptr;
   }
 
-  ATH_MSG_VERBOSE("*** Forward GSF fit passed! ***");
-
   // Perform GSF smoother operation
+
+  const EventContext& ctx = Gaudi::Hive::currentContext();
   SmoothedTrajectory* smoothedTrajectory =
-    m_gsfSmoother->fit(*forwardTrajectory, particleHypothesis, ccot);
+    m_gsfSmoother->fit(ctx, *forwardTrajectory, particleHypothesis, ccot);
 
   // Protect against failed smoother fit
   if (!smoothedTrajectory) {
@@ -560,7 +495,6 @@ Trk::GaussianSumFitter::fit(
     delete forwardTrajectory;
     return nullptr;
   }
-  ATH_MSG_VERBOSE("*** GSF smoother fit passed! ***");
 
   // Outlier m_logic and track finalisation
   const FitQuality* fitQuality = buildFitQuality(*smoothedTrajectory);
@@ -573,13 +507,9 @@ Trk::GaussianSumFitter::fit(
     return nullptr;
   }
 
-  if (outlierRemoval) {
-    ATH_MSG_DEBUG(
-      "Outlier removal not yet implemented for the Gaussian Sum Filter");
-  }
   if (m_makePerigee) {
     const Trk::MultiComponentStateOnSurface* perigeeMultiStateOnSurface =
-      this->makePerigee(smoothedTrajectory, particleHypothesis);
+      this->makePerigee(ctx,smoothedTrajectory, particleHypothesis);
     ATH_MSG_DEBUG(
       "perigeeMultiStateOnSurface  :" << perigeeMultiStateOnSurface);
 
@@ -607,16 +537,6 @@ Trk::GaussianSumFitter::fit(
   info.setTrackProperties(TrackInfo::BremFitSuccessful);
   Track* fittedTrack = new Track(info, smoothedTrajectory, fitQuality);
 
-  if (fittedTrack) {
-    ATH_MSG_DEBUG("Fitting of a set of MeasurementBase objects is successful"
-                  << '\n'
-                  << "Track fit chi squared... " << fitQuality->chiSquared()
-                  << '\n'
-                  << "Track fit number of degrees of freedom... "
-                  << fitQuality->numberDoF());
-  } else {
-    ATH_MSG_DEBUG("Trk::GaussianSumFilter::fit() failed!");
-  }
   return fittedTrack;
 }
 
@@ -627,11 +547,6 @@ Trk::GaussianSumFitter::fit(const Track& intrk,
                             const ParticleHypothesis matEffects) const
 {
 
-  ATH_MSG_VERBOSE("--> enter GaussianSumFitter::fit(Track,PrdSet,,)"
-                  << '\n'
-                  << "    with Track from author = "
-                  << intrk.info().dumpInfo());
-
   // protection, if empty PrepRawDataSet
   if (addPrdColl.empty()) {
     ATH_MSG_WARNING(
@@ -674,9 +589,6 @@ Trk::GaussianSumFitter::fit(const Track& inputTrack,
                             const ParticleHypothesis matEffects) const
 {
 
-  ATH_MSG_VERBOSE("Trk::GaussianSumFilter::fit() - Refitting a track with a "
-                  "additional information ");
-
   // protection, if empty MeasurementSet
   if (measurementSet.empty()) {
     ATH_MSG_WARNING(
@@ -720,16 +632,14 @@ Trk::GaussianSumFitter::fit(const Track& intrk1,
   // protection against not having measurements on the input tracks
   if (!intrk1.trackStateOnSurfaces() || !intrk2.trackStateOnSurfaces() ||
       intrk1.trackStateOnSurfaces()->size() < 2) {
-    msg(MSG::WARNING) << "called to refit empty track or track with too little "
-                         "information, reject fit"
-                      << endmsg;
+    ATH_MSG_WARNING("called to refit empty track or track with too little "
+                    "information, reject fit");
     return nullptr;
   }
 
   if (!intrk1.trackParameters() || intrk1.trackParameters()->empty()) {
-    msg(MSG::WARNING) << "input #1 fails to provide track parameters for "
-                         "seeding the GXF, reject fit"
-                      << endmsg;
+    ATH_MSG_WARNING("input #1 fails to provide track parameters for "
+                    "seeding the GXF, reject fit");
     return nullptr;
   }
 
@@ -780,6 +690,7 @@ Trk::GaussianSumFitter::fit(const Track& intrk1,
 
 const Trk::MultiComponentStateOnSurface*
 Trk::GaussianSumFitter::makePerigee(
+  const EventContext& ctx,
   const Trk::SmoothedTrajectory* smoothedTrajectory,
   const Trk::ParticleHypothesis particleHypothesis) const
 {
@@ -807,7 +718,7 @@ Trk::GaussianSumFitter::makePerigee(
   }
   // Extrapolate to perigee, taking material effects considerations into account
   Trk::MultiComponentState stateExtrapolatedToPerigee =
-    m_extrapolator->extrapolate(Gaudi::Hive::currentContext(),
+    m_extrapolator->extrapolate(ctx,
                                 *multiComponentState,
                                 perigeeSurface,
                                 m_directionToPerigee,
@@ -828,11 +739,6 @@ Trk::GaussianSumFitter::makePerigee(
   // Calculate the mode of the q/p distribution
   double modeQoverP = 0;
 
-  if (modeQoverP) {
-    ATH_MSG_VERBOSE(
-      "Calculated mode is stored by default in the Perigee Parameters"
-      << "and is NO Longer Stored as a seperate Parameter");
-  }
   // Determine the combined state as well to be passed to the
   // MultiComponentStateOnSurface object
   std::unique_ptr<Trk::TrackParameters> combinedPerigee =
@@ -844,9 +750,8 @@ Trk::GaussianSumFitter::makePerigee(
   pattern.set(Trk::TrackStateOnSurface::Perigee);
 
   if (fabs(combinedPerigee->parameters()[Trk::qOverP]) > 1e8) {
-    // GC: protection against 0-momentum track .. this check should NEVER be
-    // needed.
-    //    actual cutoff is 0.01eV track
+    // Protection against 0-momentum track .. this check should NEVER be needed.
+    //actual cutoff is 0.01eV track
     ATH_MSG_ERROR(
       "makePerigee() about to return with 0 momentum!! Returning null instead");
     return nullptr;
@@ -870,7 +775,6 @@ Trk::GaussianSumFitter::buildFitQuality(
   const Trk::SmoothedTrajectory& smoothedTrajectory) const
 {
 
-  ATH_MSG_VERBOSE("Gsf fitQuality");
   double chiSquared = 0.;
   int numberDoF = -5;
 
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfSmoother.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfSmoother.cxx
index af2de668dc0..5ca92fd3350 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfSmoother.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfSmoother.cxx
@@ -64,7 +64,8 @@ Trk::GsfSmoother::configureTools(
 }
 
 Trk::SmoothedTrajectory*
-Trk::GsfSmoother::fit(const ForwardTrajectory& forwardTrajectory,
+Trk::GsfSmoother::fit(const EventContext& ctx,
+                      const ForwardTrajectory& forwardTrajectory,
                       const ParticleHypothesis particleHypothesis,
                       const Trk::CaloCluster_OnTrack* ccot) const
 {
@@ -247,7 +248,7 @@ Trk::GsfSmoother::fit(const ForwardTrajectory& forwardTrajectory,
      is opposite to the direction of momentum */
 
     Trk::MultiComponentState extrapolatedState =
-      m_extrapolator->extrapolate(Gaudi::Hive::currentContext(),
+      m_extrapolator->extrapolate(ctx,
                                   updatedState,
                                   measurement->associatedSurface(),
                                   Trk::oppositeMomentum,
@@ -365,7 +366,7 @@ Trk::GsfSmoother::fit(const ForwardTrajectory& forwardTrajectory,
       if (ccot && trackStateOnSurface == secondLastTrackStateOnSurface) {
 
         Trk::MultiComponentState ccotState =
-          addCCOT(updatedStateOnSurface, ccot, smoothedTrajectory.get());
+          addCCOT(ctx,updatedStateOnSurface, ccot, smoothedTrajectory.get());
         if (!ccotState.empty()) {
           updatedState = std::move(ccotState);
         }
@@ -474,7 +475,8 @@ Trk::GsfSmoother::combine(
 }
 
 Trk::MultiComponentState
-Trk::GsfSmoother::addCCOT(const Trk::TrackStateOnSurface* currentState,
+Trk::GsfSmoother::addCCOT(const EventContext& ctx,
+                          const Trk::TrackStateOnSurface* currentState,
                           const Trk::CaloCluster_OnTrack* ccot,
                           Trk::SmoothedTrajectory* smoothedTrajectory) const
 {
@@ -496,7 +498,7 @@ Trk::GsfSmoother::addCCOT(const Trk::TrackStateOnSurface* currentState,
   // Extrapolate to the Calo
   if (currentSurface) {
     extrapolatedState =
-      m_extrapolator->extrapolateDirectly(Gaudi::Hive::currentContext(),
+      m_extrapolator->extrapolateDirectly(ctx,
                                           *currentMultiComponentState,
                                           ccot->associatedSurface(),
                                           Trk::alongMomentum,
@@ -530,7 +532,7 @@ Trk::GsfSmoother::addCCOT(const Trk::TrackStateOnSurface* currentState,
 
   // Extrapolate back to the surface nearest the origin
   extrapolatedState =
-    m_extrapolator->extrapolateDirectly(Gaudi::Hive::currentContext(),
+    m_extrapolator->extrapolateDirectly(ctx,
                                         updatedState,
                                         *currentSurface,
                                         Trk::oppositeMomentum,
-- 
GitLab