Skip to content

Replace usual access to the Region Selector look up tables by detStore access

Mark Sutton requested to merge sutt/athena:rsctx into 24.0

Because of the sadly annoying requirement of an event context for all conditions data access, even if no context is actually needed, then to avoid repeated hidden lookup, the data is stored in the detector store instead.

To make life easier, the creation of the lookup tables is still handed off to the conditions algorithm, but then to avoid subsequent condition algorithm access, the data is saved, and retrieved from the detector store. (It was more logical, efficient, and the code was cleaner and simpler when we were allowed beginRun incident handlers.)

Sadly, because this stores the pointer for the conditions data in the detector store as well, then the store cleanup crashes after the event processing is complete, presumably because the detstore tries to delete the data that has already been deleted by the conditions, or vice versa. If only there was a way to prevent the detector store from trying to clean this up at the end itself.

To avoid this, duplicate tables are actually created in the conditions algorithms themselves. This is a but wasteful of memory, since these tables are not actually used, so at a later date the condition data will be replaces by either, a) some compact flag such that there is still some conditions data to initiate the conditions algorithm but the actual lookup tables will only go into the detector store, or b) an empty lookup table with no modules, which should not be too large - essentially just an empty vector of sub-detector.

Interestingly, the duplicate tables have not been added for the calorimeter tables, but the test job was not crashing. If the CI tests still crash but with the Calo tables, then explicit duplicate tables will be added for those.

Edited by Mark Sutton

Merge request reports