From 96aeb56f91d3463db44aa5e27a266aadbf4b8661 Mon Sep 17 00:00:00 2001
From: Dominik Smith <smith@th.physik.uni-frankfurt.de>
Date: Tue, 6 Jun 2023 13:48:03 +0200
Subject: [PATCH] Added TRD2D support in cbm::algo::EventBuilder and dependent
 classes.

---
 algo/evbuild/EventBuilder.cxx     |  4 ++++
 reco/mq/CbmDevBuildEvents.cxx     | 15 ++++++++-------
 reco/tasks/CbmTaskBuildEvents.cxx |  8 ++++++++
 reco/tasks/CbmTaskBuildEvents.h   |  2 +-
 4 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/algo/evbuild/EventBuilder.cxx b/algo/evbuild/EventBuilder.cxx
index 229c718c11..cfe2b45401 100644
--- a/algo/evbuild/EventBuilder.cxx
+++ b/algo/evbuild/EventBuilder.cxx
@@ -53,6 +53,10 @@ namespace cbm
             event.fData.fTrd.fDigis = CopyRange(ts.fData.fTrd.fDigis, tMin, tMax);
             break;
           }
+          case ECbmModuleId::kTrd2d: {
+            event.fData.fTrd2d.fDigis = CopyRange(ts.fData.fTrd2d.fDigis, tMin, tMax);
+            break;
+          }
           case ECbmModuleId::kTof: {
             event.fData.fTof.fDigis = CopyRange(ts.fData.fTof.fDigis, tMin, tMax);
             break;
diff --git a/reco/mq/CbmDevBuildEvents.cxx b/reco/mq/CbmDevBuildEvents.cxx
index 010a835406..5d336b8f8a 100644
--- a/reco/mq/CbmDevBuildEvents.cxx
+++ b/reco/mq/CbmDevBuildEvents.cxx
@@ -140,13 +140,14 @@ ECbmModuleId CbmDevBuildEvents::GetDetectorId(std::string detName)
   /// FIXME: Disable clang formatting for now as it corrupts all alignment
   /* clang-format off */
   ECbmModuleId detId = ("kT0"   == detName ? ECbmModuleId::kT0
-                       : ("kSts"  == detName ? ECbmModuleId::kSts
-                       : ("kMuch" == detName ? ECbmModuleId::kMuch
-                       : ("kTrd"  == detName ? ECbmModuleId::kTrd
-                       : ("kTof"  == detName ? ECbmModuleId::kTof
-                       : ("kRich" == detName ? ECbmModuleId::kRich
-                       : ("kPsd"  == detName ? ECbmModuleId::kPsd
-                                             : ECbmModuleId::kNotExist)))))));
+                       : ("kSts"   == detName ? ECbmModuleId::kSts
+                       : ("kMuch"  == detName ? ECbmModuleId::kMuch
+                       : ("kTrd"   == detName ? ECbmModuleId::kTrd
+                       : ("kTrd2d" == detName ? ECbmModuleId::kTrd2d
+                       : ("kTof"   == detName ? ECbmModuleId::kTof
+                       : ("kRich"  == detName ? ECbmModuleId::kRich
+                       : ("kPsd"   == detName ? ECbmModuleId::kPsd
+                                             : ECbmModuleId::kNotExist))))))));
   return detId; 
   /// FIXME: Re-enable clang formatting after formatted lines
   /* clang-format on */
diff --git a/reco/tasks/CbmTaskBuildEvents.cxx b/reco/tasks/CbmTaskBuildEvents.cxx
index d31841c63d..02c516fafe 100644
--- a/reco/tasks/CbmTaskBuildEvents.cxx
+++ b/reco/tasks/CbmTaskBuildEvents.cxx
@@ -68,6 +68,13 @@ CbmDigiTimeslice CbmTaskBuildEvents::FillTimeSlice()
         ts.fData.fTrd.fDigis = *digiVec;
         break;
       }
+      case ECbmModuleId::kTrd2d: {
+        const vector<CbmTrdDigi>* digiVec =
+          boost::any_cast<const vector<CbmTrdDigi>*>(digiBranch->GetBranchContainer());
+        assert(digiVec);
+        ts.fData.fTrd2d.fDigis = *digiVec;
+        break;
+      }
       case ECbmModuleId::kTof: {
         const vector<CbmTofDigi>* digiVec =
           boost::any_cast<const vector<CbmTofDigi>*>(digiBranch->GetBranchContainer());
@@ -221,6 +228,7 @@ size_t CbmTaskBuildEvents::GetNumDigis(const CbmDigiData& data, ECbmModuleId sys
     case ECbmModuleId::kRich: result = data.fRich.fDigis.size(); break;
     case ECbmModuleId::kMuch: result = data.fMuch.fDigis.size(); break;
     case ECbmModuleId::kTrd: result = data.fTrd.fDigis.size(); break;
+    case ECbmModuleId::kTrd2d: result = data.fTrd2d.fDigis.size(); break;
     case ECbmModuleId::kTof: result = data.fTof.fDigis.size(); break;
     case ECbmModuleId::kPsd: result = data.fPsd.fDigis.size(); break;
     case ECbmModuleId::kT0: result = data.fT0.fDigis.size(); break;
diff --git a/reco/tasks/CbmTaskBuildEvents.h b/reco/tasks/CbmTaskBuildEvents.h
index 056d3d1006..89e3b8730e 100644
--- a/reco/tasks/CbmTaskBuildEvents.h
+++ b/reco/tasks/CbmTaskBuildEvents.h
@@ -120,7 +120,7 @@ private:                                                    // members
   double fTimeSelectorEvt = 0.;
   double fTimeTot         = 0.;
 
-  ClassDef(CbmTaskBuildEvents, 1);
+  ClassDef(CbmTaskBuildEvents, 2);
 };
 
 #endif /* CBMTASKBUILDEVENTS_H */
-- 
GitLab