diff --git a/external/InstallKFParticle.cmake b/external/InstallKFParticle.cmake
index 90776544978ee52d6f2dc5ddc37b20e85580b714..c1441c8cecb8ab7484c0264ed073d317655b12c3 100644
--- a/external/InstallKFParticle.cmake
+++ b/external/InstallKFParticle.cmake
@@ -6,7 +6,7 @@ set(KFPARTICLE_DESTDIR "${CMAKE_BINARY_DIR}/external/KFPARTICLE-prefix")
 # GIT_TAG is a hash for KFParticle tag cbm/v1.1-1 
 download_project_if_needed(PROJECT         kfparticle_source
                            GIT_REPOSITORY  ${KFPARTICLE_SRC_URL}
-                           GIT_TAG         "1eddb796b01d91ac7faf020e3b616556c28da4d0"
+                           GIT_TAG         "1e1c5dee0e2bd98a3df677beb88e497fbef92504"
                            SOURCE_DIR      ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle
                            TEST_FILE       CMakeLists.txt
                           )
diff --git a/reco/KF/CbmKF.cxx b/reco/KF/CbmKF.cxx
index 14b5a66e5706a86021a020b6798e0c8908560d0a..2d0934809543e2fb2971bc51974ea8b28c81f5d1 100644
--- a/reco/KF/CbmKF.cxx
+++ b/reco/KF/CbmKF.cxx
@@ -278,6 +278,10 @@ void CbmKF::GetTargetInfo()
   target.y = global[1];
   target.z = global[2];
 
+  fTargetXYZ[0] = target.x;
+  fTargetXYZ[1] = target.y;
+  fTargetXYZ[2] = target.z;
+
   if (fVerbose) {
     cout << "KALMAN FILTER : === READ TARGET MATERIAL ===" << endl;
     cout << " found targed \"" << targetPath << "\" at ( " << target.x << " " << target.y << " " << target.z << " ) "
@@ -310,6 +314,8 @@ void CbmKF::GetTargetInfo()
   LOG(info) << "Target info: " << target.KFInfo();
 }
 
+std::array<double, 3> CbmKF::GetTargetPosition() { return fTargetXYZ; }
+
 void CbmKF::FindTargetNode(TString& targetPath, TGeoNode*& targetNode)
 {
   if (!targetNode) {  // init at the top of the tree
diff --git a/reco/KF/CbmKF.h b/reco/KF/CbmKF.h
index c28d7b9981a8123e2bf1792c20e5376409871a33..2169aeae0a886590aed9d0f7a08952aaabdfea07 100644
--- a/reco/KF/CbmKF.h
+++ b/reco/KF/CbmKF.h
@@ -91,6 +91,8 @@ public:
 
   int GetNMvdStations() const { return CbmKF::Instance()->vMvdMaterial.size(); }
 
+  std::array<double, 3> GetTargetPosition();
+
 private:
   static CbmKF* fInstance;
 
@@ -108,8 +110,12 @@ private:
   CbmKFMaterial* ReadPassive(FairGeoNode* node);
   void GetTargetInfo();
 
+
   void FindTargetNode(TString& targetPath, TGeoNode*& targetNode);
 
+  std::array<double, 3> fTargetXYZ;
+
+
 private:
   CbmKF(const CbmKF&);
   void operator=(const CbmKF&);
diff --git a/reco/KF/CbmKFParticleFinder.cxx b/reco/KF/CbmKFParticleFinder.cxx
index 88d7ab49516ca5346e17faec2ed315d8136ab6fa..83718f4f265cbac16d41a2703c94558308ebd160 100644
--- a/reco/KF/CbmKFParticleFinder.cxx
+++ b/reco/KF/CbmKFParticleFinder.cxx
@@ -579,6 +579,9 @@ void CbmKFParticleFinder::SetSuperEventAnalysis()
   fTopoReconstructor->SetMixedEventAnalysis();
 }
 
+
+void CbmKFParticleFinder::SetTarget(const std::array<float, 3>& target) { fTopoReconstructor->SetTarget(target); }
+
 KFParticleFinder* CbmKFParticleFinder::GetKFParticleFinder() { return fTopoReconstructor->GetKFParticleFinder(); }
 void CbmKFParticleFinder::SetMaxDistanceBetweenParticlesCut(float cut)
 {
diff --git a/reco/KF/CbmKFParticleFinder.h b/reco/KF/CbmKFParticleFinder.h
index 0781b846ef682e451e49dc77f06528011c23c416..7cb22c0fe50ec61e1a471366d3ff1e6130b3c569 100644
--- a/reco/KF/CbmKFParticleFinder.h
+++ b/reco/KF/CbmKFParticleFinder.h
@@ -50,12 +50,15 @@ public:
 
   void SetPIDInformation(CbmKFParticleFinderPID* pid) { fPID = pid; }
 
+
   // set cuts
   void SetPrimaryProbCut(float prob);
 
   // Set SE analysis
   void SetSuperEventAnalysis();
 
+  void SetTarget(const std::array<float, 3>& target);
+
   //KF Particle Finder cuts
   void SetMaxDistanceBetweenParticlesCut(float cut);
   void SetLCut(float cut);