Skip to content

Make number of bunch crossings for RPC L1 simulation configurable

Savanna Shaw requested to merge sshaw/athena:rpc-config into 24.0

As discussed in ATR-28396, the number of bunch crossings being readout by the RPCs changed partway through 2023, but the L1 trigger simulation uses hardcoded values for the number of bunch crossings, and which bunch crossing is the central one. This makes both values configurable via flags so that the L1 simulation can be run on data from both before and after the readout changes.

Overall this is done by setting configurable properties in a few places (the DigitToRDO conversion, the RDO decoder, and the RPC trigger simlation alg), and then using two added flags to configure these properties consistently. The values for the number of bunch crossings and central value are then passed through to other places that need them (the Matrix, sector logic, etc).

One thing to note is that there are a lot of arrays that depend on the number of bunch crossings when setting the array lengths. I assumed that we wouldn't go back to reading out more than 8 bunch crossings, and kept the dependence on the number of bunch crossings on the array lengths in the comments in case it needs to be adjusted in the future. In the end, when we use the arrays, we always loop over up to the configured number of bunch crossings. So we are defining arrays that have a length longer than needed, but the only other way around this would be to move everything to vectors, and that was a larger intervention than I was willing to do for this.

Validation plots added to ATR-28396.

cc @mcorradi

Merge request reports