From 08f8368d09543765ef258bc970fe4c2117160a61 Mon Sep 17 00:00:00 2001
From: P-A Loizeau <p.-a.loizeau@gsi.de>
Date: Mon, 14 Nov 2022 15:27:20 +0100
Subject: [PATCH] Convert TOF reco classes to TZD digi as T0 storage (instead
 of TOF)

---
 reco/detectors/tof/CbmTofEventClusterizer.cxx | 10 +++++-----
 reco/detectors/tof/CbmTofEventClusterizer.h   |  1 -
 reco/detectors/tof/CbmTofHitMaker.cxx         | 10 +++++-----
 reco/detectors/tof/CbmTofHitMaker.h           |  1 -
 4 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/reco/detectors/tof/CbmTofEventClusterizer.cxx b/reco/detectors/tof/CbmTofEventClusterizer.cxx
index 22b3f682d0..22cab5bf42 100644
--- a/reco/detectors/tof/CbmTofEventClusterizer.cxx
+++ b/reco/detectors/tof/CbmTofEventClusterizer.cxx
@@ -31,6 +31,7 @@
 #include "CbmTofGeoHandler.h"       // in tof/TofTools
 #include "CbmTofHit.h"              // in cbmdata/tof
 #include "CbmTofPoint.h"            // in cbmdata/tof
+#include "CbmTzdDigi.h"             // in cbmdata/global
 #include "CbmVertex.h"
 
 #include "TTrbHeader.h"
@@ -392,13 +393,13 @@ void CbmTofEventClusterizer::Exec(Option_t* option)
 
       for (Int_t iDigi = 0; iDigi < tEvent->GetNofData(ECbmDataType::kT0Digi); iDigi++) {
         Int_t iDigiIndex       = static_cast<Int_t>(tEvent->GetIndex(ECbmDataType::kT0Digi, iDigi));
-        CbmTofDigi tDigi       = fT0DigiVec->at(iDigiIndex);
+        CbmTofDigi tDigi(fDigiMan->Get<CbmTzdDigi>(iDigiIndex));
         if (tDigi.GetType() != 5)
           LOG(fatal) << "Wrong T0 type " << tDigi.GetType() << ", Addr 0x" << std::hex << tDigi.GetAddress();
         if (tDigi.GetSide() == 1) {  // HACK for May22 setup
           tDigi.SetAddress(tDigi.GetSm(), tDigi.GetRpc(), tDigi.GetChannel() + 6, 0, tDigi.GetType());
         }
-        fTofDigiVec.push_back(CbmTofDigi(tDigi));
+        fTofDigiVec.push_back(tDigi);
       }
       for (Int_t iDigi = 0; iDigi < tEvent->GetNofData(ECbmDataType::kTofDigi); iDigi++) {
         Int_t iDigiIndex        = static_cast<Int_t>(tEvent->GetIndex(ECbmDataType::kTofDigi, iDigi));
@@ -582,10 +583,9 @@ Bool_t CbmTofEventClusterizer::RegisterInputs()
     LOG(error) << GetName() << ": No Tof digi input!";
     return kFALSE;
   }
-  if (fDigiMan->IsPresent(ECbmModuleId::kT0)) { LOG(info) << GetName() << ": separate T0 digi input!"; }
+  if (fDigiMan->IsPresent(ECbmModuleId::kT0)) { LOG(info) << GetName() << ": found separate T0 digi input!"; }
   else {
-    fT0DigiVec = fManager->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-    if (!fT0DigiVec) { LOG(info) << "No T0 digi input vector found."; }
+    LOG(info) << "No separate T0 digi input found.";
   }  // if( ! fT0DigiVec )
 
   fTrbHeader = (TTrbHeader*) fManager->GetObject("TofTrbHeader.");
diff --git a/reco/detectors/tof/CbmTofEventClusterizer.h b/reco/detectors/tof/CbmTofEventClusterizer.h
index fb32c43542..85e01933ab 100644
--- a/reco/detectors/tof/CbmTofEventClusterizer.h
+++ b/reco/detectors/tof/CbmTofEventClusterizer.h
@@ -253,7 +253,6 @@ private:
   const std::vector<CbmMatch>* fTofDigiPointMatches = nullptr;  // TOF MC point matches
   //TClonesArray          * fTofDigisColl;     // TOF Digis
   std::vector<CbmTofDigi> fTofDigiVec {};               //! TOF Digis
