This MR brings the MC data to the sequence as another optional input. MC data is intended to be used either when developing algorithms, or when validating algorithms.
Validation in Allen was previously done with a special sequence, run after the main sequence loop was over. This had several drawbacks: It required that certain algorithm types were run to trigger the respective validator and it had no support of multiple sequences. It also required special datatypes
host_buffers to be used to keep data around for the validator to have access to the data.
With this MR, validation algorithms become normal Allen algorithms, that must be configured with their proper inputs to run. In addition, multiple sequence validation becomes possible with this MR. Each validation algorithm is recognized by its name, and an output is printed once the sequence runs are over with the contents of all validations. In case USE_ROOT is configured, a root file with folders for each validator name are created.
Closes #210 (closed)
Changes introduced in this MR:
- Created a new type of Algorithm
- Added a MCDataProvider algorithm. This algorithm can be used to fetch MC data, which can be used in order to develop algorithms as well as to validate the sequence.
- Added validation algorithms for Velo tracks, VeloUT tracks, Forward tracks, PVs, Kalman filters and Rate checker.
- Muon validation is now its own algorithm (before it was coupled to the forward track validation, and it was not possible to print forward track validation without muon validation).
- All validation algorithms are now thread-safe.
- All validation algorithms report using its algorithm name. For instance, VELO validation can be invoked independently with two different names, and will report both independent from one another.
- Validation algorithms now use
event_liststo iterate reconstructed data. Therefore, any special use-case of validation that required manual handling before (such as GEC, non-GEC, etc.) will now automatically work.
- A ROOT file is generated with validation algorithms, whose filename is configurable in all algorithms. In addition, each algorithm will write into a directory using its name in the ROOT file.
- The option
--validationhas been removed. The configured sequence is sought for a
ValidationAlgorithm, in which case the internal variable
do_checkis enabled. This causes a MC folder to be loaded, and
host_buffersto be populated (although host_buffers are not used to validate in Allen anymore, they are used in the monitoring and in Gaudi-Allen checkers).
- All the above changes have allowed the removal of various functions that became unused. Overall, the "special case" of checkers is now handled like any other algorithm, and the validation code has become more homogeneous and easier to maintain.
hlt1_pp_defaultsequence now does not contain MC validation algorithms. Sequences
hlt1_pp_no_gec_validationare new sequences that contain validation algorithms. The CI has been updated accordingly.