diff --git a/Tracking/Acts/FaserActsKalmanFilter/FaserActsKalmanFilter/KalmanFitterTool.h b/Tracking/Acts/FaserActsKalmanFilter/FaserActsKalmanFilter/KalmanFitterTool.h
index 6b8f8471c1c15866b58b45bf0b2c9ede581f0312..8bf92e91580d7d1839fe2ebfaf78bdaba73295a3 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/FaserActsKalmanFilter/KalmanFitterTool.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/FaserActsKalmanFilter/KalmanFitterTool.h
@@ -40,9 +40,9 @@ public:
       std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry);
 
   virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext& ctx) const;
-  std::unique_ptr<Trk::Track> fit(const EventContext& ctx, const Trk::Track& inputTrack,
-                                  std::vector<FaserActsRecMultiTrajectory> &trajectories,
-                                  const Acts::BoundVector& inputVector, bool isMC, double origin) const;
+  std::unique_ptr<Trk::Track> fit(const EventContext &ctx, const Acts::GeometryContext &gctx, const Trk::Track &inputTrack,
+                        std::vector<FaserActsRecMultiTrajectory> & /*trajectories*/,
+                        const Acts::BoundVector& inputVector = Acts::BoundVector::Zero(), bool isMC=false, double origin=0) const;
 
 private:
   const FaserSCT_ID* m_idHelper {nullptr};
@@ -64,7 +64,7 @@ private:
   ToolHandle<IFaserActsTrackingGeometryTool> m_trackingGeometryTool {this, "TrackingGeometryTool", "FaserActsTrackingGeometryTool"};
   ToolHandle<RootTrajectoryStatesWriterTool> m_trajectoryStatesWriterTool {this, "RootTrajectoryStatesWriterTool", "RootTrajectoryStatesWriterTool"};
   ToolHandle<RootTrajectorySummaryWriterTool> m_trajectorySummaryWriterTool {this, "RootTrajectorySummaryWriterTool", "RootTrajectorySummaryWriterTool"};
