From eec2510cda8d4a133eb9b4e7cdf6f0994f3cd227 Mon Sep 17 00:00:00 2001
From: Frederic Julian Linz <f.linz@gsi.de>
Date: Wed, 17 Apr 2024 07:47:07 +0000
Subject: [PATCH] Add PsdHitProducer to offline reconstruction

---
 reco/offline/steer/CMakeLists.txt  |  2 ++
 reco/offline/steer/Run.cxx         |  2 ++
 reco/offline/steer/TaskFactory.cxx | 13 +++++++++++++
 reco/offline/steer/TaskFactory.h   |  1 +
 4 files changed, 18 insertions(+)

diff --git a/reco/offline/steer/CMakeLists.txt b/reco/offline/steer/CMakeLists.txt
index 5ce81a76f2..32fd4169f1 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 3ba8147ca4..4f03785afa 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 916439d23f..da303cbf25 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 5d80e35b26..f598c40af9 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
-- 
GitLab