-  const std::vector<CbmTofDigi>* fT0DigiVec = nullptr;  //! T0 Digis
   CbmDigiManager* fDigiMan;                             // TOF Input Digis
   TClonesArray* fEventsColl;                            // CBMEvents (time based)
 
diff --git a/reco/detectors/tof/CbmTofHitMaker.cxx b/reco/detectors/tof/CbmTofHitMaker.cxx
index d371377482..57c7929388 100644
--- a/reco/detectors/tof/CbmTofHitMaker.cxx
+++ b/reco/detectors/tof/CbmTofHitMaker.cxx
@@ -31,6 +31,7 @@
 #include "CbmTofGeoHandler.h"       // in tof/TofTools
 #include "CbmTofHit.h"              // in cbmdata/tof
 #include "CbmTofPoint.h"            // in cbmdata/tof
+#include "CbmTzdDigi.h"             // in cbmdata/global
 #include "CbmVertex.h"
 
 #include "TTrbHeader.h"
@@ -336,10 +337,10 @@ void CbmTofHitMaker::Exec(Option_t* option)
 
       for (Int_t iDigi = 0; iDigi < tEvent->GetNofData(ECbmDataType::kT0Digi); iDigi++) {
         Int_t iDigiIndex       = static_cast<Int_t>(tEvent->GetIndex(ECbmDataType::kT0Digi, iDigi));
-        const CbmTofDigi tDigi = fT0DigiVec->at(iDigiIndex);
+        CbmTofDigi tDigi(fDigiMan->Get<CbmTzdDigi>(iDigiIndex));
         if (tDigi.GetType() != 5)
           LOG(fatal) << "Wrong T0 type " << tDigi.GetType() << ", Addr 0x" << std::hex << tDigi.GetAddress();
-        fTofDigiVec.push_back(CbmTofDigi(tDigi));
+        fTofDigiVec.push_back(tDigi);
       }
       for (Int_t iDigi = 0; iDigi < tEvent->GetNofData(ECbmDataType::kTofDigi); iDigi++) {
         Int_t iDigiIndex        = static_cast<Int_t>(tEvent->GetIndex(ECbmDataType::kTofDigi, iDigi));
@@ -476,10 +477,9 @@ Bool_t CbmTofHitMaker::RegisterInputs()
     LOG(error) << GetName() << ": No Tof digi input!";
     return kFALSE;
   }
-  if (fDigiMan->IsPresent(ECbmModuleId::kT0)) { LOG(info) << GetName() << ": separate T0 digi input!"; }
+  if (fDigiMan->IsPresent(ECbmModuleId::kT0)) { LOG(info) << GetName() << ": found separate T0 digi input!"; }
   else {
-    fT0DigiVec = fManager->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
-    if (!fT0DigiVec) { LOG(info) << "No T0 digi input vector found."; }
+    LOG(info) << "No separate T0 digi input found.";
   }  // if( ! fT0DigiVec )
 
   fTrbHeader = (TTrbHeader*) fManager->GetObject("TofTrbHeader.");
diff --git a/reco/detectors/tof/CbmTofHitMaker.h b/reco/detectors/tof/CbmTofHitMaker.h
index f3c76a4cef..fb2fd0c84e 100644
--- a/reco/detectors/tof/CbmTofHitMaker.h
+++ b/reco/detectors/tof/CbmTofHitMaker.h
@@ -245,7 +245,6 @@ private:
   TClonesArray* fMcTracksColl;   // MC tracks
   //TClonesArray          * fTofDigisColl;     // TOF Digis
   std::vector<CbmTofDigi> fTofDigiVec {};               //! TOF Digis
-  const std::vector<CbmTofDigi>* fT0DigiVec = nullptr;  //! T0 Digis
   CbmDigiManager* fDigiMan;                             // TOF Input Digis
   TClonesArray* fEventsColl;                            // CBMEvents (time based)
 
-- 
GitLab