diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx index 8429661f37904bef050573fbfca046c86760d416..0e583287d1131b655a9028ccce698f2232c86e67 100644 --- a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx @@ -283,13 +283,11 @@ void CbmStsUnpackAlgo::initInternalStatus(CbmMcbm2018StsPar* parset) fvvusLastTsChan.resize(uNbStsXyters); fvvusLastAdcChan.resize(uNbStsXyters); - fvvusLastTsMsbChan.resize(uNbStsXyters); - fvvusLastTsMsbCycleChan.resize(uNbStsXyters); + fvvulLastTsMsbChan.resize(uNbStsXyters); for (uint32_t uAsicIdx = 0; uAsicIdx < uNbStsXyters; ++uAsicIdx) { fvvusLastTsChan[uAsicIdx].resize(fNrChsPerAsic, 0); fvvusLastAdcChan[uAsicIdx].resize(fNrChsPerAsic, 0); - fvvusLastTsMsbChan[uAsicIdx].resize(fNrChsPerAsic, 0); - fvvusLastTsMsbCycleChan[uAsicIdx].resize(fNrChsPerAsic, 0); + fvvulLastTsMsbChan[uAsicIdx].resize(fNrChsPerAsic, 0); } } @@ -465,7 +463,7 @@ void CbmStsUnpackAlgo::processHitInfo(const stsxyter::Message& mess) if (fbRejectDuplicateDigis) { if (usRawTs == fvvusLastTsChan[uAsicIdx][usChan] && (fbDupliWithoutAdc || usRawAdc == fvvusLastAdcChan[uAsicIdx][usChan]) - && fulTsMsbIndexInTs[fuCurrDpbIdx] == fvvusLastTsMsbChan[uAsicIdx][usChan]) { + && fulTsMsbIndexInTs[fuCurrDpbIdx] == fvvulLastTsMsbChan[uAsicIdx][usChan]) { /// FIXME: add plots to check what is done in this rejection LOG(debug) << "CbmStsUnpackAlgo::processHitInfo => " << Form("Rejecting duplicate on Asic %3d channel %3d, TS %3d, ADC %2d", uAsicIdx, usChan, usRawTs, @@ -474,8 +472,7 @@ void CbmStsUnpackAlgo::processHitInfo(const stsxyter::Message& mess) } // if same TS, (ADC,) TS MSB, TS MSB cycle, reject fvvusLastTsChan[uAsicIdx][usChan] = usRawTs; fvvusLastAdcChan[uAsicIdx][usChan] = usRawAdc; - fvvusLastTsMsbChan[uAsicIdx][usChan] = fulTsMsbIndexInTs[fuCurrDpbIdx]; - fvvusLastTsMsbCycleChan[uAsicIdx][usChan] = fvuCurrentTsMsbCycle[fuCurrDpbIdx]; + fvvulLastTsMsbChan[uAsicIdx][usChan] = fulTsMsbIndexInTs[fuCurrDpbIdx]; } // if (fbRejectDuplicateDigis) uint32_t uChanInMod = usChan + fNrChsPerAsic * (uAsicIdx % fNrAsicsPerFeb); diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.h b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.h index 132c1081489b32d6da208af6b1faf218cceb9d87..800eb454666088c3aae7cf311db0b78d60d002ff 100644 --- a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.h +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.h @@ -248,10 +248,8 @@ protected: std::vector<std::vector<uint16_t>> fvvusLastTsChan = {}; //! /** @brief ADC of last hit message for each channel, [ AsicIdx ][ Chan ] */ std::vector<std::vector<uint16_t>> fvvusLastAdcChan = {}; //! - /** @brief TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ] */ - std::vector<std::vector<uint16_t>> fvvusLastTsMsbChan = {}; //! - /** @brief TS MSB cycle of last hit message for each channel, [ AsicIdx ][ Chan ] */ - std::vector<std::vector<uint16_t>> fvvusLastTsMsbCycleChan = {}; //! + /** @brief TS MSB in TS of last hit message for each channel, [ AsicIdx ][ Chan ] */ + std::vector<std::vector<uint64_t>> fvvulLastTsMsbChan = {}; //! /** @brief Time of first valid hit (TS_MSB available), used as reference for evolution plots @todo move this to the monitor the algo does not need it!*/ double fdStartTime = 0; diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.cxx b/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.cxx index 1b0b195b11390c97397bd9c73731a7a4a30fa082..4b903078da2c1a62d246cbb550571c992c896f49 100644 --- a/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.cxx +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.cxx @@ -52,7 +52,7 @@ CbmStsUnpackAlgoLegacy::CbmStsUnpackAlgoLegacy() , fvmHitsInMs() , fvvusLastTsChan() , fvvusLastAdcChan() - , fvvusLastTsMsbChan() + , fvvuLastTsMsbChan() , fvvusLastTsMsbCycleChan() { } @@ -323,12 +323,12 @@ void CbmStsUnpackAlgoLegacy::InitInternalStatus() fvvusLastTsChan.resize(uNbStsXyters); fvvusLastAdcChan.resize(uNbStsXyters); - fvvusLastTsMsbChan.resize(uNbStsXyters); + fvvuLastTsMsbChan.resize(uNbStsXyters); fvvusLastTsMsbCycleChan.resize(uNbStsXyters); for (uint32_t uAsicIdx = 0; uAsicIdx < uNbStsXyters; ++uAsicIdx) { fvvusLastTsChan[uAsicIdx].resize(fUnpackPar->GetNbChanPerAsic(), 0); fvvusLastAdcChan[uAsicIdx].resize(fUnpackPar->GetNbChanPerAsic(), 0); - fvvusLastTsMsbChan[uAsicIdx].resize(fUnpackPar->GetNbChanPerAsic(), 0); + fvvuLastTsMsbChan[uAsicIdx].resize(fUnpackPar->GetNbChanPerAsic(), 0); fvvusLastTsMsbCycleChan[uAsicIdx].resize(fUnpackPar->GetNbChanPerAsic(), 0); } } @@ -572,7 +572,7 @@ void CbmStsUnpackAlgoLegacy::ProcessHitInfo(const stsxyter::Message& mess) if (fbRejectDuplicateDigis) { if (usRawTs == fvvusLastTsChan[uAsicIdx][usChan] && (fbDupliWithoutAdc || usRawAdc == fvvusLastAdcChan[uAsicIdx][usChan]) - && fvulCurrentTsMsb[fuCurrDpbIdx] - fvvusLastTsMsbChan[uAsicIdx][usChan] < kuMaxTsMsbDiffDuplicates + && fvulCurrentTsMsb[fuCurrDpbIdx] - fvvuLastTsMsbChan[uAsicIdx][usChan] < kuMaxTsMsbDiffDuplicates && fvuCurrentTsMsbCycle[fuCurrDpbIdx] == fvvusLastTsMsbCycleChan[uAsicIdx][usChan]) { /// FIXME: add plots to check what is done in this rejection LOG(debug) << "CbmStsUnpackAlgoLegacy::ProcessHitInfo => " @@ -583,7 +583,7 @@ void CbmStsUnpackAlgoLegacy::ProcessHitInfo(const stsxyter::Message& mess) } // if (fbRejectDuplicateDigis) fvvusLastTsChan[uAsicIdx][usChan] = usRawTs; fvvusLastAdcChan[uAsicIdx][usChan] = usRawAdc; - fvvusLastTsMsbChan[uAsicIdx][usChan] = fvulCurrentTsMsb[fuCurrDpbIdx]; + fvvuLastTsMsbChan[uAsicIdx][usChan] = fvulCurrentTsMsb[fuCurrDpbIdx]; fvvusLastTsMsbCycleChan[uAsicIdx][usChan] = fvuCurrentTsMsbCycle[fuCurrDpbIdx]; // Compute the Full time stamp diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.h b/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.h index 09cf50f56a3761c5817c0fc78688ffa12bc3c504..b81fa7e7615ac41ddf691830ad4342a886f39859 100644 --- a/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.h +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.h @@ -139,8 +139,8 @@ private: std::vector<std::vector<uint16_t>> fvvusLastTsChan; //! TS of last hit message for each channel, [ AsicIdx ][ Chan ] std::vector<std::vector<uint16_t>> fvvusLastAdcChan; //! ADC of last hit message for each channel, [ AsicIdx ][ Chan ] - std::vector<std::vector<uint16_t>> - fvvusLastTsMsbChan; //! TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ] + std::vector<std::vector<uint32_t>> + fvvuLastTsMsbChan; //! TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ] std::vector<std::vector<uint16_t>> fvvusLastTsMsbCycleChan; //! TS MSB cycle of last hit message for each channel, [ AsicIdx ][ Chan ]