Skip to content

RPC BS to RDO converter cache updated

Ian Allan Connelly requested to merge iconnell/athena:iac_master_rpcrdo into master

This branch will hold the BS to RDO converter updates to use the IdentifiableCache for the muon RPCs.

I have implemented a two new properties to the RPC_RawDataProviderTool

  • RpcContainerCacheKey - The RPC muon cache key name

  • WriteOutRpcSectorLogic - A flag (defaulting to true) which will turn off the RpcSectorLogic The reason to deactivate the RpcSectorLogic is two-fold.

  1. This container is not thought to be used at all within the trigger code as we already determine the trigger decisions

  2. This is not defined as an IdentifiableContainer and it is not clear whether there could be unique identifiers assigned to the RpcSectorLogic objects Deactivating it inside the ROD decoder means that we reduce the amount of processing (although I have had to explicitly prevent it attempting to processing the sector logic in places because the decoder gets some default values event when it is not asked to decode any data).

The RPC code does not work properly in the trigger mode, so I have run local tests activating the RPC cache with the non-trigger tests, and I do not observe any errors. However, while debugging this, I observed that the RpcROD_Decoder has a different method for recent data where the RpcPads are collected into a map, and decoded in a single function. This leads to a different behaviour when we need to check whether a collection has been decoded and stored in the cache (usually we just get the write handle). I had to switch (after discussion with @abarton) to using the tryFetch method to query the cache, without telling the container that we are planning to fill it with collections (ie we can only create the IDC_WriteHandle once and only when we are ready to write). We may decode the same data in different parallel views because of this, but the thread locking will prevent trying to write at the same time, so this is something we can live with.

Edited by Ian Allan Connelly

Merge request reports