From 27ce1f590ce1d37e68f043a359ed8dacfdd59547 Mon Sep 17 00:00:00 2001
From: Dario Ramirez <googol23nphy@gmail.com>
Date: Tue, 1 Feb 2022 17:34:07 +0100
Subject: [PATCH] Bug Fix: In StsUnpackConfig, propagate walk map only if set
 by user + protect ASICs without walk

---
 reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx   | 2 +-
 reco/detectors/sts/unpack/CbmStsUnpackConfig.cxx | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx
index 1b81a52c3d..949ac2d867 100644
--- a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx
+++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx
@@ -509,7 +509,7 @@ void CbmStsUnpackAlgo::processHitInfo(const stsxyter::Message& mess)
       double dTimeInNs         = tsreltime - fSystemTimeOffset;
 
       // Time-Walk correction or Asic-byAsic offsetting, depending on availability
-      if (fbUseTimeWalkCorrection == true) {
+      if (fbUseTimeWalkCorrection == true && fWalkLookup.end() != fWalkLookup.find(fviFebAddress[uFebIdx])) {
         dTimeInNs += fWalkLookup[fviFebAddress[uFebIdx]][uChanInMod / fNrChsPerAsic][usRawAdc];
       }
       else if (uAsicIdx < fvdTimeOffsetNsAsics.size()) {
diff --git a/reco/detectors/sts/unpack/CbmStsUnpackConfig.cxx b/reco/detectors/sts/unpack/CbmStsUnpackConfig.cxx
index d8b0ad0f1b..b1d57860ef 100644
--- a/reco/detectors/sts/unpack/CbmStsUnpackConfig.cxx
+++ b/reco/detectors/sts/unpack/CbmStsUnpackConfig.cxx
@@ -37,7 +37,7 @@ void CbmStsUnpackConfig::InitAlgo()
   fAlgo->SetAsicTimeOffsetVec(fvdTimeOffsetNsAsics);
 
   // Set Time Walk Correction map
-  fAlgo->SetWalkMap(fWalkMap);
+  if (!fWalkMap.empty()) { fAlgo->SetWalkMap(fWalkMap); }
 
   // Set the flags for duplicate digis rejections
   fAlgo->SetDuplicatesRejection(fbRejectDuplicateDigis, fbDupliWithoutAdc);
-- 
GitLab