14#ifndef O2_FT0DATAREADERDPLSPEC_H
15#define O2_FT0DATAREADERDPLSPEC_H
39template <
typename RawReader>
53 static size_t contDeadBeef = 0;
56 const auto dh = o2::framework::DataRefUtils::getHeader<o2::header::DataHeader*>(
ref);
58 if (payloadSize == 0) {
60 if (++contDeadBeef <= maxWarn) {
61 LOGP(alarm,
"Found input [{}/{}/{:#x}] TF#{} 1st_orbit:{} Payload {} : assuming no payload for all links in this TF{}",
62 dh->dataOrigin.str, dh->dataDescription.str, dh->subSpecification, dh->tfCounter, dh->firstTForbit, payloadSize,
63 contDeadBeef == maxWarn ? fmt::format(
". {} such inputs in row received, stopping reporting", contDeadBeef) :
"");
73 std::size_t
count = 0;
74 for (
auto it = parser.
begin(),
end = parser.
end(); it !=
end; ++it) {
78 gsl::span<const uint8_t> payload(it.data(), it.size());
79 mRawReader.process(payload, o2::raw::RDHUtils::getLinkID(rdhPtr), o2::raw::RDHUtils::getEndPointID(rdhPtr));
89template <
typename RawReader>
92 LOG(info) <<
"DataProcessorSpec initDataProcSpec() for RawReaderFT0";
93 std::vector<OutputSpec> outputSpec;
94 RawReader::prepareOutputSpec(outputSpec);
97 inputSpec.emplace_back(
"STFDist",
"FLP",
"DISTSUBTIMEFRAME", 0, Lifetime::Timeframe);
100 "ft0-datareader-dpl",
103 adaptFromTask<FT0DataReaderDPLSpec<RawReader>>(rawReader),
A raw page parser for DPL input.
Type wrappers for enfording a specific serialization method.
static const VerbosityConfig & Instance()
static SingleLUT & Instance(const Table_t *table=nullptr, long timestamp=-1)
The parser handles transparently input in the format of raw pages.
const_iterator end() const
const_iterator begin() const
~FT0DataReaderDPLSpec() override=default
void run(ProcessingContext &pc) final
FT0DataReaderDPLSpec(const RawReader &rawReader)
void init(InitContext &ic) final
FT0DataReaderDPLSpec()=default
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
constexpr o2::header::DataDescription gDataDescriptionRawData
constexpr o2::header::DataOrigin gDataOriginFT0
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > Options
framework::DataProcessorSpec getFT0DataReaderDPLSpec(const RawReader &rawReader, bool askSTFDist)
struct o2::upgrades_utils::@462 ft0
structure to keep V0C information
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
static o2::header::DataHeader::PayloadSizeType getPayloadSize(const DataRef &ref)
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"