35 int nTimeBins = ic.
options().
get<
int>(
"number-of-TBs");
37 LOGP(info,
"Number of time bins set to {} externally", nTimeBins);
40 mReader.
configure(mTrackletHCHeaderState, mHalfChamberWords, mHalfChamberMajor, mOptions);
41 mProcessEveryNthTF = ic.
options().
get<
int>(
"every-nth-tf");
46 LOGF(info,
"At EoS we have read: %lu Digits, %lu Tracklets. Received %.3f MB input data and rejected %.3f MB",
47 mDigitsTotal, mTrackletsTotal, mDatasizeInTotal / (1024. * 1024.), (
float)mWordsRejectedTotal * 4. / (1024. * 1024.));
54 LOG(info) <<
" CTP/Config/TriggerOffsets updated.";
58 LOG(info) <<
"Updated Link ID to HCID mapping";
80 static size_t contDeadBeef = 0;
82 const auto dh = o2::framework::DataRefUtils::getHeader<o2::header::DataHeader*>(
ref);
84 if (payloadSize == 0) {
86 if (++contDeadBeef <= maxWarn) {
87 LOGP(alarm,
"Found input [{}/{}/{:#x}] TF#{} 1st_orbit:{} Payload {} : assuming no payload for all links in this TF{}",
88 dh->dataOrigin.str, dh->dataDescription.str, dh->subSpecification, dh->tfCounter, dh->firstTForbit, payloadSize,
89 contDeadBeef == maxWarn ? fmt::format(
". {} such inputs in row received, stopping reporting", contDeadBeef) :
"");
101 if (tinfo.globalRunNumberChanged) {
102 mInitOnceDone =
false;
104 updateTimeDependentParams(pc);
105 auto dataReadStart = std::chrono::high_resolution_clock::now();
113 size_t datasizeInTF = 0;
115 uint64_t tfCount = 0;
118 const auto* dh = DataRefUtils::getHeader<o2::header::DataHeader*>(
ref);
119 tfCount = dh->tfCounter;
120 const char* payloadIn =
ref.payload;
123 LOGP(info,
"Found input [{}/{}/{:#x}] TF#{} 1st_orbit:{} Payload {} : ",
124 dh->dataOrigin.str, dh->dataDescription.str, dh->subSpecification, dh->tfCounter, dh->firstTForbit, payloadInSize);
129 datasizeInTF += payloadInSize;
136 std::chrono::duration<double, std::milli> dataReadTime = std::chrono::high_resolution_clock::now() - dataReadStart;
137 LOGP(info,
"Digits: {}, Tracklets: {}, DataRead in: {:.3f} MB, Rejected: {:.3f} kB for TF {} in {} ms",
139 std::chrono::duration_cast<std::chrono::milliseconds>(dataReadTime).count());
142 mDatasizeInTotal += datasizeInTF;
TRD epn task to read incoming data.
static const TriggerOffsetsParam & Instance()
T get(const char *key) const
ConfigParamRegistry const & options()
InputRecord & inputs()
The inputs associated with this processing context.
ServiceRegistryRef services()
The services registry associated with this processing context.
int getWordsRejected() const
void setDataBufferSize(long val)
void setLinkMap(const LinkToHCIDMapping *map)
int getTrackletsFound() const
int getDigitsFound() const
void printHalfChamberHeaderReport() const
void buildDPLOutputs(o2::framework::ProcessingContext &outputs)
void setMaxErrWarnPrinted(int nerr, int nwar)
void setDataBuffer(const char *val)
void configure(int tracklethcheader, int halfchamberwords, int halfchambermajor, std::bitset< 16 > options)
void setNumberOfTimeBins(int tb)
void init(InitContext &ic) final
void endOfStream(o2::framework::EndOfStreamContext &ec) override
This is invoked whenever we have an EndOfStream event.
void finaliseCCDB(ConcreteDataMatcher &matcher, void *obj) final
void run(ProcessingContext &pc) final
bool isTimeFrameEmpty(ProcessingContext &pc)
constexpr o2::header::DataDescription gDataDescriptionRawData
constexpr o2::header::DataOrigin gDataOriginTRD
static o2::header::DataHeader::PayloadSizeType getPayloadSize(const DataRef &ref)
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"