diff --git a/Framework/Utils/include/DPLUtils/DPLRawParser.h b/Framework/Utils/include/DPLUtils/DPLRawParser.h index a227ebaa753a9..723563d3a0ce7 100644 --- a/Framework/Utils/include/DPLUtils/DPLRawParser.h +++ b/Framework/Utils/include/DPLUtils/DPLRawParser.h @@ -20,6 +20,7 @@ #include "Framework/DataRef.h" #include "Framework/DataRefUtils.h" #include "Framework/Logger.h" +#include "Framework/DataProcessingHeader.h" #include "Headers/DataHeader.h" #include // std::declval @@ -149,6 +150,15 @@ class DPLRawParser return nullptr; } + /// get DataProcessingHeader of the current input message + o2::framework::DataProcessingHeader const* o2DataProcessingHeader() const + { + if (mInputIterator != mEnd) { + return DataRefUtils::getHeader(*mPartIterator); + } + return nullptr; + } + /// get pointer to raw block at current position, rdh starts here buffer_type const* raw() const { diff --git a/Framework/Utils/src/raw-parser.cxx b/Framework/Utils/src/raw-parser.cxx index bbd7b5c1d1a06..e345fc8c3bf77 100644 --- a/Framework/Utils/src/raw-parser.cxx +++ b/Framework/Utils/src/raw-parser.cxx @@ -66,17 +66,26 @@ WorkflowSpec defineDataProcessing(ConfigContext const& config) } // print the DataHeader information only for the first part or if we have high verbosity if (loglevel > 1 || dh->splitPayloadIndex == 0) { - rdhprintout << dh->dataOrigin.as() << "/" + rdhprintout << "DH: " + << dh->dataOrigin.as() << "/" << dh->dataDescription.as() << "/" - << dh->subSpecification << " "; + << dh->subSpecification << " " + << " TF " << dh->tfCounter << " Run " << dh->runNumber << " |"; + // at high verbosity print part number, otherwise only the total number of parts if (loglevel > 1) { - rdhprintout << "part " + std::to_string(dh->splitPayloadIndex) + " of " + std::to_string(dh->splitPayloadParts); + rdhprintout << " part " + std::to_string(dh->splitPayloadIndex) + " of " + std::to_string(dh->splitPayloadParts); } else { rdhprintout << " " + std::to_string(dh->splitPayloadParts) + " part(s)"; } - rdhprintout << " payload size " << dh->payloadSize - << std::endl; + rdhprintout << " payload size " << dh->payloadSize; + + const auto* dph = it.o2DataProcessingHeader(); + if (dph) { + rdhprintout << " | DPH: " + << " Start " << dph->startTime << " dT " << dph->duration << " Creation " << dph->creation; + } + rdhprintout << std::endl; } rdhprintout << DPLRawParser::RDHInfo(it) << std::endl; }