Skip to content

RoIBResultByteStreamTool: Calculate CTP ROD minor version for ByteStream encoding

Rafal Bielski requested to merge rbielski/athena:rewriteL1-CTP-version into master

The CTP ROD minor version word contains information required for decoding the CTP raw data. When running L1 Trigger simulation on data and rewriting the simulated result to ByteStream, this version word needs to be correctly calculated and written. Otherwise, TrigDecisionTool in downstream reconstruction jobs won't be able to correctly identify passed triggers as reported in ATR-23181. This calculation was missing and is added here.

Notes for future reference:

  1. The ROD minor version word combines information about CTP format version, bunch position in case of multiple-bunches readout window, and number of additional payload words. The bunch position and additional words are actually never set in simulation and default to zero. However, in the way this is coded up here, if we ever start filling them in CTPSimulation producing the CTP_RDO object, then they will be correctly written to the output ByteStream.
  2. Good to know: the CTP_RDO object is actually never produced in HLT during standard data processing. It is only used in L1 Simulation and presumably somewhere in offline monitoring. There is no use for this in HLT.
  3. The CTP_RDO object wouldn't be needed for this if the ROIB::CTPResult provided this information, but it doesn't. As it should be soon obsolete and we should move to xAOD EDM, any updates to ROIB::CTPResult right now wouldn't make sense, so I just used the CTP_RDO which is anyway produced in the simulation.

Hopefully fixes ATR-23181

cc @stelzer, @tamartin, @wiedenma

Merge request reports