diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
index f0489f2d585ff4decc516087cae6961e6ad29255..20e645d12e8d9bbcbaf806490946cf194ceefa74 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
@@ -248,11 +248,11 @@ StatusCode CKF2::execute() {
       fittedParams = Acts::BoundTrackParameters(track.referenceSurface().getSharedPtr(), track.parameters(), track.covariance(), Acts::ParticleHypothesis::muon()); 
     } else {
       ATH_MSG_WARNING("No fitted parameters at target position" << targetZposition);
-      //throw std::runtime_error("No fitted parameters at target position");
     }
 
     std::unique_ptr<Trk::Track> trk = m_createTrkTrackTool->createTrack(gctx, track, fittedParams, m_backwardPropagation);
     m_numberOfSelectedTracks++;
+    //@todo: make the KF refit configurable 
     std::unique_ptr<Trk::Track> trk2 = m_kalmanFitterTool1->fit(
       ctx, gctx, trk.get(), Acts::BoundVector::Zero(), m_isMC);
     if (trk2) {
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/RootTrajectorySummaryWriterTool.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/RootTrajectorySummaryWriterTool.cxx
index 56b2a4c2fa806defc1f7977ad4aa77731783c1b8..4ef9c4dda36a0136bbf08617b6b3c7845d82988b 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/RootTrajectorySummaryWriterTool.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/RootTrajectorySummaryWriterTool.cxx
@@ -95,6 +95,9 @@ StatusCode RootTrajectorySummaryWriterTool::initialize() {
 
 
     m_outputTree->Branch("hasFittedParams", &m_hasFittedParams);
+    m_outputTree->Branch("surface_x", &m_surface_x);
+    m_outputTree->Branch("surface_y", &m_surface_y);
+    m_outputTree->Branch("surface_z", &m_surface_z);
     m_outputTree->Branch("eLOC0_fit", &m_eLOC0_fit);
     m_outputTree->Branch("eLOC1_fit", &m_eLOC1_fit);
     m_outputTree->Branch("ePHI_fit", &m_ePHI_fit);
@@ -338,6 +341,9 @@ StatusCode RootTrajectorySummaryWriterTool::write(
     std::array<float, Acts::eBoundSize> res = {NaNfloat, NaNfloat, NaNfloat, NaNfloat, NaNfloat, NaNfloat};
     std::array<float, Acts::eBoundSize> error = {NaNfloat, NaNfloat, NaNfloat, NaNfloat, NaNfloat, NaNfloat};
     std::array<float, Acts::eBoundSize> pull = {NaNfloat, NaNfloat, NaNfloat, NaNfloat, NaNfloat, NaNfloat};
+    float surfaceX = NaNfloat; 
+    float surfaceY = NaNfloat; 
+    float surfaceZ = NaNfloat; 
     bool hasFittedParams = track.hasReferenceSurface();
     if (hasFittedParams) {
       const auto& parameter = track.parameters(); 
@@ -357,10 +363,18 @@ StatusCode RootTrajectorySummaryWriterTool::write(
         error[i] = std::sqrt(covariance(i, i));
         pull[i] = res[i] / error[i];
       }
+      auto surface = &(track.referenceSurface()); 
+      auto center = surface->center(geoContext);
+      surfaceX = center.x(); 
+      surfaceY = center.y(); 
+      surfaceZ = center.z(); 
     }
 
     // Push the fitted track parameters.
     // Always push back even if no fitted track parameters
+    m_surface_x.push_back(surfaceX); 
+    m_surface_y.push_back(surfaceY); 
+    m_surface_z.push_back(surfaceZ); 
     m_eLOC0_fit.push_back(param[Acts::eBoundLoc0]);
     m_eLOC1_fit.push_back(param[Acts::eBoundLoc1]);
     m_ePHI_fit.push_back(param[Acts::eBoundPhi]);
@@ -430,6 +444,9 @@ StatusCode RootTrajectorySummaryWriterTool::write(
   m_t_z0.clear();
 
   m_hasFittedParams.clear();
+  m_surface_x.clear(); 
+  m_surface_y.clear(); 
+  m_surface_z.clear(); 
   m_eLOC0_fit.clear();
   m_eLOC1_fit.clear();
   m_ePHI_fit.clear();
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/RootTrajectorySummaryWriterTool.h b/Tracking/Acts/FaserActsKalmanFilter/src/RootTrajectorySummaryWriterTool.h
index 8b0a3ca38fe497ece3743497e32c08a83680a49c..383431d782ad631f49e7dd69e8373685e7962b59 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/RootTrajectorySummaryWriterTool.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/RootTrajectorySummaryWriterTool.h
@@ -86,6 +86,10 @@ private:
   mutable std::vector<float> m_t_z0;  ///< The extrapolated truth longitudinal impact parameter
 
   mutable std::vector<bool> m_hasFittedParams;  ///< If the track has fitted parameter
+  //The fitted parameters representing surface center 
+  mutable std::vector<float> m_surface_x;   ///< Fitted parameters representing surface x of track
+  mutable std::vector<float> m_surface_y;   ///< Fitted parameters representing surface y of track
+  mutable std::vector<float> m_surface_z;   ///< Fitted parameters representing surface z of track
   // The fitted parameters
   mutable std::vector<float> m_eLOC0_fit;   ///< Fitted parameters eBoundLoc0 of track
   mutable std::vector<float> m_eLOC1_fit;   ///< Fitted parameters eBoundLoc1 of track