diff --git a/algo/global/Reco.cxx b/algo/global/Reco.cxx index 8fb3e2d622ac1f5c0142624fdc1bcfa99435a5b7..f40d61430a4120414dd0fcb85477a32051a4731e 100644 --- a/algo/global/Reco.cxx +++ b/algo/global/Reco.cxx @@ -167,5 +167,15 @@ void Reco::QueueUnpackerMetrics(const fles::Timeslice& ts, const UnpackMonitorDa if (!HasMonitor()) return; GetMonitor().QueueMetric("cbmreco", {{"hostname", fles::system::current_hostname()}}, - {{"bytesInSts", monitor.fNumBytesInSts}, {"bytesInTof", monitor.fNumBytesInTof}}); + { + {"unpackBytesInSts", monitor.fNumBytesInSts}, + {"unpackBytesInMuch", monitor.fNumBytesInMuch}, + {"unpackBytesInTof", monitor.fNumBytesInTof}, + {"unpackBytesInBmon", monitor.fNumBytesInBmon}, + {"unpackBytesInTrd", monitor.fNumBytesInTrd}, + {"unpackBytesInTrd2d", monitor.fNumBytesInTrd2d}, + {"unpackBytesInRich", monitor.fNumBytesInRich}, + {"unpackNumErrInvalidEqId", monitor.fNumErrInvalidEqId}, + {"unpackNumErrInvalidSysVer", monitor.fNumErrInvalidSysVer}, + }); } diff --git a/algo/unpack/Unpack.cxx b/algo/unpack/Unpack.cxx index f8fbe902a5ad521369494326da4b7a99572eadae..2dbc219cdf466d06101bbd53febd5cc52c87161e 100644 --- a/algo/unpack/Unpack.cxx +++ b/algo/unpack/Unpack.cxx @@ -38,11 +38,13 @@ namespace cbm::algo } if (DetectorEnabled(Subsystem::BMON)) { - ParallelMsLoop(Subsystem::BMON, monitor, digiTs.fData.fT0.fDigis, monitor.fBmon, *timeslice, fAlgoBmon, 0x00); + monitor.fNumBytesInBmon += + ParallelMsLoop(Subsystem::BMON, monitor, digiTs.fData.fT0.fDigis, monitor.fBmon, *timeslice, fAlgoBmon, 0x00); } if (DetectorEnabled(Subsystem::MUCH)) { - ParallelMsLoop(Subsystem::MUCH, monitor, digiTs.fData.fMuch.fDigis, monitor.fMuch, *timeslice, fAlgoMuch, 0x20); + monitor.fNumBytesInMuch += + ParallelMsLoop(Subsystem::MUCH, monitor, digiTs.fData.fMuch.fDigis, monitor.fMuch, *timeslice, fAlgoMuch, 0x20); } // --- Component loop @@ -77,13 +79,16 @@ namespace cbm::algo // MsLoop(timeslice, fAlgoBmon, comp, equipmentId, &digiTs.fData.fT0.fDigis, monitor, &monitor.fBmon, 0x00); // } if (subsystem == Subsystem::TRD) { - MsLoop(timeslice, fAlgoTrd, comp, equipmentId, &digiTs.fData.fTrd.fDigis, monitor, &monitor.fTrd, 0x01); + monitor.fNumBytesInTrd += + MsLoop(timeslice, fAlgoTrd, comp, equipmentId, &digiTs.fData.fTrd.fDigis, monitor, &monitor.fTrd, 0x01); } if (subsystem == Subsystem::TRD2D) { - MsLoop(timeslice, fAlgoTrd2d, comp, equipmentId, &digiTs.fData.fTrd2d.fDigis, monitor, &monitor.fTrd2d, 0x02); + monitor.fNumBytesInTrd2d += + MsLoop(timeslice, fAlgoTrd2d, comp, equipmentId, &digiTs.fData.fTrd2d.fDigis, monitor, &monitor.fTrd2d, 0x02); } if (subsystem == Subsystem::RICH) { - MsLoop(timeslice, fAlgoRich, comp, equipmentId, &digiTs.fData.fRich.fDigis, monitor, &monitor.fRich, 0x03); + monitor.fNumBytesInRich += + MsLoop(timeslice, fAlgoRich, comp, equipmentId, &digiTs.fData.fRich.fDigis, monitor, &monitor.fRich, 0x03); } } //# component @@ -253,6 +258,8 @@ namespace cbm::algo monitor.fNumBytes += numBytesInComp; monitor.fNumDigis += numDigisInComp; monitor.fNumCompUsed++; + + return numBytesInComp; } // ---------------------------------------------------------------------------- diff --git a/algo/unpack/Unpack.h b/algo/unpack/Unpack.h index 13cb0b7d9257e50be01936ccd8ba5b0f0abb1738..676af4fcb4e08f036286ab1b9e0938f6cd6b9066 100644 --- a/algo/unpack/Unpack.h +++ b/algo/unpack/Unpack.h @@ -142,9 +142,9 @@ namespace cbm::algo private: // methods /** @brief Microslice loop **/ template<class Digi, class UnpackAlgo, class MonitorData> - void MsLoop(const fles::Timeslice* timeslice, std::map<uint16_t, UnpackAlgo>& algoMap, const uint64_t comp, - const uint16_t eqId, std::vector<Digi>* digis, UnpackMonitorData& monitor, - std::vector<MonitorData>* monitorMs, uint8_t sys_ver); + size_t MsLoop(const fles::Timeslice* timeslice, std::map<uint16_t, UnpackAlgo>& algoMap, const uint64_t comp, + const uint16_t eqId, std::vector<Digi>* digis, UnpackMonitorData& monitor, + std::vector<MonitorData>* monitorMs, uint8_t sys_ver); /** @brief Parallel microslice loop **/ template<class Digi, class UnpackAlgo, class Monitor>