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: https://github.com/AliceO2Group/QualityControl/pull/273
Cheers, Andrea