diff --git a/reco/offline/steer/CMakeLists.txt b/reco/offline/steer/CMakeLists.txt
index 5ce81a76f2f29731cc0749aa4b4433278e9e3e54..32fd4169f1e95ea9d92ffa3684ca1dbfd09387fe 100644
--- a/reco/offline/steer/CMakeLists.txt
+++ b/reco/offline/steer/CMakeLists.txt
@@ -36,6 +36,7 @@ set(PRIVATE_DEPENDENCIES
   CbmRichBase
   CbmTofBase
   CbmFsdBase
+  CbmPsdBase
   CbmMuchReco
   CbmMvdReco
   CbmRichReco
@@ -43,6 +44,7 @@ set(PRIVATE_DEPENDENCIES
   CbmTofReco
   CbmTrdReco
   CbmFsdReco
+  CbmPsdReco
   CbmSimSteer
   L1
   KF
diff --git a/reco/offline/steer/Run.cxx b/reco/offline/steer/Run.cxx
index 3ba8147ca40375476b78418a55307f8c039afcb2..4f03785afae1658dec8e0b784bb72710a6558496 100644
--- a/reco/offline/steer/Run.cxx
+++ b/reco/offline/steer/Run.cxx
@@ -106,6 +106,7 @@ namespace cbm::reco::offline
       fact.RegisterMuchReco();           // Local reconstruction in MUCH
       fact.RegisterTrdReco();            // Local reconstruction in TRD
       fact.RegisterTofReco();            // Local reconstruction in TOF
+      fact.RegisterPsdReco();            // Local reconstruction in PSD
       fact.RegisterFsdReco();            // Local reconstruction in FSD
       fact.RegisterCaTracking();         // CA track finder in STS and MVD
       fact.RegisterTrackEventBuilder();  // Event building from STS tracks
@@ -120,6 +121,7 @@ namespace cbm::reco::offline
       fact.RegisterMuchReco();          // Local reconstruction in MUCH
       fact.RegisterTrdReco();           // Local reconstruction in TRD
       fact.RegisterTofReco();           // Local reconstruction in TOF
+      fact.RegisterPsdReco();           // Local reconstruction in PSD
       fact.RegisterFsdReco();           // Local reconstruction in FSD
       fact.RegisterCaTracking();        // CA track finder in STS and MVD
       fact.RegisterPvFinder();          // Primary vertex finding
diff --git a/reco/offline/steer/TaskFactory.cxx b/reco/offline/steer/TaskFactory.cxx
index 916439d23f983e50faf7da8231c954b9ea3da383..da303cbf25b81f0549c554270f5f3bb9f058f906 100644
--- a/reco/offline/steer/TaskFactory.cxx
+++ b/reco/offline/steer/TaskFactory.cxx
@@ -22,6 +22,7 @@
 #include "CbmMvdClusterfinder.h"
 #include "CbmMvdHitfinder.h"
 #include "CbmPVFinderKF.h"
+#include "CbmPsdHitProducer.h"
 #include "CbmRecoSts.h"
 #include "CbmRecoT0.h"
 #include "CbmRichHitProducer.h"
@@ -281,6 +282,18 @@ namespace cbm::reco::offline
   // --------------------------------------------------------------------------
 
 
+  // -----   PSD reconstruction   ---------------------------------------------
+  void TaskFactory::RegisterPsdReco()
+  {
+    assert(fRun);
+    if (!fRun->IsDataPresent(ECbmModuleId::kPsd)) return;
+
+    CbmPsdHitProducer* psdHit = new CbmPsdHitProducer();
+    fRun->AddTask(psdHit);
+  }
+  // --------------------------------------------------------------------------
+
+
   // -----   FSD reconstruction   ---------------------------------------------
   void TaskFactory::RegisterFsdReco()
   {
diff --git a/reco/offline/steer/TaskFactory.h b/reco/offline/steer/TaskFactory.h
index 5d80e35b26ddf23b7b3adcbfe8c17bd7444a9e69..f598c40af9f0c5e29a5a9718f7c5e8edff728784 100644
--- a/reco/offline/steer/TaskFactory.h
+++ b/reco/offline/steer/TaskFactory.h
@@ -38,6 +38,7 @@ namespace cbm::reco::offline
     void RegisterRichReco();           /// Local reconstruction for RICH
     void RegisterStsReco();            /// Local reconstruction for STS
     void RegisterTofReco();            /// Local reconstruction for TOF
+    void RegisterPsdReco();            /// Local reconstruction for PSD
     void RegisterFsdReco();            /// Local reconstruction for FSD
     void RegisterTrackEventBuilder();  /// Event building from tracks
     void RegisterTrdReco();            /// Local reconstruction for TRD