From a9fb81bcc59d8fb9cf5b1b51289d130511f2301d Mon Sep 17 00:00:00 2001 From: Dominik Smith <smith@th.physik.uni-frankfurt.de> Date: Tue, 20 Jun 2023 16:33:34 +0200 Subject: [PATCH] cbm::algo::UnpackSts: Fixed address mapping for walk correction. --- algo/detectors/sts/UnpackSts.cxx | 3 +-- algo/unpack/Unpack.cxx | 8 +++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/algo/detectors/sts/UnpackSts.cxx b/algo/detectors/sts/UnpackSts.cxx index bcb389c251..f7d72fa3f7 100644 --- a/algo/detectors/sts/UnpackSts.cxx +++ b/algo/detectors/sts/UnpackSts.cxx @@ -22,7 +22,6 @@ namespace cbm::algo UnpackSts::resultType UnpackSts::operator()(const uint8_t* msContent, const fles::MicrosliceDescriptor& msDescr, const uint64_t tTimeslice) { - // --- Output data resultType result = {}; @@ -127,7 +126,7 @@ namespace cbm::algo messageTime -= elinkPar.fTimeOffset; // --- Apply walk correction if applicable - if (!elinkPar.fWalk.empty()) { messageTime += elinkPar.fWalk[message.GetHitAdc() - 1]; } + if (message.GetHitAdc() <= elinkPar.fWalk.size()) { messageTime += elinkPar.fWalk[message.GetHitAdc() - 1]; } // --- Charge double charge = elinkPar.fAdcOffset + (message.GetHitAdc() - 1) * elinkPar.fAdcGain; diff --git a/algo/unpack/Unpack.cxx b/algo/unpack/Unpack.cxx index b6c9b40d79..8f2111e853 100644 --- a/algo/unpack/Unpack.cxx +++ b/algo/unpack/Unpack.cxx @@ -168,7 +168,13 @@ namespace cbm::algo elinkPar.fTimeOffset = 0.; elinkPar.fAdcOffset = 1.; elinkPar.fAdcGain = 1.; - elinkPar.fWalk = fStsConfig.WalkMap(elinkPar.fAddress, elinkPar.fAsicNr); + if (elinkPar.fAsicNr < numAsicsPerModuleSts / 2) { + elinkPar.fWalk = fStsConfig.WalkMap(elinkPar.fAddress, elinkPar.fAsicNr); + } + else { + elinkPar.fWalk = fStsConfig.WalkMap(elinkPar.fAddress, + numAsicsPerModuleSts - (elinkPar.fAsicNr - numAsicsPerModuleSts / 2) - 1); + } // TODO: Add parameters for time and ADC calibration par->fElinkParams.push_back(elinkPar); } -- GitLab