From 66738ef797631bd0c689843835895707b501ed93 Mon Sep 17 00:00:00 2001
From: P-A Loizeau <p.-a.loizeau@gsi.de>
Date: Mon, 31 Jan 2022 10:09:08 +0100
Subject: [PATCH] STS unpacking: make Walk correction and Asic by Asic offset
 mutually exclusive

---
 reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx     | 7 +++++--
 reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.cxx | 1 -
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx
index 52bc7a98ee..1b81a52c3d 100644
--- a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx
+++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx
@@ -507,12 +507,15 @@ void CbmStsUnpackAlgo::processHitInfo(const stsxyter::Message& mess)
 */
       const double_t tsreltime = static_cast<double_t>(ulHitTime) * stsxyter::kdClockCycleNs;
       double dTimeInNs         = tsreltime - fSystemTimeOffset;
-      if (uAsicIdx < fvdTimeOffsetNsAsics.size()) dTimeInNs -= fvdTimeOffsetNsAsics[uAsicIdx];
 
-      // Time-Walk correction
+      // Time-Walk correction or Asic-byAsic offsetting, depending on availability
       if (fbUseTimeWalkCorrection == true) {
         dTimeInNs += fWalkLookup[fviFebAddress[uFebIdx]][uChanInMod / fNrChsPerAsic][usRawAdc];
       }
+      else if (uAsicIdx < fvdTimeOffsetNsAsics.size()) {
+        dTimeInNs -= fvdTimeOffsetNsAsics[uAsicIdx];
+      }
+
 
       const uint64_t ulTimeInNs = static_cast<uint64_t>(dTimeInNs);
       const double dCalAdc      = fvdFebAdcOffs[uFebIdx] + (usRawAdc - 1) * fvdFebAdcGain[uFebIdx];
diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.cxx b/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.cxx
index e3a4308b41..2da29e371a 100644
--- a/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.cxx
+++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.cxx
@@ -25,7 +25,6 @@ std::vector<std::pair<std::string, std::shared_ptr<FairParGenericSet>>>*
 
 void CbmStsUnpackAlgoBase::SetWalkMap(const std::map<uint32_t, CbmStsParModule>& mapIn)
 {
-  auto modIt = mapIn.begin();
   for (auto& mapInEntry : mapIn) {
     const std::vector<CbmStsParAsic>& asicPars = (mapInEntry.second).GetAsicParams();
     uint32_t uNbAsics                          = asicPars.size();
-- 
GitLab