New command for reading a binary file and sending data to QC

During the development of the MCH QC modules we often use reference data files that we replay locally. The data files were all created by running readout and saving the output to file.
So far we have used the “player” functionality of the O2 readout executable in order to replay those data files and send them to QC. However, this is a bit over-complicated for such a simple task, and seems to have some limitations also:

  • one needs to start a separate process in order to read the data, since readout cannot be directly piped to QC
  • when replaying data files, readout seems to load the whole file content into a single DPL message, and this turns out not to be very practical when the file size is several hundreds of megabytes

Hence I have developed a small and simple tool that “replaces” o2-qc-run-readout in the DPL pipeline. This new o2-qc-run-file-reader command reads data directly from a file on disk and sends it to QC using the same message format as o2-qc-run-readout.
The input data must be composed of contiguous 8 kB RDH blocks, which are sent one-by-one to QC until the end of file is reached.

A typical invocation would look like this:

o2-qc-run-file-reader --infile=data.bin | o2-qc-run-qc --config json://$(pwd)/readout.json

In case you are interested and want to review the code, I have just created a pull request:

Cheers, Andrea

This is very nice ! thank you

I propose that @pkonopka reviews as he is an uber-expert in DPL.

Thank you for that, I like it a lot. I have posted some comments on the PR.