diff --git a/Tracking/Acts/FaserActsGeometry/src/FaserActsLayerBuilder.cxx b/Tracking/Acts/FaserActsGeometry/src/FaserActsLayerBuilder.cxx
index 649f2503cb69c93b96b8e454727998656898eccf..18d30a048a1f41fad4739de97eb1c22650ee2eb7 100644
--- a/Tracking/Acts/FaserActsGeometry/src/FaserActsLayerBuilder.cxx
+++ b/Tracking/Acts/FaserActsGeometry/src/FaserActsLayerBuilder.cxx
@@ -297,7 +297,10 @@ FaserActs::CuboidVolumeBuilder::VolumeConfig FaserActsLayerBuilder::buildDipoleV
    Acts::Surface::makeShared<Acts::DiscSurface>(
    transformCenter, rmin, rmax);
 
-  Transform3 transformInner(Translation3(0., 0., (zpos-zhalflength)*1_mm));
+  // @note: 0.001 mm is added to avoid overlapping surfaces and volume boundarys; 
+  // This can cause issue in boundary intersecton check as any tiny overstepLimit is not allowed here:
+  // https://github.com/acts-project/acts/blob/v32.0.2/Core/src/Geometry/TrackingVolume.cpp#L485 
+  Transform3 transformInner(Translation3(0., 0., (zpos-zhalflength+0.001)*1_mm));
 
   std::shared_ptr<Acts::DiscSurface> innerBoundary =
    Acts::Surface::makeShared<Acts::DiscSurface>(
@@ -371,7 +374,10 @@ FaserActs::CuboidVolumeBuilder::VolumeConfig FaserActsLayerBuilder::buildScintVo
 //  surfacecfg.rBounds=rBounds;
 
 
-  Transform3 transformInner(Translation3(xpos*1_mm, ypos*1_mm, (zpos-zhalflength)*1_mm));
+  // @note: 0.001 mm is added to avoid overlapping surfaces and volume boundarys; 
+  // This can cause issue in boundary intersecton check as any tiny overstepLimit is not allowed here:
+  // https://github.com/acts-project/acts/blob/v32.0.2/Core/src/Geometry/TrackingVolume.cpp#L485 
+  Transform3 transformInner(Translation3(xpos*1_mm, ypos*1_mm, (zpos-zhalflength+0.001)*1_mm));
 
   std::shared_ptr<Acts::PlaneSurface> innerBoundary =
    Acts::Surface::makeShared<Acts::PlaneSurface>(
@@ -382,13 +388,16 @@ FaserActs::CuboidVolumeBuilder::VolumeConfig FaserActsLayerBuilder::buildScintVo
    Acts::Surface::makeShared<Acts::PlaneSurface>(
    transformCenter, rBounds);
 
-  Transform3 transformOuter(Translation3(xpos*1_mm, ypos*1_mm, (zpos+zhalflength)*1_mm));
+  // @note: 0.001 mm is added to avoid overlapping surfaces and volume boundarys; 
+  // This can cause issue in boundary intersecton check as any tiny overstepLimit is not allowed here:
+  // https://github.com/acts-project/acts/blob/v32.0.2/Core/src/Geometry/TrackingVolume.cpp#L485 
+  // @todo: since no material is mapped to trigger or dipole station, will remove the trigger/dipole station building in ACTS 
+  Transform3 transformOuter(Translation3(xpos*1_mm, ypos*1_mm, (zpos+zhalflength-0.001)*1_mm));
 
   std::shared_ptr<Acts::PlaneSurface> outerBoundary =
    Acts::Surface::makeShared<Acts::PlaneSurface>(
    transformOuter, rBounds);
 
-
 //  set bin size to 2 
   Acts::BinUtility materialBinUtil(2, (0.-xhalflength)*1_mm, xhalflength*1_mm, Acts::open, Acts::binX);
   materialBinUtil +=
@@ -417,6 +426,7 @@ FaserActs::CuboidVolumeBuilder::VolumeConfig FaserActsLayerBuilder::buildScintVo
   volumeConfig.layerCfg = layerConfigs;
   volumeConfig.name     = name;
 
+
   return volumeConfig;
 
 }
diff --git a/Tracking/Acts/FaserActsKalmanFilter/python/CKF2Config.py b/Tracking/Acts/FaserActsKalmanFilter/python/CKF2Config.py
index ade113b4756a687dc1d2325d1cbb37f69e2a4a02..8b64aa57d8d7927c84b31ffae8c224b9b868a3a7 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/python/CKF2Config.py
+++ b/Tracking/Acts/FaserActsKalmanFilter/python/CKF2Config.py
@@ -115,6 +115,7 @@ def CKF2Cfg(flags, actsOutputTag, **kwargs):
     ckf.chi2Max = 25
     # Protect against running out of memory on busy events
     ckf.maxSteps = 5000
+    ckf.addFittedParamsToTrack = True 
     acc.addEventAlgo(ckf)
     # acc.merge(CKF2_OutputCfg(flags))
     return acc
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
index 20e645d12e8d9bbcbaf806490946cf194ceefa74..1bdb46e54bfe78763f8f65abb49132cbc0073109 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
@@ -245,7 +245,9 @@ StatusCode CKF2::execute() {
       //const auto& charge = track.charge();
       ATH_MSG_DEBUG("Fitted parameters");
       ATH_MSG_DEBUG("  params:   " << params.transpose());
-      fittedParams = Acts::BoundTrackParameters(track.referenceSurface().getSharedPtr(), track.parameters(), track.covariance(), Acts::ParticleHypothesis::muon()); 
+      if(m_addFittedParamsToTrack){
+        fittedParams = Acts::BoundTrackParameters(track.referenceSurface().getSharedPtr(), track.parameters(), track.covariance(), Acts::ParticleHypothesis::muon()); 
+      }
     } else {
       ATH_MSG_WARNING("No fitted parameters at target position" << targetZposition);
     }
@@ -255,7 +257,7 @@ StatusCode CKF2::execute() {
     //@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) {
+    if (trk2 != nullptr) {
       outputTracks->push_back(std::move(trk2));
     } else {
       outputTracks->push_back(std::move(trk));
@@ -270,10 +272,10 @@ StatusCode CKF2::execute() {
 //  }
 
   if (m_statesWriter && !m_noDiagnostics) {
-    ATH_CHECK(m_trajectoryStatesWriterTool->write(gctx, tracks, m_isMC));
+    ATH_CHECK(m_trajectoryStatesWriterTool->write(gctx, selectedTracks, m_isMC));
   }
   if (m_summaryWriter && !m_noDiagnostics) {
-    ATH_CHECK(m_trajectorySummaryWriterTool->write(gctx, tracks, m_isMC));
+    ATH_CHECK(m_trajectorySummaryWriterTool->write(gctx, selectedTracks, m_isMC));
   }
   // ATH_CHECK(allTrackContainer.record(std::move(outputAllTracks)));
   ATH_CHECK(trackContainer.record(std::move(outputTracks)));
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.h b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.h
index 7e6810e8d3f316eac3c1c1e493b9f25b34156c3f..121770f7fb1c994ae4a3902ec7ec952335230608 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.h
@@ -96,6 +96,7 @@ private:
   Gaudi::Property<bool> m_resolvePassive {this, "resolvePassive", false};
   Gaudi::Property<bool> m_resolveMaterial {this, "resolveMaterial", true};
   Gaudi::Property<bool> m_resolveSensitive {this, "resolveSensitive", true};
+  Gaudi::Property<bool> m_addFittedParamsToTrack {this, "addFittedParamsToTrack", true};
   Gaudi::Property<double> m_maxSteps {this, "maxSteps", 10000};
   Gaudi::Property<double> m_chi2Max {this, "chi2Max", 15};
   Gaudi::Property<unsigned long> m_nMax {this, "nMax", 10};