-  std::unique_ptr<Trk::Track> makeTrack(Acts::GeometryContext& tgContext, TrackFitterResult& fitResult) const;
+  std::unique_ptr<Trk::Track> makeTrack(const Acts::GeometryContext &gctx, TrackFitterResult& fitResult) const;
   const Trk::TrackParameters* ConvertActsTrackParameterToATLAS(const Acts::BoundTrackParameters &actsParameter, const Acts::GeometryContext& gctx) const;
 };
 
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
index a3945c24662f12a1c7d800a226b1141c9c0f197b..566470969777edd4d55b5f20df4f1a4eeae6419b 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
@@ -85,8 +85,8 @@ StatusCode CKF2::execute() {
   std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry
       = m_trackingGeometryTool->trackingGeometry();
 
-  const FaserActsGeometryContext& gctx = m_trackingGeometryTool->getNominalGeometryContext();
-  auto geoctx = gctx.context();
+  const FaserActsGeometryContext& faserActsGeometryContext = m_trackingGeometryTool->getNominalGeometryContext();
+  auto gctx = faserActsGeometryContext.context();
   Acts::MagneticFieldContext magFieldContext = getMagneticFieldContext(ctx);
   Acts::CalibrationContext calibContext;
 
@@ -125,7 +125,7 @@ StatusCode CKF2::execute() {
 
   // Set the CombinatorialKalmanFilter options
   CKF2::TrackFinderOptions options(
-      geoctx, magFieldContext, calibContext,
+      gctx, magFieldContext, calibContext,
       IndexSourceLinkAccessor(), MeasurementCalibrator(*measurements),
       Acts::MeasurementSelector(measurementSelectorCfg),
       Acts::LoggerWrapper{*m_logger}, pOptions, &(*initialSurface));
@@ -138,7 +138,7 @@ StatusCode CKF2::execute() {
   }
 
   for (const auto& init : *initialParameters) {
-    ATH_MSG_DEBUG("  position: " << init.position(geoctx).transpose());
+    ATH_MSG_DEBUG("  position: " << init.position(gctx).transpose());
     ATH_MSG_DEBUG("  momentum: " << init.momentum().transpose());
     ATH_MSG_DEBUG("  charge:   " << init.charge());
   }
@@ -183,16 +183,16 @@ StatusCode CKF2::execute() {
     const auto params = traj.trackParameters(traj.tips().front());
     ATH_MSG_DEBUG("Fitted parameters");
     ATH_MSG_DEBUG("  params:   " << params.parameters().transpose());
-    ATH_MSG_DEBUG("  position: " << params.position(geoctx).transpose());
+    ATH_MSG_DEBUG("  position: " << params.position(gctx).transpose());
     ATH_MSG_DEBUG("  momentum: " << params.momentum().transpose());
     ATH_MSG_DEBUG("  charge:   " << params.charge());
     // double charge = params.charge();
-    std::unique_ptr<Trk::Track> track = makeTrack(geoctx, traj);
+    std::unique_ptr<Trk::Track> track = makeTrack(gctx, traj);
     if (track) {
       // outputTracks->push_back(std::move(track));
-      std::unique_ptr<Trk::Track> track2 = m_kalmanFitterTool1->fit(ctx, *track, trajectories, Acts::BoundVector::Zero(), m_isMC, origin);
+      std::unique_ptr<Trk::Track> track2 = m_kalmanFitterTool1->fit(ctx, gctx, *track, trajectories, Acts::BoundVector::Zero(), m_isMC, origin);
       if (track2) {
-        std::unique_ptr<Trk::Track> track3 = m_kalmanFitterTool2->fit(ctx, *track2, trajectories, Acts::BoundVector::Zero(), m_isMC, origin);
+        std::unique_ptr<Trk::Track> track3 = m_kalmanFitterTool2->fit(ctx, gctx, *track2, trajectories, Acts::BoundVector::Zero(), m_isMC, origin);
         outputTracks->push_back(std::move(track3));
       }
     }
@@ -200,13 +200,13 @@ StatusCode CKF2::execute() {
 
   // run the performance writer
   if (m_statesWriter && !m_noDiagnostics) {
-    ATH_CHECK(m_trajectoryStatesWriterTool->write(geoctx, selectedTrajectories, m_isMC));
+    ATH_CHECK(m_trajectoryStatesWriterTool->write(gctx, selectedTrajectories, m_isMC));
   }
   if (m_summaryWriter && !m_noDiagnostics) {
-    ATH_CHECK(m_trajectorySummaryWriterTool->write(geoctx, selectedTrajectories, m_isMC));
+    ATH_CHECK(m_trajectorySummaryWriterTool->write(gctx, selectedTrajectories, m_isMC));
   }
   if  (m_performanceWriter && !m_noDiagnostics) {
-    ATH_CHECK(m_performanceWriterTool->write(geoctx, selectedTrajectories));
+    ATH_CHECK(m_performanceWriterTool->write(gctx, selectedTrajectories));
   }
   ATH_CHECK(trackContainer.record(std::move(outputTracks)));
 
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx
index eddf4cabd33698632f487d1f825388e514416fc6..52aae1d0f2a06e728df5f8f63767836c009cfa45 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx
@@ -39,9 +39,9 @@ StatusCode KalmanFitterTool::finalize() {
 }
 
 std::unique_ptr<Trk::Track>
-KalmanFitterTool::fit(const EventContext &ctx, const Trk::Track &inputTrack,
+KalmanFitterTool::fit(const EventContext &ctx, const Acts::GeometryContext &gctx, const Trk::Track &inputTrack,
                       std::vector<FaserActsRecMultiTrajectory> & /*trajectories*/,
-                      const Acts::BoundVector& inputVector = Acts::BoundVector::Zero(), bool isMC=false, double origin=0) const {
+                      const Acts::BoundVector& inputVector, bool isMC, double origin) const {
   std::unique_ptr<Trk::Track> newTrack = nullptr;
   std::vector<FaserActsRecMultiTrajectory> myTrajectories;
 
@@ -59,7 +59,6 @@ KalmanFitterTool::fit(const EventContext &ctx, const Trk::Track &inputTrack,
   auto pSurface = Acts::Surface::makeShared<Acts::PlaneSurface>(
       Acts::Vector3 {0, 0, origin}, Acts::Vector3{0, 0, -1});
 
-  Acts::GeometryContext gctx = m_trackingGeometryTool->getNominalGeometryContext().context();
   Acts::MagneticFieldContext mfContext = getMagneticFieldContext(ctx);
   Acts::CalibrationContext calibContext = Acts::CalibrationContext();
 
@@ -247,7 +246,7 @@ KalmanFitterTool::getParametersFromTrack(const Trk::TrackParameters *inputParame
 
 
 std::unique_ptr<Trk::Track>
-KalmanFitterTool::makeTrack(Acts::GeometryContext& geoCtx, TrackFitterResult& fitResult) const {
+KalmanFitterTool::makeTrack(const Acts::GeometryContext &geoCtx, TrackFitterResult& fitResult) const {
   using ConstTrackStateProxy =
       Acts::detail_lt::TrackStateProxy<IndexSourceLink, 6, true>;
   std::unique_ptr<Trk::Track> newtrack = nullptr;