diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/FaserActsKalmanFilterAlg.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/FaserActsKalmanFilterAlg.cxx
index d6e8bb2eb5ab2ab993c2f6e24220fdf6e8a373d3..c72c34c512b71ebb88db2dd341f2b4dbb542afa0 100755
--- a/Tracking/Acts/FaserActsKalmanFilter/src/FaserActsKalmanFilterAlg.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/FaserActsKalmanFilterAlg.cxx
@@ -123,7 +123,7 @@ StatusCode FaserActsKalmanFilterAlg::execute() {
   CHECK(m_trackFinderTool->run());
   std::shared_ptr<const Acts::Surface> initialSurface =
       m_trackFinderTool->initialSurface();
-  std::shared_ptr<std::vector<Acts::CurvilinearTrackParameters>> initialTrackParameters =
+  std::shared_ptr<std::vector<Acts::BoundTrackParameters>> initialTrackParameters =
       m_trackFinderTool->initialTrackParameters();
   std::shared_ptr<std::vector<std::vector<IndexSourceLink>>> sourceLinks =
       m_trackFinderTool->sourceLinks();
@@ -141,7 +141,7 @@ StatusCode FaserActsKalmanFilterAlg::execute() {
 
   auto actsTrackContainer = std::make_shared<Acts::VectorTrackContainer>();
   auto actsTrackStateContainer = std::make_shared<Acts::VectorMultiTrajectory>();
-  TrackContainer tracks(actsTrackContainer, actsTrackStateContainer);
+  FaserActsTrackContainer tracks(actsTrackContainer, actsTrackStateContainer);
 
   //@todo: the initialSurface should be targetSurface
   FaserActsKalmanFilterAlg::GeneralFitterOptions options{
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/FaserActsKalmanFilterAlg.h b/Tracking/Acts/FaserActsKalmanFilter/src/FaserActsKalmanFilterAlg.h
index cf2f254e48023c41c6e90254b97418de19706692..5bc6cfd7fd8d84050814c981ffbe9d5900fb6fcb 100755
--- a/Tracking/Acts/FaserActsKalmanFilter/src/FaserActsKalmanFilterAlg.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/FaserActsKalmanFilterAlg.h
@@ -52,6 +52,7 @@
 #include "FaserActsKalmanFilter/IndexSourceLink.h"
 #include "FaserActsKalmanFilter/Measurement.h"
 #include "FaserActsKalmanFilter/ITrackFinderTool.h"
+#include "FaserActsTrack.h"
 //#include "ProtoTrackWriterTool.h"
 //todo #include "RootTrajectoryStatesWriterTool.h"
 
@@ -94,10 +95,7 @@ public:
 //  using TrackFitterOptions =
 //    Acts::KalmanFitterOptions<MeasurementCalibrator, Acts::VoidOutlierFinder,
 //                              Acts::VoidReverseFilteringLogic>;
-  using TrackContainer =
-      Acts::TrackContainer<Acts::VectorTrackContainer,
-                           Acts::VectorMultiTrajectory, std::shared_ptr>;
-  
+
   struct GeneralFitterOptions {
     std::reference_wrapper<const Acts::GeometryContext> geoContext;
     std::reference_wrapper<const Acts::MagneticFieldContext> magFieldContext;
@@ -106,7 +104,7 @@ public:
     Acts::PropagatorPlainOptions propOptions;
   };
 
-  using TrackFitterResult = Acts::Result<TrackContainer::TrackProxy>;
+  using TrackFitterResult = Acts::Result<FaserActsTrackContainer::TrackProxy>;
 
   using TrackParameters = Acts::BoundTrackParameters;
 
@@ -118,7 +116,7 @@ public:
       const TrackParameters &initialParameters,
       const GeneralFitterOptions& options,
       const MeasurementCalibratorAdapter& calibrator,
-      TrackContainer& tracks  
+      FaserActsTrackContainer& tracks  
     ) const = 0;
   };
 
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/MultiTrackFinderTool.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/MultiTrackFinderTool.cxx
index 8b5b0e584441bb17a66584e38359acd004a85514..536769670e27d817e49593618e136f91b7499a0a 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/MultiTrackFinderTool.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/MultiTrackFinderTool.cxx
@@ -83,7 +83,7 @@ StatusCode MultiTrackFinderTool::run() {
   std::vector<std::vector<IndexSourceLink>> sourceLinkVector;
   std::vector<std::vector<Measurement>> measurementVector;
   std::vector<std::map<Index, Identifier>> idLinkVector;
-  std::vector<Acts::CurvilinearTrackParameters> paramVector;
+  std::vector<Acts::BoundTrackParameters> paramVector;
   std::vector<std::vector<const Tracker::FaserSCT_Cluster*>> clusterVector;
   int n_protoTracks = std::min((int)protoTracks.size(), 2);
   for (int i = 0; i < n_protoTracks; ++i) {
@@ -101,7 +101,7 @@ StatusCode MultiTrackFinderTool::run() {
   m_sourceLinks = std::make_shared<std::vector<std::vector<IndexSourceLink>>>(sourceLinkVector);
   m_measurements = std::make_shared<std::vector<std::vector<Measurement>>>(measurementVector);
   m_idLinks = std::make_shared<std::vector<std::map<Index, Identifier>>>(idLinkVector);
-  m_initialTrackParameters = std::make_shared<std::vector<Acts::CurvilinearTrackParameters>>(paramVector);
+  m_initialTrackParameters = std::make_shared<std::vector<Acts::BoundTrackParameters>>(paramVector);
   m_clusters = std::make_shared<std::vector<std::vector<const Tracker::FaserSCT_Cluster*>>>(clusterVector);
 
   // create initial surface
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/MultiTrackFinderTool.h b/Tracking/Acts/FaserActsKalmanFilter/src/MultiTrackFinderTool.h
index 988c50bdf880ababa5cc22bb77552a625f5c6a15..1799c6c0d82d47493393d3b1bc67e095a14f872d 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/MultiTrackFinderTool.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/MultiTrackFinderTool.h
@@ -31,7 +31,7 @@ public:
   virtual StatusCode finalize() override;
   virtual StatusCode run() override;
 
-  virtual const std::shared_ptr<std::vector<Acts::CurvilinearTrackParameters>> initialTrackParameters() const override;
+  virtual const std::shared_ptr<std::vector<Acts::BoundTrackParameters>> initialTrackParameters() const override;
   virtual const std::shared_ptr<const Acts::Surface> initialSurface() const override;
   virtual const std::shared_ptr<std::vector<std::vector<IndexSourceLink>>> sourceLinks() const override;
   virtual const std::shared_ptr<std::vector<IdentifierLink>> idLinks() const override;
@@ -69,7 +69,7 @@ public:
                const MultiTrackFinderTool::Tracklet& t3)
         : m_t1(t1), m_t2(t2), m_t3(t3) {}
 
-    Acts::CurvilinearTrackParameters initialTrackParameters(
+    Acts::BoundTrackParameters initialTrackParameters(
         double covLoc0, double covLoc1, double covPhi, double covTheta, double covQOverP, double covTime) const {
       Acts::Vector3 dir = m_t2.position() - m_t1.position();
       Acts::Vector3 pos = m_t1.position() - m_t1.position().z()/dir.z() * dir;
@@ -84,14 +84,14 @@ public:
       cov(Acts::eBoundQOverP, Acts::eBoundQOverP) = covQOverP;
       cov(Acts::eBoundTime, Acts::eBoundTime) = covTime;
 
-      Acts::CurvilinearTrackParameters params =
-          Acts::CurvilinearTrackParameters(pos4, dir, abs_momentum, charge, cov);
+      Acts::BoundTrackParameters params =
+          Acts::BoundTrackParameters(pos4, dir, abs_momentum, charge, cov);
       return params;
     }
 
      std::tuple<std::vector<Measurement>, std::vector<IndexSourceLink>, std::map<Index, Identifier>, std::vector<const Tracker::FaserSCT_Cluster*>> run() const {
        const int kSize = 1;
-       using ThisMeasurement = Acts::Measurement<IndexSourceLink, Acts::BoundIndices, kSize>;
+       using ThisMeasurement = Acts::Measurement<Acts::BoundIndices, kSize>;
        std::array<Acts::BoundIndices, kSize> Indices = {Acts::eBoundLoc0};
        std::vector<IndexSourceLink> sourceLinks;
        std::map<Index, Identifier> idLinks;
@@ -112,7 +112,8 @@ public:
            IndexSourceLink sourceLink(geoIds[i], measurements.size());
            Eigen::Matrix<double, 1, 1> clusterPos {positions[i]};
            Eigen::Matrix<double, 1, 1> clusterCov {0.04 * 0.04,};
-           ThisMeasurement meas(sourceLink, Indices, clusterPos, clusterCov);
+           Acts::SourceLink sl{sourceLink};
+           ThisMeasurement meas(std::move(sl), Indices, clusterPos, clusterCov);
            sourceLinks.push_back(sourceLink);
            measurements.emplace_back(std::move(meas));
          }
@@ -169,7 +170,7 @@ public:
   };
 
 private:
-  std::shared_ptr<std::vector<Acts::CurvilinearTrackParameters>> m_initialTrackParameters;
+  std::shared_ptr<std::vector<Acts::BoundTrackParameters>> m_initialTrackParameters;
   std::shared_ptr<const Acts::Surface> m_initialSurface;
   std::shared_ptr<std::vector<std::vector<IndexSourceLink>>> m_sourceLinks {};
   std::shared_ptr<std::vector<IdentifierLink>> m_idLinks {};
@@ -194,7 +195,7 @@ private:
   Gaudi::Property<double> m_covTime {this, "covTime", 1};
 };
 
-inline const std::shared_ptr<std::vector<Acts::CurvilinearTrackParameters>>
+inline const std::shared_ptr<std::vector<Acts::BoundTrackParameters>>
 MultiTrackFinderTool::initialTrackParameters() const {
   return m_initialTrackParameters;
 }
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/TrackClassification.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/TrackClassification.cxx
index ed9682702a71145f9a4772cb7e49bda33ee8e8e0..832b14fb2406aa0b8aab294d63664b7143add80e 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/TrackClassification.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/TrackClassification.cxx
@@ -1,5 +1,7 @@
 #include "TrackerPrepRawData/FaserSCT_Cluster.h"
 #include "TrackClassification.h"
+#include "FaserActsTrack.h"
+#include "FaserActsKalmanFilter/IndexSourceLink.h"
 
 namespace {
 
@@ -32,36 +34,33 @@ inline void sortHitCount(std::vector<ParticleHitCount> &particleHitCounts) {
 /// Identify all particles that contribute to a trajectory.
 void identifyContributingParticles(
     const TrackerSimDataCollection& simDataCollection,
-    const FaserActsRecMultiTrajectory& trajectories, size_t tip,
+    const FaserActsConstTrackContainer::ConstTrackProxy& track,
     std::vector<ParticleHitCount>& particleHitCounts) {
   particleHitCounts.clear();
 
-  if (not trajectories.hasTrajectory(tip)) {
-    return;
-  }
-
-  trajectories.multiTrajectory().visitBackwards(tip, [&](const auto& state) {
-    // no truth info with non-measurement state
+  for (const auto& state : track.trackStatesReversed()) {   
+  // no truth info with non-measurement state
     if (not state.typeFlags().test(Acts::TrackStateFlag::MeasurementFlag)) {
-      return true;
+      continue;
     }
     std::vector<int> barcodes {};
     // register all particles that generated this hit
-    for (const Identifier &id : state.uncalibrated().hit()->rdoList()) {
+    IndexSourceLink sl =
+      state.getUncalibratedSourceLink().template get<IndexSourceLink>();
+    for (const Identifier &id : sl.hit()->rdoList()) {
       if (simDataCollection.count(id) == 0) {
-        return true;
+        continue; //@todo:is this correct?
       }
       const auto &deposits = simDataCollection.find(id)->second.getdeposits();
       for (const TrackerSimData::Deposit &deposit : deposits) {
-        int barcode = deposit.first->barcode();
+        int barcode = deposit.first->id();
         if (std::find(barcodes.begin(), barcodes.end(), barcode) == barcodes.end()) {
           barcodes.push_back(barcode);
-          increaseHitCount(particleHitCounts, deposit.first->barcode());
+          increaseHitCount(particleHitCounts, deposit.first->id());
         }
       }
     }
-    return true;
-  });
+  }
   sortHitCount(particleHitCounts);
 }
 
@@ -80,10 +79,10 @@ void identifyContributingParticles(
       if (simDataCollection.count(id) == 0) continue;
       const auto &deposits = simDataCollection.find(id)->second.getdeposits();
       for (const TrackerSimData::Deposit &deposit : deposits) {
-        int barcode = deposit.first->barcode();
+        int barcode = deposit.first->id();
         if (std::find(barcodes.begin(), barcodes.end(), barcode) == barcodes.end()) {
           barcodes.push_back(barcode);
-          increaseHitCount(particleHitCounts, deposit.first->barcode());
+          increaseHitCount(particleHitCounts, deposit.first->id());
         }
       }
     }
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/TrackClassification.h b/Tracking/Acts/FaserActsKalmanFilter/src/TrackClassification.h
index da59b9badded276e508d5c57ccca6636ebf607e9..3836e5646882ac5a5f04abec7507b95fe0cd5728 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/TrackClassification.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/TrackClassification.h
@@ -1,8 +1,9 @@
 #ifndef FASERACTSKALMANFILTER_TRACKCLASSIFICATION_H
 #define FASERACTSKALMANFILTER_TRACKCLASSIFICATION_H
 
-#include "FaserActsRecMultiTrajectory.h"
+#include "FaserActsTrack.h"
 #include "TrackerSimData/TrackerSimDataCollection.h"
+#include "TrackerRIO_OnTrack/FaserSCT_ClusterOnTrack.h"
 
 struct ParticleHitCount {
   int particleId;
@@ -12,7 +13,7 @@ struct ParticleHitCount {
 /// Identify all particles that contribute to a trajectory.
 void identifyContributingParticles(
     const TrackerSimDataCollection& simDataCollection,
-    const FaserActsRecMultiTrajectory& trajectories, size_t tip,
+    const FaserActsConstTrackContainer::ConstTrackProxy& track, 
     std::vector<ParticleHitCount>& particleHitCounts);
 
 void identifyContributingParticles(
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/TrackSelection.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/TrackSelection.cxx
index b06019cf06fa2caae6816657233b213d9f9dd07f..016e170e50ccb7b17c3b58cdeb573ba14c6ee1d4 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/TrackSelection.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/TrackSelection.cxx
@@ -17,26 +17,26 @@ inline void sortTracks(std::vector<TrackQuality>& tracks) {
 }  // namespace
 
 
-void selectTracks(TrackFinderResult& results, std::vector<TrackQuality>& trackQuality) {
-  for (auto& result : results) {
-    if (not result.ok()) {
-      continue;
-    }
-    auto& ckfResult = result.value();
-    auto traj = FaserActsRecMultiTrajectory(ckfResult.fittedStates, ckfResult.lastMeasurementIndices, ckfResult.fittedParameters);
-    const auto& mj = traj.multiTrajectory();
-    const auto& trackTips = traj.tips();
-    auto it = std::max_element(trackTips.begin(), trackTips.end(),
-                               [&](const size_t& lhs, const size_t& rhs) {
-                                 auto trajState_lhs = Acts::MultiTrajectoryHelpers::trajectoryState(mj, lhs);
-                                 auto trajState_rhs = Acts::MultiTrajectoryHelpers::trajectoryState(mj, rhs);
-                                 if (trajState_lhs.nMeasurements != trajState_rhs.nMeasurements) {
-                                   return trajState_lhs.nMeasurements > trajState_rhs.nMeasurements;
-                                 }
-                                 return trajState_lhs.chi2Sum < trajState_rhs.chi2Sum;
-                               });
-    auto trajState = Acts::MultiTrajectoryHelpers::trajectoryState(mj, *it);
-    trackQuality.push_back({ckfResult, trajState.nMeasurements, trajState.chi2Sum});
+void selectTracks(FaserActsTrackContainer& tracks, std::vector<TrackQuality>& trackQuality) {
+  for (const auto& track : tracks) {
+          
+    
+    //auto& ckfResult = result.value();
+    //
+    //auto traj = FaserActsRecMultiTrajectory(ckfResult.fittedStates, ckfResult.lastMeasurementIndices, ckfResult.fittedParameters);
+    //const auto& mj = traj.multiTrajectory();
+    //const auto& trackTips = traj.tips();
+    //auto it = std::max_element(trackTips.begin(), trackTips.end(),
+    //                           [&](const size_t& lhs, const size_t& rhs) {
+    //                             auto trajState_lhs = Acts::MultiTrajectoryHelpers::trajectoryState(mj, lhs);
+    //                             auto trajState_rhs = Acts::MultiTrajectoryHelpers::trajectoryState(mj, rhs);
+    //                             if (trajState_lhs.nMeasurements != trajState_rhs.nMeasurements) {
+    //                               return trajState_lhs.nMeasurements > trajState_rhs.nMeasurements;
+    //                             }
+    //                             return trajState_lhs.chi2Sum < trajState_rhs.chi2Sum;
+    //                           });
+    //auto trajState = Acts::MultiTrajectoryHelpers::trajectoryState(mj, *it);
+    trackQuality.push_back({track, track.nMeasurements(), track.chi2()});
   }
   sortTracks(trackQuality);
 }
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/TrackSelection.h b/Tracking/Acts/FaserActsKalmanFilter/src/TrackSelection.h
index aeebd0ff1c0de3ce997e59578726609bdbbb02b7..23066c09dacce69bc4d3651f7d663db3f56b8673 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/TrackSelection.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/TrackSelection.h
@@ -1,20 +1,26 @@
 #ifndef FASERACTSKALMANFILTER_TRACKSELECTION_H
 #define FASERACTSKALMANFILTER_TRACKSELECTION_H
 
-#include "FaserActsRecMultiTrajectory.h"
+#include "FaserActsTrack.h"
 #include "TrackerSimData/TrackerSimDataCollection.h"
 #include "Acts/TrackFinding/CombinatorialKalmanFilter.hpp"
+#include "Acts/EventData/TrackContainer.hpp"
+#include "Acts/EventData/TrackProxy.hpp"
+#include "Acts/EventData/VectorTrackContainer.hpp"
+#include "Acts/EventData/VectorMultiTrajectory.hpp"
 
-using TrackFitterResult =
-Acts::Result<Acts::CombinatorialKalmanFilterResult<IndexSourceLink>>;
-using TrackFinderResult = std::vector<TrackFitterResult>;
 
+//using TrackFitterResult =
+//Acts::Result<Acts::CombinatorialKalmanFilterResult<IndexSourceLink>>;
+
+
+//@todo: make this constTrackContainer
 struct TrackQuality {
-  Acts::CombinatorialKalmanFilterResult<IndexSourceLink> track;
+  FaserActsTrackContainer::TrackProxy track; 
   size_t nMeasurements;
   double chi2;
 };
 
-void selectTracks(TrackFinderResult& results, std::vector<TrackQuality>& trackQuality);
+void selectTracks(FaserActsTrackContainer& tracks, std::vector<TrackQuality>& trackQuality);
 
 #endif  // FASERACTSKALMANFILTER_TRACKSELECTION_H
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/TruthTrackFinderTool.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/TruthTrackFinderTool.cxx
index 672be6fa934ead4725a43d81bc2f5e156612449e..bc14199c01e8b187c8fd114db935eb04680bd5e1 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/TruthTrackFinderTool.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/TruthTrackFinderTool.cxx
@@ -43,7 +43,7 @@ StatusCode TruthTrackFinderTool::run() {
   const int kSize = 2;
   using ParametersVector = Acts::ActsVector<kSize>;
   using CovarianceMatrix = Acts::ActsSymMatrix<kSize>;
-  using ThisMeasurement = Acts::Measurement<IndexSourceLink, Acts::BoundIndices, kSize>;
+  using ThisMeasurement = Acts::Measurement<Acts::BoundIndices, kSize>;
   std::array<Acts::BoundIndices, kSize> myIndices = {Acts::eBoundLoc0, Acts::eBoundLoc1};
 
   std::vector<IndexSourceLink> sourcelinks;
@@ -127,7 +127,8 @@ StatusCode TruthTrackFinderTool::run() {
 
       IndexSourceLink sourceLink(geoId, measurements.size());
       sourcelinks.emplace_back(sourceLink);
-      ThisMeasurement meas(sourceLink, myIndices, par, cov);
+      Acts::SourceLink sl{sourceLink};
+      ThisMeasurement meas(std::move(sl), myIndices, par, cov);
       measurements.emplace_back(std::move(meas));
 
       // create initial parameters from hit in first layer
@@ -163,8 +164,18 @@ StatusCode TruthTrackFinderTool::run() {
         cov(Acts::eBoundQOverP, Acts::eBoundQOverP) = m_covQOverP;
         cov(Acts::eBoundTime, Acts::eBoundTime) = m_covTime;
 
-        // auto initialParameters = Acts::BoundTrackParameters(surface->getSharedPtr(), params, charge, cov);
-        auto initialParameters = Acts::CurvilinearTrackParameters(smearedPosition4, smearedDirection, smearedAbsoluteMomentum, charge, cov);
+        const auto surface = Acts::Surface::makeShared<Acts::PlaneSurface>(
+          Acts::Vector3 {0, 0, smearedPosition.z()}, Acts::Vector3{0, 0, -1});
+        Acts::BoundVector params = Acts::BoundVector::Zero();
+        params[Acts::eBoundLoc0] = smearedPosition.x();
+        params[Acts::eBoundLoc1] = smearedPosition.y();
+        params[Acts::eBoundPhi] = Acts::VectorHelpers::phi(smearedDirection.normalized());
+        params[Acts::eBoundTheta] = Acts::VectorHelpers::theta(smearedDirection.normalized());
+        params[Acts::eBoundQOverP] = charge/smearedAbsoluteMomentum;
+        params[Acts::eBoundTime] = 0;
+      
+        //@todo: make the particle hypothesis configurable
+        auto initialParameters = Acts::BoundTrackParameters(surface, params, cov, Acts::ParticleHypothesis::muon());
 
         // write out
         double initialCharge = initialParameters.charge();
@@ -175,7 +186,7 @@ StatusCode TruthTrackFinderTool::run() {
         ATH_MSG_DEBUG("initial absolute momentum: " << initialAbsoluteMomentum);
         ATH_MSG_DEBUG("initial position: x=" << initialPosition.x() << ", y=" << initialPosition.y() << ", z=" << initialPosition.z());
         ATH_MSG_DEBUG("initial momentum: x=" << initialMomentum.x() << ", y=" << initialMomentum.y() << ", z=" << initialMomentum.z());
-        m_initialTrackParameters = std::make_shared<const Acts::CurvilinearTrackParameters>(initialParameters);
+        m_initialTrackParameters = std::make_shared<const Acts::BoundTrackParameters>(initialParameters);
       }
     }
   }
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/TruthTrackFinderTool.h b/Tracking/Acts/FaserActsKalmanFilter/src/TruthTrackFinderTool.h
index 37ac68be771dc60cafd45ccfd6af38723f59470b..02e5ebef15ab213dc806f342d78b3d39bee71b2b 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/TruthTrackFinderTool.h
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/TruthTrackFinderTool.h
@@ -29,7 +29,7 @@ public:
   virtual StatusCode finalize() override;
   virtual StatusCode run() override;
 
-  virtual const std::shared_ptr<const Acts::CurvilinearTrackParameters> initialTrackParameters() const override {
+  virtual const std::shared_ptr<const Acts::BoundTrackParameters> initialTrackParameters() const override {
     return m_initialTrackParameters;
   }
 
@@ -50,7 +50,7 @@ public:
   virtual const std::shared_ptr<std::vector<Tracker::FaserSCT_SpacePoint>> spacePoints() const override;
 
 private:
-  std::shared_ptr<const Acts::CurvilinearTrackParameters> m_initialTrackParameters;
+  std::shared_ptr<const Acts::BoundTrackParameters> m_initialTrackParameters;
   std::shared_ptr<const Acts::Surface> m_initialSurface;
   std::shared_ptr<std::vector<IndexSourceLink>> m_sourceLinks {};
   std::shared_ptr<IdentifierLink> m_idLinks {};