diff --git a/reco/KF/CbmTrackingDetectorInterfaceBase.h b/core/base/CbmTrackingDetectorInterfaceBase.h
similarity index 100%
rename from reco/KF/CbmTrackingDetectorInterfaceBase.h
rename to core/base/CbmTrackingDetectorInterfaceBase.h
diff --git a/core/detectors/much/CMakeLists.txt b/core/detectors/much/CMakeLists.txt
index 6b61a27980989341ddadeb134cf071c480c77f60..1382adc629125b0d36a91e4eed1de7df2239e184 100644
--- a/core/detectors/much/CMakeLists.txt
+++ b/core/detectors/much/CMakeLists.txt
@@ -5,7 +5,7 @@
 
 Set(INCLUDE_DIRECTORIES
   ${CMAKE_CURRENT_SOURCE_DIR}
-
+  ${CBMBASE_DIR}
   ${CBMDATA_DIR}
   ${CBMDATA_DIR}/much
 )
@@ -50,6 +50,8 @@ CbmMuchStation.cxx
 CbmMuchSegmentAuto.cxx
 CbmMuchSegmentManual.cxx
 CbmMuchSegmentSector.cxx
+
+CbmMuchTrackingInterface.cxx
 )
 
 set(LINKDEF CbmMuchBaseLinkDef.h)
diff --git a/core/detectors/much/CbmMuchBaseLinkDef.h b/core/detectors/much/CbmMuchBaseLinkDef.h
index 1fe749602977048a8753b191b8c41a78af4de4b0..4bf2eb23d0e18ef2e00c8ed7c4fb09b7aad5d08e 100644
--- a/core/detectors/much/CbmMuchBaseLinkDef.h
+++ b/core/detectors/much/CbmMuchBaseLinkDef.h
@@ -27,6 +27,7 @@
 #pragma link C++ class CbmMuchPadRadial + ;
 #pragma link C++ class CbmMuchPadRectangular + ;
 #pragma link C++ class CbmMuchStation + ;
+#pragma link C++ class CbmMuchTrackingInterface + ;
 
 #pragma link C++ class CbmMuchSegmentAuto + ;
 #pragma link C++ class CbmMuchSegmentManual + ;
diff --git a/reco/KF/CbmMuchTrackingInterface.cxx b/core/detectors/much/CbmMuchTrackingInterface.cxx
similarity index 54%
rename from reco/KF/CbmMuchTrackingInterface.cxx
rename to core/detectors/much/CbmMuchTrackingInterface.cxx
index ad890d5afcadffe8b5d7fd8ecf56e11c680e01cd..3aca722b249b9a89e02abda97c690409b7038405 100644
--- a/reco/KF/CbmMuchTrackingInterface.cxx
+++ b/core/detectors/much/CbmMuchTrackingInterface.cxx
@@ -11,20 +11,14 @@
 
 #include "CbmMuchTrackingInterface.h"
 
-#include "CbmMuchModuleGem.h"
-#include "CbmMuchPad.h"
-#include "CbmMuchStation.h"
 
 #include "FairDetector.h"
 #include "FairRunAna.h"
 #include <FairLogger.h>
 
-#include "TFile.h"
-#include "TMath.h"
-
 ClassImp(CbmMuchTrackingInterface)
 
