Skip to content

Add RoIBResult BS decoder alg and restructure the corresponding tool

Rafal Bielski requested to merge rbielski/athena:roibresult-decoder-alg into master
  1. Added RoIBResultByteStreamDecoderAlg which should replace the Converter call to decode RoIBResult from BS.

  2. Restructured RoIBResultByteStreamTool:

    • added new, non-template decoding convert method to be used by the new alg
    • the old template convert method only transforms the arguments and calls the new method
    • conversion from RoIBResult to ByteStream (BS encoding) is left untouched
    • removed RoIBResultByteStreamTool.icc as the new non-template method is implemented in .cxx
    • the new method does identical job as the old one, but is rearranged for better readability and maintainability
  3. Made the list of ROB IDs for decoding configurable in RoIBResultByteStreamTool properties. This makes the corresponding properties of ByteStreamAddressProviderSvc obsolete. ByteStreamAddressL1R is also obsolete as the ROBFragments can be retrieved using ROBDataProviderSvc. However, both are still used in the legacy workflow. Another MR will come in the future to remove the obsolete code and use only the properties of RoIBResultByteStreamTool to define the list of ROBs.

  4. Added two lines in testHLT_MT.py to make use of the new algorithm (instead of SGInputLoader indirectly calling the Converter) for RoIBResult decoding.

Tested by running test_l1decoder.sh with and without these changes and comparing the outputs - no difference observed.

Merge request reports