From 475cf359cebf6d02f5c6980066e39fad576b8c0c Mon Sep 17 00:00:00 2001
From: Dominik Smith <smith@th.physik.uni-frankfurt.de>
Date: Tue, 20 Apr 2021 15:46:01 +0200
Subject: [PATCH] CbmAlgoBuildRawEvents: Use bool flag instead of negative TS
 time values to trigger reading of TS meta data from file.

---
 reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx | 4 ++--
 reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h   | 8 +++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
index 7fbec9be04..c08de068c7 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
@@ -69,7 +69,7 @@ Bool_t CbmAlgoBuildRawEvents::InitAlgo()
   }
 
   /// Access the TS metadata to know TS start time if needed
-  if (fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0) {
+  if (fbUseTsMetaData) {
     if (!fTimeSliceMetaDataArray) {
       LOG(fatal) << "No TS metadata input found"
                  << " => Please check in the unpacking macro if the following line was "
@@ -167,7 +167,7 @@ void CbmAlgoBuildRawEvents::InitSeedWindow()
   Double_t dOverlapStart = fdTsStartTime + fdTsLength;
   Double_t dOverlapSize  = fdTsOverLength;
 
-  if (fdTsStartTime < 0 || fdTsLength < 0 || fdTsOverLength < 0) {
+  if (fbUseTsMetaData) {
     const TimesliceMetaData* pTsMetaData = dynamic_cast<TimesliceMetaData*>(fTimeSliceMetaDataArray->At(0));
     if (nullptr == pTsMetaData)
       LOG(fatal) << Form("CbmAlgoBuildRawEvents::LoopOnSeeds => "
diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
index 13730e12ae..f56105fe21 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
@@ -151,9 +151,10 @@ public:
 
   void SetTsParameters(Double_t dTsStartTime, Double_t dTsLength, Double_t dTsOverLength)
   {
-    fdTsStartTime  = dTsStartTime;
-    fdTsLength     = dTsLength;
-    fdTsOverLength = dTsOverLength;
+    fdTsStartTime   = dTsStartTime;
+    fdTsLength      = dTsLength;
+    fdTsOverLength  = dTsOverLength;
+    fbUseTsMetaData = kFALSE;
   }
 
   void SetSeedTimeWindow(Double_t timeWinBeg, Double_t timeWinEnd)
@@ -248,6 +249,7 @@ private:
   Bool_t fbFillHistos {kTRUE};            //! Switch ON/OFF filling of histograms
   Bool_t fbUseMuchBeamtimeDigi = kTRUE;   //! Switch between MUCH digi classes
   Bool_t fbGetTimings          = kFALSE;  //! Measure CPU time using stopwatch
+  Bool_t fbUseTsMetaData       = kTRUE;   //! Read Ts Parameters from input tree
     /// Event building mode and detectors selection
   EOverlapModeRaw fOverMode {EOverlapModeRaw::AllowOverlap};
 
-- 
GitLab