diff --git a/algo/detectors/bmon/Unpack.cxx b/algo/detectors/bmon/Unpack.cxx index dee3b83b2d419747afe5b7074dcd6a83fc5eab86..6ccc4cc0c03554ffaab98e4d4836080fba3d6215 100644 --- a/algo/detectors/bmon/Unpack.cxx +++ b/algo/detectors/bmon/Unpack.cxx @@ -24,11 +24,6 @@ namespace cbm::algo::bmon // --- Output data resultType result = {}; - TimeSpec time; - - // --- Current Timeslice start time in epoch units. Note that it is always a multiple of epochs - // --- and the epoch is a multiple of ns. - time.currentTsTime = static_cast<uint64_t>(tTimeslice / critof001::kuEpochInNs) % critof001::kulEpochCycleEp; // ---Â Number of messages in microslice auto msSize = msDescr.size; @@ -63,6 +58,13 @@ namespace cbm::algo::bmon } } + TimeSpec time; + + // --- Current Timeslice start time in epoch units. Note that it is always a multiple of epochs + // --- and the epoch is a multiple of ns. + time.currentTsTime = static_cast<uint64_t>(tTimeslice / critof001::kuEpochInNs) % critof001::kulEpochCycleEp; + ProcessEpochMessage(message[0], time); + // --- The last message in the MS is expected to be EndOfMs. if (!message[numMessages - 1].isEndOfMs()) { result.second.fNumErrInvalidLastMessage++; @@ -71,7 +73,7 @@ namespace cbm::algo::bmon //Check if last message is "EndOfMs"!! Maybe loop to messageNr < numMessages - 1 // --- Message loop - for (uint32_t messageNr = 0; messageNr < numMessages; messageNr++) { + for (uint32_t messageNr = 1; messageNr < numMessages; messageNr++) { // --- Action depending on message type switch (message[messageNr].getMessageType()) {