From 2d86a44964c3370429b2ebced633ebb9f140d7a5 Mon Sep 17 00:00:00 2001
From: Dominik Smith <d.smith@gsi.de>
Date: Thu, 10 Nov 2022 11:34:04 +0100
Subject: [PATCH] Changed event-time computation from mean of Tzd digis to
 earliest Tzd digi in CbmAlgoBuildRawEvents.

---
 .../eventbuilder/digis/CbmAlgoBuildRawEvents.cxx | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
index e93fcd43b4..29393964b7 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
@@ -613,17 +613,19 @@ Bool_t CbmAlgoBuildRawEvents::HasTrigger(CbmEvent* event)
 
 void CbmAlgoBuildRawEvents::SetTzdEventTime(CbmEvent* event)
 {
-  int32_t iNbDigis = event->GetNofData(ECbmDataType::kT0Digi);
+  const int32_t iNbDigis = event->GetNofData(ECbmDataType::kT0Digi);
 
   if (0 < iNbDigis) {
-    double eventTime = 0;
-    for (int idigi = 0; idigi < iNbDigis; ++idigi) {
-      uint idx                = event->GetIndex(ECbmDataType::kT0Digi, idigi);
-      const CbmTzdDigi* pDigi = GetDigi<CbmTzdDigi>(idx);
+    uint idx                = event->GetIndex(ECbmDataType::kT0Digi, 0);
+    const CbmTzdDigi* pDigi = GetDigi<CbmTzdDigi>(idx);
+    double eventTime        = pDigi->GetTime();
+
+    for (int idigi = 1; idigi < iNbDigis; ++idigi) {
+      idx   = event->GetIndex(ECbmDataType::kT0Digi, idigi);
+      pDigi = GetDigi<CbmTzdDigi>(idx);
       if (nullptr == pDigi) continue;
-      eventTime += pDigi->GetTime();
+      eventTime = std::min(pDigi->GetTime(), eventTime);
     }
-    eventTime /= iNbDigis;
     event->SetStartTime(eventTime);
   }
 }
-- 
GitLab