diff --git a/core/detectors/mvd/CbmMvdTrackingInterface.cxx b/core/detectors/mvd/CbmMvdTrackingInterface.cxx
index a4db0e0483c77791d52ad0e6e31f9beaeb34b11a..0dfd769c5eb9618838da6122bda7dd3324963876 100644
--- a/core/detectors/mvd/CbmMvdTrackingInterface.cxx
+++ b/core/detectors/mvd/CbmMvdTrackingInterface.cxx
@@ -12,6 +12,8 @@
 #include "CbmMvdTrackingInterface.h"
 
 #include "CbmMvdDetector.h"
+#include "CbmMvdPoint.h"
+#include "CbmMvdSensor.h"
 
 #include <Logger.h>
 
@@ -65,3 +67,17 @@ void CbmMvdTrackingInterface::SetParContainers() {}
 
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
+
+int CbmMvdTrackingInterface::GetTrackingStationIndex(const FairMCPoint* point) const
+{
+  const CbmMvdPoint* mvdPoint = [&] {
+    if constexpr (kUseDynamicCast) { return dynamic_cast<const CbmMvdPoint*>(point); }
+    else {
+      return static_cast<const CbmMvdPoint*>(point);
+    }
+  }();
+  assert(mvdPoint);
+  const CbmMvdSensor* sensor = CbmMvdDetector::Instance()->GetSensorMap()[mvdPoint->GetDetectorID()];
+  assert(sensor);
+  return sensor->GetStationNr();
+}
diff --git a/core/detectors/mvd/CbmMvdTrackingInterface.h b/core/detectors/mvd/CbmMvdTrackingInterface.h
index 17b397b97a2fe68c063c4d7b9d9f587595493d33..f3dd228342dac55293806f81a690487c29aceaf4 100644
--- a/core/detectors/mvd/CbmMvdTrackingInterface.h
+++ b/core/detectors/mvd/CbmMvdTrackingInterface.h
@@ -97,10 +97,7 @@ public:
   /// @brief  Gets a tracking station of a FairMCPoint
   /// @param  point  A pointer to FairMCHit
   /// @return Local index of the tracking station
-  int GetTrackingStationIndex(const FairMCPoint* point) const
-  {
-    return GetTrackingStationIndex(point->GetDetectorID());
-  }
+  int GetTrackingStationIndex(const FairMCPoint* point) const;
 
   /// @brief  Gets a tracking station by the address of element (detectorID in terms of MVD)
   /// @param  detectorId  Unique element address (detectorID in terms of MVD)