-  CbmMuchTrackingInterface* CbmMuchTrackingInterface::fpInstance = nullptr;
+CbmMuchTrackingInterface* CbmMuchTrackingInterface::fpInstance = nullptr;
 
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
@@ -40,30 +34,6 @@ CbmMuchTrackingInterface::~CbmMuchTrackingInterface()
   if (fpInstance == this) { fpInstance = nullptr; }
 }
 
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetTimeResolution(int /*stationId*/) const { return 3.9; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetZ(int stationId) const { return GetMuchLayer(stationId)->GetZ(); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetXmax(int /*stationId*/) const { return 100.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetYmax(int /*stationId*/) const { return 100.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetRmin(int /*stationId*/) const { return 10.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetRmax(int /*stationId*/) const { return 100.; }
-
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
 int CbmMuchTrackingInterface::GetNtrackingStations() const
@@ -77,39 +47,6 @@ int CbmMuchTrackingInterface::GetNtrackingStations() const
   return nStations;
 }
 
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetThickness(int stationId) const { return GetMuchLayer(stationId)->GetDz(); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetRadLength(int /*stationId*/) const
-{
-  return 0;  // TODO: Replace with correct value
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetStripsSpatialRmsFront(int /*stationId*/) const { return 0.35; }
-
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMuchTrackingInterface::GetStripsSpatialRmsBack(int /*stationId*/) const { return 0.35; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-bool CbmMuchTrackingInterface::IsTimeInfoProvided(int /*stationId*/) const { return true; }
-
-
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
 InitStatus CbmMuchTrackingInterface::Init()
@@ -145,7 +82,6 @@ InitStatus CbmMuchTrackingInterface::Init()
 //
 InitStatus CbmMuchTrackingInterface::ReInit()
 {
-  LOG(info) << "\033[1;33mCALL CbmMuchTrackingInterface::ReInit()\033[0m";
   this->SetParContainers();
   return Init();
 }
diff --git a/reco/KF/CbmMuchTrackingInterface.h b/core/detectors/much/CbmMuchTrackingInterface.h
similarity index 84%
rename from reco/KF/CbmMuchTrackingInterface.h
rename to core/detectors/much/CbmMuchTrackingInterface.h
index bf2095a51c0ae7d7c2631e58b6e434cc0268f6a3..ed1658aae0b6fe859eb08819574b6eac4e6ab67e 100644
--- a/reco/KF/CbmMuchTrackingInterface.h
+++ b/core/detectors/much/CbmMuchTrackingInterface.h
@@ -14,9 +14,11 @@
 
 #include "CbmMuchGeoScheme.h"
 #include "CbmTrackingDetectorInterfaceBase.h"
-
+#include "CbmMuchModuleGem.h"
+#include "CbmMuchPad.h"
+#include "CbmMuchStation.h"
+#include "TMath.h"
 #include "FairTask.h"
-
 #include "TString.h"
 
 #include <iostream>
@@ -49,70 +51,70 @@ public:
   /// Gets actual number of tracking stations, provided by the current geometry setup
   int GetNtrackingStations() const;
 
-  /// Gets time resolution for a station
-  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Time resolution [ns]
-  double GetTimeResolution(int stationId) const;
-
-  /// Gets z component of the station position
-  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Z position of station [cm]
-  double GetZ(int stationId) const;
-
-  /// Gets max size of a station along the X-axis
+  /// Gets station radiation length
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station along the X-axis [cm]
-  double GetXmax(int stationId) const;
+  /// \return Radiation length [cm]
+  double GetRadLength(int /*stationId*/) const { return 0; } // TODO: Replace with correct value
 
-  /// Gets max size of a station along the Y-axis
+  /// Gets size of outer radius of station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station along the Y-axis [cm]
-  double GetYmax(int stationId) const;
+  /// \return Size of station outer radius [cm]
+  double GetRmax(int /*stationId*/) const { return 100.; } 
 
   /// Gets size of inner radius of station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Size of station inner radius [cm]
-  double GetRmin(int stationId) const;
+  double GetRmin(int /*stationId*/) const { return 10.; }
 
-  /// Gets size of outer radius of station
+  /// Gets spatial resolution (RMS) for back strips
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station outer radius [cm]
-  double GetRmax(int stationId) const;
+  /// \return Spatial resolution (RMS) for front strips [cm]
+  double GetStripsSpatialRmsBack(int /*stationId*/) const { return 0.35; }
 
-  /// Gets station thickness along the Z-axis
+  /// Gets spatial resolution (RMS) for front strips
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Station thickness [cm]
-  double GetThickness(int stationId) const;
+  /// \return Spatial resolution (RMS) for front strips [cm]
+  double GetStripsSpatialRmsFront(int /*stationId*/) const { return 0.35; }
 
-  /// Gets station radiation length
+  /// Gets back strips stereo angle
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Radiation length [cm]
-  double GetRadLength(int stationId) const;
+  /// \return Absolute stereo angle for back strips [rad]
+  double GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; }
 
   /// Gets front strips stereo angle
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Absolute stereo angle for front strips [rad]
-  double GetStripsStereoAngleFront(int stationId) const;
+  double GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; }
 
-  /// Gets back strips stereo angle
+  /// Gets station thickness along the Z-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Absolute stereo angle for back strips [rad]
-  double GetStripsStereoAngleBack(int stationId) const;
+  /// \return Station thickness [cm]
+  double GetThickness(int stationId) const { return GetMuchLayer(stationId)->GetDz(); };
 
-  /// Gets spatial resolution (RMS) for front strips
+  /// Gets time resolution for a station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Spatial resolution (RMS) for front strips [cm]
-  double GetStripsSpatialRmsFront(int stationId) const;
+  /// \return Time resolution [ns]
+  double GetTimeResolution(int /*stationId*/) const { return 3.9; }
 
-  /// Gets spatial resolution (RMS) for back strips
+  /// Gets max size of a station along the X-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Spatial resolution (RMS) for front strips [cm]
-  double GetStripsSpatialRmsBack(int stationId) const;
+  /// \return Size of station along the X-axis [cm]
+  double GetXmax(int /*stationId*/) const { return 100.; }
+
+  /// Gets max size of a station along the Y-axis
+  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
+  /// \return Size of station along the Y-axis [cm]
+  double GetYmax(int /*stationId*/) const { return 100.; }
+
+  /// Gets z component of the station position
+  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
+  /// \return Z position of station [cm]
+  double GetZ(int stationId) const { return GetMuchLayer(stationId)->GetZ(); }
 
   /// Check if station provides time measurements
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Flag: true - station provides time measurements, false - station does not provide time measurements
-  bool IsTimeInfoProvided(int stationId) const;
+  bool IsTimeInfoProvided(int /*stationId*/) const { return true; }
 
   /// FairTask: sets parameter containers up
   void SetParContainers();
@@ -124,12 +126,6 @@ public:
   CbmMuchTrackingInterface& operator=(CbmMuchTrackingInterface&&) = delete;
 
 private:
-  /// Calculates MuCh station ID from tracker station ID
-  __attribute__((always_inline)) int GetMuchStationId(int stationId) const { return stationId / 3; }
-
-  /// Calculates MuCh layer ID from tracker station ID
-  __attribute__((always_inline)) int GetMuchLayerId(int stationId) const { return stationId % 3; }
-
   /// Gets pointer to the TRD module
   /// \param  stationId  Tracking staton ID
   /// \return Pointer to the particular CbmTrdParModDigi object
@@ -137,6 +133,13 @@ private:
   {
     return fGeoScheme->GetLayer(GetMuchStationId(stationId), GetMuchLayerId(stationId));
   }
+  
+  /// Calculates MuCh layer ID from tracker station ID
+  __attribute__((always_inline)) int GetMuchLayerId(int stationId) const { return stationId % 3; }
+
+  /// Calculates MuCh station ID from tracker station ID
+  __attribute__((always_inline)) int GetMuchStationId(int stationId) const { return stationId / 3; }
+
 
   static CbmMuchTrackingInterface* fpInstance;  ///< Instance of the class
 
diff --git a/core/detectors/sts/CMakeLists.txt b/core/detectors/sts/CMakeLists.txt
index 9e70d4615dbc0dd2d52084367bd36786c0872d6f..99baaf2cb8439e6c73e9c90fe3e7cf19dc88468f 100644
--- a/core/detectors/sts/CMakeLists.txt
+++ b/core/detectors/sts/CMakeLists.txt
@@ -25,6 +25,7 @@ CbmStsPhysics.cxx
 CbmStsSensor.cxx
 CbmStsSetup.cxx
 CbmStsStation.cxx
+CbmStsTrackingInterface.cxx
 )
 # -----  End of sources   ---------------------------------
 
@@ -101,6 +102,7 @@ FILES CbmStsContFact.h
 	  CbmStsSensor.h
 	  CbmStsSetup.h
 	  CbmStsStation.h
+    CbmStsTrackingInterface.h
 DESTINATION include
 )
 # ---------------------------------------------------------
diff --git a/core/detectors/sts/CbmStsBaseLinkDef.h b/core/detectors/sts/CbmStsBaseLinkDef.h
index 032b1a3ce868ce882978dd83c9844ca72f58c541..d6adf33ccb7d4938eda4d45b1a51d0a25672d407 100644
--- a/core/detectors/sts/CbmStsBaseLinkDef.h
+++ b/core/detectors/sts/CbmStsBaseLinkDef.h
@@ -24,6 +24,7 @@
 #pragma link C++ class CbmStsSensor + ;
 #pragma link C++ class CbmStsSetup + ;
 #pragma link C++ class CbmStsStation + ;
+#pragma link C++ class CbmStsTrackingInterface + ;
 
 #pragma link C++ enum CbmStsELoss;
 #pragma link C++ enum CbmStsSensorClass;
diff --git a/reco/KF/CbmStsTrackingInterface.cxx b/core/detectors/sts/CbmStsTrackingInterface.cxx
similarity index 52%
rename from reco/KF/CbmStsTrackingInterface.cxx
rename to core/detectors/sts/CbmStsTrackingInterface.cxx
index bdc160f4cee3173a69b923cd8e9d9fa99e64512e..904e476f3e99c9b5bc0b69ae05b007d4b0ef4add 100644
--- a/reco/KF/CbmStsTrackingInterface.cxx
+++ b/core/detectors/sts/CbmStsTrackingInterface.cxx
@@ -11,19 +11,13 @@
 
 #include "CbmStsTrackingInterface.h"
 
-#include "CbmStsStation.h"
-
 #include "FairDetector.h"
 #include "FairRunAna.h"
 #include <FairLogger.h>
 
-#include "TMath.h"
-
-#include "L1Def.h"
-
 ClassImp(CbmStsTrackingInterface)
 
-  CbmStsTrackingInterface* CbmStsTrackingInterface::fpInstance = nullptr;
+CbmStsTrackingInterface* CbmStsTrackingInterface::fpInstance = nullptr;
 
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
@@ -39,65 +33,11 @@ CbmStsTrackingInterface::~CbmStsTrackingInterface()
   if (fpInstance == this) { fpInstance = nullptr; }
 }
 
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetTimeResolution(int /*stationId*/) const { return 5.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetZ(int stationId) const
-{
-  return CbmStsSetup::Instance()->GetStation(stationId)->GetZ();
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetXmax(int stationId) const
-{
-  return CbmStsSetup::Instance()->GetStation(stationId)->GetXmax();
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetYmax(int stationId) const
-{
-  return CbmStsSetup::Instance()->GetStation(stationId)->GetYmax();
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetRmin(int /*stationId*/) const { return 0.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetRmax(int stationId) const
-{
-  return GetXmax(stationId) > GetYmax(stationId) ? GetXmax(stationId) : GetYmax(stationId);
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-int CbmStsTrackingInterface::GetNtrackingStations() const { return CbmStsSetup::Instance()->GetNofStations(); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetThickness(int stationId) const
-{
-  return CbmStsSetup::Instance()->GetStation(stationId)->GetSensorD();
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetRadLength(int stationId) const
-{
-  return CbmStsSetup::Instance()->GetStation(stationId)->GetRadLength();
-}
-
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
 double CbmStsTrackingInterface::GetStripsStereoAngleFront(int stationId) const
 {
-  auto station = CbmStsSetup::Instance()->GetStation(stationId);
+  auto station = GetStsStation(stationId);
   return station->GetSensorRotation() + station->GetSensorStereoAngle(0) * TMath::Pi() / 180.;
 }
 
@@ -105,38 +45,14 @@ double CbmStsTrackingInterface::GetStripsStereoAngleFront(int stationId) const
 //
 double CbmStsTrackingInterface::GetStripsStereoAngleBack(int stationId) const
 {
-  auto station = CbmStsSetup::Instance()->GetStation(stationId);
+  auto station = GetStsStation(stationId);
   return station->GetSensorRotation() + station->GetSensorStereoAngle(1) * TMath::Pi() / 180.;
 }
 
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetStripsSpatialRmsFront(int stationId) const
-{
-  auto station = CbmStsSetup::Instance()->GetStation(stationId);
-  return station->GetSensorPitch(0) / TMath::Sqrt(12.);
-}
-
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmStsTrackingInterface::GetStripsSpatialRmsBack(int stationId) const
-{
-  auto station = CbmStsSetup::Instance()->GetStation(stationId);
-  return station->GetSensorPitch(0) / TMath::Sqrt(12.);
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-bool CbmStsTrackingInterface::IsTimeInfoProvided(int /*stationId*/) const { return true; }
-
-
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
 InitStatus CbmStsTrackingInterface::Init()
 {
-  LOG(info) << "\033[1;33mCALL CbmStsTrackingInterface::Init()\033[0m";
-
   // Check, if all the necessary parameter containers were found
   if (!fStsParSetModule) { return kFATAL; }
   if (!fStsParSetSensor) { return kFATAL; }
@@ -156,7 +72,6 @@ InitStatus CbmStsTrackingInterface::Init()
 //
 InitStatus CbmStsTrackingInterface::ReInit()
 {
-  LOG(info) << "\033[1;33mCALL CbmStsTrackingInterface::ReInit()\033[0m";
   this->SetParContainers();
   return Init();
 }
diff --git a/reco/KF/CbmStsTrackingInterface.h b/core/detectors/sts/CbmStsTrackingInterface.h
similarity index 76%
rename from reco/KF/CbmStsTrackingInterface.h
rename to core/detectors/sts/CbmStsTrackingInterface.h
index 095990c0933ff800d24f000cf39397c348e71bb2..789a855e4b187b0e5e7ebebf6a520540713bba71 100644
--- a/reco/KF/CbmStsTrackingInterface.h
+++ b/core/detectors/sts/CbmStsTrackingInterface.h
@@ -16,9 +16,11 @@
 #include "CbmStsParSetSensor.h"
 #include "CbmStsParSetSensorCond.h"
 #include "CbmStsSetup.h"
+#include "CbmStsStation.h"
 #include "CbmTrackingDetectorInterfaceBase.h"
 
 #include "FairTask.h"
+#include "TMath.h"
 
 #include <iostream>
 
@@ -44,72 +46,81 @@ public:
   static CbmStsTrackingInterface* Instance() { return fpInstance; }
 
   /// Gets actual number of the tracking stations, provided by the current geometry setup
-  int GetNtrackingStations() const;
-
-  /// Gets time resolution for a station
-  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Time resolution [ns]
-  double GetTimeResolution(int stationId) const;
-
-  /// Gets z component of the station position
-  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Z position of station [cm]
-  double GetZ(int stationId) const;
-
-  /// Gets max size of a station along the X-axis
+  int GetNtrackingStations() const { return CbmStsSetup::Instance()->GetNofStations(); }
+ 
+  /// Gets station radiation length
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station along the X-axis [cm]
-  double GetXmax(int stationId) const;
+  /// \return Radiation length [cm]
+  double GetRadLength(int stationId) const { return GetStsStation(stationId)->GetRadLength(); }
 
-  /// Gets max size of a station along the Y-axis
+  /// Gets size of outer radius of station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station along the Y-axis [cm]
-  double GetYmax(int stationId) const;
+  /// \return Size of station outer radius [cm]
+  double GetRmax(int stationId) const
+  { 
+    return GetXmax(stationId) > GetYmax(stationId) ? GetXmax(stationId) : GetYmax(stationId); 
+  }
 
   /// Gets size of inner radius of station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Size of station inner radius [cm]
-  double GetRmin(int stationId) const;
-
-  /// Gets size of outer radius of station
+  double GetRmin(int /*stationId*/) const { return 0.; }
+ 
+  /// Gets spatial resolution (RMS) for back strips
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station outer radius [cm]
-  double GetRmax(int stationId) const;
-
-  /// Gets station thickness along the Z-axis
+  /// \return Spatial resolution (RMS) for front strips [cm]
+  double GetStripsSpatialRmsBack(int stationId) const 
+  { 
+    return GetStsStation(stationId)->GetSensorPitch(0) / TMath::Sqrt(12.);
+  }
+  
+  /// Gets spatial resolution (RMS) for front strips
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Station thickness [cm]
-  double GetThickness(int stationId) const;
+  /// \return Spatial resolution (RMS) for front strips [cm]
+  double GetStripsSpatialRmsFront(int stationId) const
+  { 
+    return GetStsStation(stationId)->GetSensorPitch(0) / TMath::Sqrt(12.);
+  }
 
-  /// Gets station radiation length
+  /// Gets back strips stereo angle
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Radiation length [cm]
-  double GetRadLength(int stationId) const;
+  /// \return Absolute stereo angle for back strips [rad]
+  double GetStripsStereoAngleBack(int stationId) const;
 
   /// Gets front strips stereo angle
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Absolute stereo angle for front strips [rad]
-  double GetStripsStereoAngleFront(int stationId) const;
+  double GetStripsStereoAngleFront(int stationId) const; 
+ 
+  /// Gets station thickness along the Z-axis
+  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
+  /// \return Station thickness [cm]
+  double GetThickness(int stationId) const { return GetStsStation(stationId)->GetSensorD(); }
 
-  /// Gets back strips stereo angle
+  /// Gets time resolution for a station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Absolute stereo angle for back strips [rad]
-  double GetStripsStereoAngleBack(int stationId) const;
+  /// \return Time resolution [ns]
+  double GetTimeResolution(int /*stationId*/) const { return 5.; }
 
-  /// Gets spatial resolution (RMS) for front strips
+  /// Gets max size of a station along the X-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Spatial resolution (RMS) for front strips [cm]
-  double GetStripsSpatialRmsFront(int stationId) const;
+  /// \return Size of station along the X-axis [cm]
+  double GetXmax(int stationId) const { return GetStsStation(stationId)->GetXmax(); }
 
-  /// Gets spatial resolution (RMS) for back strips
+  /// Gets max size of a station along the Y-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Spatial resolution (RMS) for front strips [cm]
-  double GetStripsSpatialRmsBack(int stationId) const;
+  /// \return Size of station along the Y-axis [cm]
+  double GetYmax(int stationId) const { return GetStsStation(stationId)->GetYmax(); }
+
+  /// Gets z component of the station position
+  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
+  /// \return Z position of station [cm]
+  double GetZ(int stationId) const { return GetStsStation(stationId)->GetZ(); }
 
   /// Check if station provides time measurements
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Flag: true - station provides time measurements, false - station does not provide time measurements
-  bool IsTimeInfoProvided(int stationId) const;
+  bool IsTimeInfoProvided(int /*stationId*/) const { return true; }
 
   /// FairTask: sets parameter containers up
   void SetParContainers();
@@ -121,6 +132,14 @@ public:
   CbmStsTrackingInterface& operator=(CbmStsTrackingInterface&&) = delete;
 
 private:
+  /// Gets pointer to the STS station object
+  /// \param  stationId  Tracking staton ID
+  /// \return Pointer to the particular CbmStsStation object
+  __attribute__((always_inline)) CbmStsStation* GetStsStation(int stationId) const
+  {
+    return CbmStsSetup::Instance()->GetStation(stationId);
+  }
+
   static CbmStsTrackingInterface* fpInstance;
 
   CbmStsParSetSensor* fStsParSetSensor {nullptr};          ///<
diff --git a/core/detectors/trd/CMakeLists.txt b/core/detectors/trd/CMakeLists.txt
index dd935037423e57682ede5c6be2f8f89a443894e6..e17ffbf4637c5afe994985ee250a8ad8eda504ef 100644
--- a/core/detectors/trd/CMakeLists.txt
+++ b/core/detectors/trd/CMakeLists.txt
@@ -47,6 +47,7 @@ CbmTrdParModDigi.cxx
 CbmTrdParModGas.cxx
 CbmTrdParModGain.cxx
 CbmTrdParModGeo.cxx
+CbmTrdTrackingInterface.cxx
 #tools
 CbmTrdGeoHandler.cxx
 CbmTrdUtils.cxx
diff --git a/core/detectors/trd/CbmTrdBaseLinkDef.h b/core/detectors/trd/CbmTrdBaseLinkDef.h
index f1cb16ad5c664421bcefac4dc3cff5da5b3586b6..6e7d7174c081e5969378fc7c0c6e2d7b8d0845b5 100644
--- a/core/detectors/trd/CbmTrdBaseLinkDef.h
+++ b/core/detectors/trd/CbmTrdBaseLinkDef.h
@@ -33,6 +33,7 @@
 #pragma link C++ class CbmTrdParModGain + ;
 #pragma link C++ class CbmTrdParModGeo + ;
 #pragma link C++ class CbmTrdParModDigi + ;
+#pragma link C++ class CbmTrdTrackingInterface + ;
 //tools
 #pragma link C++ class CbmTrdGeoHandler + ;
 #pragma link C++ class CbmTrddEdxUtils + ;
diff --git a/reco/KF/CbmTrdTrackingInterface.cxx b/core/detectors/trd/CbmTrdTrackingInterface.cxx
similarity index 53%
rename from reco/KF/CbmTrdTrackingInterface.cxx
rename to core/detectors/trd/CbmTrdTrackingInterface.cxx
index db6481a37418f9c2b86a3eb498d03871db262815..71b4de4ddc43d3caad4ee6e690fdbfe1e9efe45f 100644
--- a/reco/KF/CbmTrdTrackingInterface.cxx
+++ b/core/detectors/trd/CbmTrdTrackingInterface.cxx
@@ -14,10 +14,7 @@
 #include "FairDetector.h"
 #include "FairRunAna.h"
 #include <FairLogger.h>
-
-#include "TFile.h"
 #include "TGeoManager.h"
-#include "TMath.h"
 #include "TString.h"
 
 ClassImp(CbmTrdTrackingInterface)
@@ -38,30 +35,6 @@ CbmTrdTrackingInterface::~CbmTrdTrackingInterface()
   if (fpInstance == this) { fpInstance = nullptr; }
 }
 
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetTimeResolution(int /*stationId*/) const { return 10.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetZ(int stationId) const { return GetTrdModulePar(stationId)->GetZ(); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetXmax(int stationId) const { return GetTrdModulePar(stationId)->GetSizeX(); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetYmax(int stationId) const { return GetTrdModulePar(stationId)->GetSizeY(); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetRmin(int /*stationId*/) const { return 0.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetRmax(int stationId) const { return 2. * this->GetXmax(stationId); }
-
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
 int CbmTrdTrackingInterface::GetNtrackingStations() const
@@ -82,39 +55,6 @@ int CbmTrdTrackingInterface::GetNtrackingStations() const
   return nTrdLayers;
 }
 
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetThickness(int stationId) const
-{
-  return 2. * GetTrdModulePar(stationId)->GetSizeZ();
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetRadLength(int /*stationId*/) const { return 1.6; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetStripsSpatialRmsFront(int /*stationId*/) const { return 0.15; }
-
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmTrdTrackingInterface::GetStripsSpatialRmsBack(int /*stationId*/) const { return 0.15; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-bool CbmTrdTrackingInterface::IsTimeInfoProvided(int /*stationId*/) const { return true; }
-
-
 //-------------------------------------------------------------------------------------------------------------------------------------
 //
 InitStatus CbmTrdTrackingInterface::Init()
diff --git a/reco/KF/CbmTrdTrackingInterface.h b/core/detectors/trd/CbmTrdTrackingInterface.h
similarity index 83%
rename from reco/KF/CbmTrdTrackingInterface.h
rename to core/detectors/trd/CbmTrdTrackingInterface.h
index d07a848d9aef3f8f955d9ec0fe365da9eb29de99..0799a005880225be8727cd1414963ddae85d34b5 100644
--- a/reco/KF/CbmTrdTrackingInterface.h
+++ b/core/detectors/trd/CbmTrdTrackingInterface.h
@@ -15,10 +15,8 @@
 #include "CbmTrackingDetectorInterfaceBase.h"
 #include "CbmTrdParModDigi.h"
 #include "CbmTrdParSetDigi.h"
-
 #include "FairTask.h"
-
-#include "TString.h"
+#include "TMath.h"
 
 #include <iostream>
 #include <vector>
@@ -48,70 +46,70 @@ public:
   /// Gets actual number of tracking stations, provided by the current geometry setup
   int GetNtrackingStations() const;
 
-  /// Gets time resolution for a station
+  /// Gets station radiation length
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Time resolution [ns]
-  double GetTimeResolution(int stationId) const;
+  /// \return Radiation length [cm]
+  double GetRadLength(int /*stationId*/) const { return 1.6; }
 
-  /// Gets z component of the station position
+  /// Gets size of outer radius of station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Z position of station [cm]
-  double GetZ(int stationId) const;
+  /// \return Size of station outer radius [cm]
+  double GetRmax(int stationId) const { return 2. * this->GetXmax(stationId); }
 
-  /// Gets max size of a station along the X-axis
+  /// Gets size of inner radius of station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station along the X-axis [cm]
-  double GetXmax(int stationId) const;
+  /// \return Size of station inner radius [cm]
+  double GetRmin(int /*stationId*/) const { return 0.; }
 
-  /// Gets max size of a station along the Y-axis
+  /// Gets back strips stereo angle
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station along the Y-axis [cm]
-  double GetYmax(int stationId) const;
+  /// \return Absolute stereo angle for back strips [rad]
+  double GetStripsStereoAngleBack(int /*stationId*/) const { return 0.5 * TMath::Pi(); }
 
-  /// Gets size of inner radius of station
+  /// Gets front strips stereo angle
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station inner radius [cm]
-  double GetRmin(int stationId) const;
+  /// \return Absolute stereo angle for front strips [rad]
+  double GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; }
 
-  /// Gets size of outer radius of station
+  /// Gets spatial resolution (RMS) for back strips
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station outer radius [cm]
-  double GetRmax(int stationId) const;
+  /// \return Spatial resolution (RMS) for front strips [cm]
+  double GetStripsSpatialRmsBack(int /*stationId*/) const { return 0.15; }
 
-  /// Gets station thickness along the Z-axis
+  /// Gets spatial resolution (RMS) for front strips
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Station thickness [cm]
-  double GetThickness(int stationId) const;
+  /// \return Spatial resolution (RMS) for front strips [cm]
+  double GetStripsSpatialRmsFront(int /*stationId*/) const { return 0.15; }
 
-  /// Gets station radiation length
+  /// Gets station thickness along the Z-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Radiation length [cm]
-  double GetRadLength(int stationId) const;
+  /// \return Station thickness [cm]
+  double GetThickness(int stationId) const { return 2. * GetTrdModulePar(stationId)->GetSizeZ(); }
 
-  /// Gets front strips stereo angle
+  /// Gets time resolution for a station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Absolute stereo angle for front strips [rad]
-  double GetStripsStereoAngleFront(int stationId) const;
+  /// \return Time resolution [ns]
+  double GetTimeResolution(int /*stationId*/) const { return 10.; }
 
-  /// Gets back strips stereo angle
+  /// Gets max size of a station along the X-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Absolute stereo angle for back strips [rad]
-  double GetStripsStereoAngleBack(int stationId) const;
+  /// \return Size of station along the X-axis [cm]
+  double GetXmax(int stationId) const { return GetTrdModulePar(stationId)->GetSizeX(); }
 
-  /// Gets spatial resolution (RMS) for front strips
+  /// Gets max size of a station along the Y-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Spatial resolution (RMS) for front strips [cm]
-  double GetStripsSpatialRmsFront(int stationId) const;
+  /// \return Size of station along the Y-axis [cm]
+  double GetYmax(int stationId) const { return GetTrdModulePar(stationId)->GetSizeY(); }
 
-  /// Gets spatial resolution (RMS) for back strips
+  /// Gets z component of the station position
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Spatial resolution (RMS) for front strips [cm]
-  double GetStripsSpatialRmsBack(int stationId) const;
-
+  /// \return Z position of station [cm]
+  double GetZ(int stationId) const { return GetTrdModulePar(stationId)->GetZ(); }
+ 
   /// Check if station provides time measurements
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Flag: true - station provides time measurements, false - station does not provide time measurements
-  bool IsTimeInfoProvided(int stationId) const;
+  bool IsTimeInfoProvided(int /*stationId*/) const { return true; }
 
   /// FairTask: sets parameter containers up
   void SetParContainers();
diff --git a/mvd/CMakeLists.txt b/mvd/CMakeLists.txt
index 18439a583363a5c9042cc854bec81786c7a9ad28..7199374d96c6bc041839b420350b94d69ae31b56 100644
--- a/mvd/CMakeLists.txt
+++ b/mvd/CMakeLists.txt
@@ -72,6 +72,7 @@ set(SRCS
   CbmMvdSensor.cxx
   CbmMvdDigiToHit.cxx
   CbmMvdDigiToHitTB.cxx
+  CbmMvdTrackingInterface.cxx
 
 #OLD
   CbmMvdClusterfinder.cxx
diff --git a/mvd/CbmMvdLinkDef.h b/mvd/CbmMvdLinkDef.h
index 2ad2665230a180279595f781826a86cb294b4cd7..7da6cd1484eb1493addd488138cd91598d48e0f2 100644
--- a/mvd/CbmMvdLinkDef.h
+++ b/mvd/CbmMvdLinkDef.h
@@ -57,6 +57,7 @@
 #pragma link C++ class CbmMvdReadoutSimple + ;
 #pragma link C++ class CbmMvdReadoutCluster + ;
 
+#pragma link C++ class CbmMvdTrackingInterface + ;
 
 //#pragma link C++ class MyG4UniversalFluctuationForSi+;
 //#pragma link C++ class CbmMvdFindHits+;
diff --git a/mvd/CbmMvdTrackingInterface.cxx b/mvd/CbmMvdTrackingInterface.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..50410b3c0d69158740039beae09710c11ba80e15
--- /dev/null
+++ b/mvd/CbmMvdTrackingInterface.cxx
@@ -0,0 +1,61 @@
+/* Copyright (C) 2016-2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
+   SPDX-License-Identifier: GPL-3.0-only
+   Authors: Sergey Gorbunov, Sergei Zharko [committer] */
+
+/***************************************************************************************************
+ * @file   CbmMvdTrackingInterface.cxx
+ * @brief  Input data and parameters interface from STS subsystem used in L1 tracker (definition)
+ * @since  31.05.2022
+ * @author S.Zharko <s.zharko@gsi.de>
+ ***************************************************************************************************/
+
+#include "CbmMvdTrackingInterface.h"
+
+
+#include "FairDetector.h"
+#include "FairRunAna.h"
+#include <FairLogger.h>
+
+ClassImp(CbmMvdTrackingInterface)
+
+CbmMvdTrackingInterface* CbmMvdTrackingInterface::fpInstance = nullptr;
+
+//-------------------------------------------------------------------------------------------------------------------------------------
+//
+CbmMvdTrackingInterface::CbmMvdTrackingInterface() : FairTask("CbmMvdTrackingInterface")
+{
+  if (!fpInstance) { fpInstance = this; }
+}
+
+//-------------------------------------------------------------------------------------------------------------------------------------
+//
+CbmMvdTrackingInterface::~CbmMvdTrackingInterface()
+{
+  if (fpInstance == this) { fpInstance = nullptr; }
+}
+
+//-------------------------------------------------------------------------------------------------------------------------------------
+//
+InitStatus CbmMvdTrackingInterface::Init()
+{
+  fMvdStationPar = CbmMvdDetector::Instance()->GetParameterFile();
+
+  if (!fMvdStationPar) { return kFATAL; }
+
+  return kSUCCESS;
+}
+
+//-------------------------------------------------------------------------------------------------------------------------------------
+//
+InitStatus CbmMvdTrackingInterface::ReInit()
+{
+  this->SetParContainers();
+  return Init();
+}
+
+//-------------------------------------------------------------------------------------------------------------------------------------
+//
+void CbmMvdTrackingInterface::SetParContainers() {}
+
+//-------------------------------------------------------------------------------------------------------------------------------------
+//
diff --git a/reco/KF/CbmMvdTrackingInterface.h b/mvd/CbmMvdTrackingInterface.h
similarity index 76%
rename from reco/KF/CbmMvdTrackingInterface.h
rename to mvd/CbmMvdTrackingInterface.h
index 9467b25aa4f619bcf57c90ab7c1172a8ed66207f..cf481138dc458c017f02c43adde7a6d0266758b3 100644
--- a/reco/KF/CbmMvdTrackingInterface.h
+++ b/mvd/CbmMvdTrackingInterface.h
@@ -13,16 +13,15 @@
 #define CbmMvdTrackingInterface_h 1
 
 #include "CbmTrackingDetectorInterfaceBase.h"
+#include "CbmMvdDetector.h"
+#include "CbmMvdStationPar.h"
+#include "TMath.h"
 
 #include "FairTask.h"
 
 #include <iostream>
 #include <vector>
 
-
-class CbmMvdDetector;
-class CbmMvdStationPar;
-
 /// Class CbmMvdTrackingInterface is a CbmL1 subtask, which provides necessary methods for L1 tracker
 /// to access the geometry and dataflow settings.
 ///
@@ -44,72 +43,84 @@ public:
   static CbmMvdTrackingInterface* Instance() { return fpInstance; }
 
   /// Gets actual number of tracking stations, provided by the current geometry setup
-  int GetNtrackingStations() const;
+  int GetNtrackingStations() const { return fMvdStationPar->GetStationCount(); }
 
-  /// Gets time resolution for a tracking station
-  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Time resolution [ns]
-  double GetTimeResolution(int stationId) const;
-
-  /// Gets z component of the tracking station position
-  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Z position of station [cm]
-  double GetZ(int stationId) const;
-
-  /// Gets max size of a tracking station along the X-axis
+  /// Gets the tracking station radiation length
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station along the X-axis [cm]
-  double GetXmax(int stationId) const;
+  /// \return Radiation length [cm]
+  double GetRadLength(int stationId) const 
+  { 
+    return fMvdStationPar->GetZThickness(stationId) / (10. * fMvdStationPar->GetZRadThickness(stationId)); 
+  }
 
-  /// Gets max size of a tracking station along the Y-axis
+  /// Gets size of outer radius of a tracking station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station along the Y-axis [cm]
-  double GetYmax(int stationId) const;
+  /// \return Size of station outer radius [cm]
+  double GetRmax(int stationId) const 
+  {
+    return std::max(fMvdStationPar->GetHeight(stationId), fMvdStationPar->GetWidth(stationId));
+  }
 
   /// Gets size of inner radius of a tracking station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Size of station inner radius [cm]
-  double GetRmin(int stationId) const;
+  double GetRmin(int stationId) const 
+  { 
+    return std::min(fMvdStationPar->GetBeamHeight(stationId), fMvdStationPar->GetBeamWidth(stationId)); 
+  }
 
-  /// Gets size of outer radius of a tracking station
+  /// Gets spatial resolution (RMS) for back strips
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Size of station outer radius [cm]
-  double GetRmax(int stationId) const;
+  /// \return Spatial resolution (RMS) for front strips [cm]
+  double GetStripsSpatialRmsBack(int stationId) const { return fMvdStationPar->GetYRes(stationId) / 10000.; }
 
-  /// Gets the tracking station thickness along the Z-axis
+  /// Gets spatial resolution (RMS) for front strips
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Station thickness [cm]
-  double GetThickness(int stationId) const;
+  /// \return Spatial resolution (RMS) for front strips [cm]
+  double GetStripsSpatialRmsFront(int stationId) const { return fMvdStationPar->GetXRes(stationId) / 10000.; }
 
-  /// Gets the tracking station radiation length
+  /// Gets back strips stereo angle
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Radiation length [cm]
-  double GetRadLength(int stationId) const;
+  /// \return Absolute stereo angle for back strips [rad]
+  double GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; }
 
   /// Gets front strips stereo angle
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Absolute stereo angle for front strips [rad]
-  double GetStripsStereoAngleFront(int stationId) const;
+  double GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; }
+ 
+  /// Gets the tracking station thickness along the Z-axis
+  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
+  /// \return Station thickness [cm]
+  double GetThickness(int stationId) const 
+  {
+    return fMvdStationPar->GetZThickness(stationId);
+  }
 
-  /// Gets back strips stereo angle
+  /// Gets time resolution for a tracking station
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Absolute stereo angle for back strips [rad]
-  double GetStripsStereoAngleBack(int stationId) const;
+  /// \return Time resolution [ns]
+  double GetTimeResolution(int /*stationId*/) const { return 1000.; }
 
-  /// Gets spatial resolution (RMS) for front strips
+  /// Gets max size of a tracking station along the X-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Spatial resolution (RMS) for front strips [cm]
-  double GetStripsSpatialRmsFront(int stationId) const;
+  /// \return Size of station along the X-axis [cm]
+  double GetXmax(int stationId) const { return this->GetRmax(stationId); }
 
-  /// Gets spatial resolution (RMS) for back strips
+  /// Gets max size of a tracking station along the Y-axis
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
-  /// \return Spatial resolution (RMS) for front strips [cm]
-  double GetStripsSpatialRmsBack(int stationId) const;
+  /// \return Size of station along the Y-axis [cm]
+  double GetYmax(int stationId) const { return this->GetRmax(stationId); }
+
+  /// Gets z component of the tracking station position
+  /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
+  /// \return Z position of station [cm]
+  double GetZ(int stationId) const { return fMvdStationPar->GetZPosition(stationId); }
 
   /// Check if the detector provides time measurements
   /// \param  stationId  Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
   /// \return Flag: true - station provides time measurements, false - station does not provide time measurements
-  bool IsTimeInfoProvided(int stationId) const;
+  bool IsTimeInfoProvided(int /*stationId*/) const { return false; }
 
   /// FairTask: sets parameter containers up
   void SetParContainers();
diff --git a/reco/KF/CbmMvdTrackingInterface.cxx b/reco/KF/CbmMvdTrackingInterface.cxx
deleted file mode 100644
index 0ceebb23609241170de72e48f8395e80be0dbeb3..0000000000000000000000000000000000000000
--- a/reco/KF/CbmMvdTrackingInterface.cxx
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright (C) 2016-2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
-   SPDX-License-Identifier: GPL-3.0-only
-   Authors: Sergey Gorbunov, Sergei Zharko [committer] */
-
-/***************************************************************************************************
- * @file   CbmMvdTrackingInterface.cxx
- * @brief  Input data and parameters interface from STS subsystem used in L1 tracker (definition)
- * @since  31.05.2022
- * @author S.Zharko <s.zharko@gsi.de>
- ***************************************************************************************************/
-
-#include "CbmMvdTrackingInterface.h"
-
-#include "CbmMvdDetector.h"
-#include "CbmMvdStationPar.h"
-
-#include "FairDetector.h"
-#include "FairRunAna.h"
-#include <FairLogger.h>
-
-#include "TMath.h"
-
-#include "L1Def.h"
-
-ClassImp(CbmMvdTrackingInterface)
-
-  CbmMvdTrackingInterface* CbmMvdTrackingInterface::fpInstance = nullptr;
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-CbmMvdTrackingInterface::CbmMvdTrackingInterface() : FairTask("CbmMvdTrackingInterface")
-{
-  if (!fpInstance) { fpInstance = this; }
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-CbmMvdTrackingInterface::~CbmMvdTrackingInterface()
-{
-  if (fpInstance == this) { fpInstance = nullptr; }
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetTimeResolution(int /*stationId*/) const { return 1000.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetZ(int stationId) const { return fMvdStationPar->GetZPosition(stationId); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetXmax(int stationId) const { return this->GetRmax(stationId); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetYmax(int stationId) const { return this->GetRmax(stationId); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetRmin(int stationId) const
-{
-  return std::min(fMvdStationPar->GetBeamHeight(stationId), fMvdStationPar->GetBeamWidth(stationId));
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetRmax(int stationId) const
-{
-  return std::max(fMvdStationPar->GetHeight(stationId), fMvdStationPar->GetWidth(stationId));
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-int CbmMvdTrackingInterface::GetNtrackingStations() const { return fMvdStationPar->GetStationCount(); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetThickness(int stationId) const { return fMvdStationPar->GetZThickness(stationId); }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetRadLength(int stationId) const
-{
-  // NOTE: Taken from CbmKF::Init() (S.Zharko)
-  return fMvdStationPar->GetZThickness(stationId) / (10. * fMvdStationPar->GetZRadThickness(stationId));
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; }
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetStripsSpatialRmsFront(int stationId) const
-{
-  return fMvdStationPar->GetXRes(stationId) / 10000.;
-}
-
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-double CbmMvdTrackingInterface::GetStripsSpatialRmsBack(int stationId) const
-{
-  return fMvdStationPar->GetYRes(stationId) / 10000.;
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-bool CbmMvdTrackingInterface::IsTimeInfoProvided(int /*stationId*/) const { return false; }
-
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-InitStatus CbmMvdTrackingInterface::Init()
-{
-  LOG(info) << "\033[1;33mCALL CbmMvdTrackingInterface::Init()\033[0m";
-
-  fMvdStationPar = CbmMvdDetector::Instance()->GetParameterFile();
-
-  if (!fMvdStationPar) { return kFATAL; }
-
-  return kSUCCESS;
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-InitStatus CbmMvdTrackingInterface::ReInit()
-{
-  LOG(info) << "\033[1;33mCALL CbmMvdTrackingInterface::ReInit()\033[0m";
-  this->SetParContainers();
-  return Init();
-}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
-void CbmMvdTrackingInterface::SetParContainers() {}
-
-//-------------------------------------------------------------------------------------------------------------------------------------
-//
diff --git a/reco/KF/CbmTrackingDetectorInterfaceInit.cxx b/reco/KF/CbmTrackingDetectorInterfaceInit.cxx
index 318f21885498a17cb9824f2a61f389e7ede7ce69..d6b89c08bc0c47cbe2072d46e3cad04819e724b3 100644
--- a/reco/KF/CbmTrackingDetectorInterfaceInit.cxx
+++ b/reco/KF/CbmTrackingDetectorInterfaceInit.cxx
@@ -17,7 +17,6 @@
 #include "CbmStsTrackingInterface.h"
 #include "CbmTrdTrackingInterface.h"
 
-#include "FairTask.h"
 #include <FairLogger.h>
 
 ClassImp(CbmTrackingDetectorInterfaceInit)
diff --git a/reco/KF/CbmTrackingDetectorInterfaceInit.h b/reco/KF/CbmTrackingDetectorInterfaceInit.h
index 04e5cead71f95b053d9c02d99b7476118caa3361..70431151c9d0d574c141e4b804d04696b7bc6f05 100644
--- a/reco/KF/CbmTrackingDetectorInterfaceInit.h
+++ b/reco/KF/CbmTrackingDetectorInterfaceInit.h
@@ -12,7 +12,8 @@
 #ifndef CbmTrackingDetectorInterfaceInit_h
 #define CbmTrackingDetectorInterfaceInit_h 1
 
-class FairTask;
+#include "FairTask.h"
+
 class CbmMvdTrackingInterface;
 class CbmStsTrackingInterface;
 class CbmMuchTrackingInterface;
diff --git a/reco/KF/KF.cmake b/reco/KF/KF.cmake
index a218226b8b411aa461c31267c666abd50d94a7b3..083663bc3285caaafde4c59f599b2f361b0f3f3a 100644
--- a/reco/KF/KF.cmake
+++ b/reco/KF/KF.cmake
@@ -67,10 +67,6 @@ CbmKFUMeasurement.cxx
 CbmKFVertexInterface.cxx 
 
 #### Tracker interfaces (will be moved to core/detector/*) ################
-CbmStsTrackingInterface.cxx # TMP: Should be placed to the detector directory!
-CbmMvdTrackingInterface.cxx # TMP: Should be placed to the detector directory!
-CbmMuchTrackingInterface.cxx # TMP: Should be placed to the detector directory!
-CbmTrdTrackingInterface.cxx # TMP: Should be placed to the detector directory!
 CbmTrackingDetectorInterfaceInit.cxx
 ###########################################################################
 
@@ -114,11 +110,6 @@ CbmKFUMeasurement.h
 CbmKFVertexInterface.h
 
 #### Tracker interfaces (will be moved to core/detector/*) ################
-CbmStsTrackingInterface.h # TMP: Should be placed to the detector directory!
-CbmMvdTrackingInterface.h # TMP: Should be placed to the detector directory!
-CbmMuchTrackingInterface.h # TMP: Should be placed to the detector directory!
-CbmTrdTrackingInterface.h # TMP: Should be placed to the detector directory!
-CbmTrackingDetectorInterfaceBase.h
 CbmTrackingDetectorInterfaceInit.h
 ###########################################################################
 
diff --git a/reco/KF/KFLinkDef.h b/reco/KF/KFLinkDef.h
index 7f3885f0cfaf7f3fa3fd10ef965a6f70858a5f45..ac53d37336fc8ac55b8e7ef02d18958940f932a2 100644
--- a/reco/KF/KFLinkDef.h
+++ b/reco/KF/KFLinkDef.h
@@ -38,10 +38,6 @@
 #pragma link C++ class CbmGlobalTrackFitterKF + ;
 
 #pragma link C++ class CbmTrackingDetectorInterfaceInit + ;
-#pragma link C++ class CbmMvdTrackingInterface + ;
-#pragma link C++ class CbmStsTrackingInterface + ;
-#pragma link C++ class CbmMuchTrackingInterface + ;
-#pragma link C++ class CbmTrdTrackingInterface + ;
 //KFQA
 /*
 #pragma link C++ class CbmKFPartEfficiencies + ;