Adding storage of online histograms and a conversion function online->ROOT
The merge request introduces a option of storing online histograms into an output binary file to the cbmreco, if the histogram server is not available. To enable histogram storage one has to provide an output filename with -o option and add the histogram storage step with "-O Histograms".
cbmreco execution
Here several scenarios of running QA in the cbmreco are available:
(a) Running with a histogram server (the "--histogram " option is enabled): a standard cbmreco execution with a histogram server. The histograms are reset each time, when the cbmreco forms a message with the histograms and sends it to the histogram server.
(b) Running with the "-O Histograms" option and without the "--histogram" one: QA tasks are executed, the histograms collect data from all timeslices and are stored on the finishing step of the cbmreco.
(c) Running with the "--histogram" and "-O Histograms" simultaneously [wrong configuration of the online binary]: the "-O Histogram" option is ignored with a warning, and the scenario (a) is processed.
(d) Running without "--histogram" or "-O Histogram" option: the QA tasks are not processed.
The feature is available only for those QA tasks, which are registered using the qa::Manager class.
The file with the histograms has the same name prefix as the data output and the ".qa.out" extension.
Conversion of online histograms
To convert the online histograms output into a ROOT file with ROOT histograms, one can call the
cbm::qa::OnlineInterface::ConvertOutput(const std::string& inFilename, std::string outFilename)
function from a ROOT session or a ROOT macro.