34 const bool useContinuous =
true;
45 std::vector<o2::InteractionTimeRecord> irs(nIRs);
48 LOG(info) <<
"Emulate RDHs for raw data between IRs " << irs.front() <<
" and " << irs.back();
50 uint8_t packetCounter = 0;
51 std::vector<o2::InteractionRecord> HBIRVec;
52 auto irFrom =
sampler.getFirstIR();
53 int nHBF = 0, nHBFEmpty = 0, nTF = 0;
54 int nHBFOpen = 0, nHBFClose = 0;
57 auto flushRDH = [&]() {
60 int hbfID =
sampler.getHBF(rdhIR);
61 auto tfhb =
sampler.getTFandHBinTF(rdhIR);
62 static bool firstCall =
true;
64 printf(
"%s HBF%4d (TF%3d/HB%3d) Sz:%4d| HB Orbit/BC :%4d/%4d Trigger:(0x%08x) %s Packet: %3d Page: %3d Stop: %d\n",
89 for (
int i = 0;
i < nIRs;
i++) {
90 int nHBF =
sampler.fillHBIRvector(HBIRVec, irFrom, irs[
i]);
98 for (
int j = 0;
j < nHBF - 1;
j++) {
117 rdhIR = HBIRVec.back();
124 rdh.
memorySize =
sizeof(rdh) + 16 + gRandom->Integer(8192 -
sizeof(rdh) - 16);
132 printf(
"Flush payload for Orbit/BC %4d/%d\n", irs[
i].
orbit, irs[
i].
bc);
143 auto lastHBIR =
sampler.getIRTF(
tf + 1) - 1;
144 sampler.fillHBIRvector(HBIRVec, irs.back(), lastHBIR);
145 for (
const auto&
ir : HBIRVec) {
158 printf(
"\nN_TF=%d, N_HBF=%d (%d empty), Opened %d / Closed %d\n", nTF, nHBF, nHBFEmpty, nHBFOpen, nHBFClose);