Skip to content

Refactor the RegSelTool conditions data and add new RegSelTool implementation for the Tile Calorimeter

Mark Sutton requested to merge sutt/athena:rs-calo into master

Instead of separate tools for each of the three different types of lookup table, instead define a new lookup table interface

IRegSelLUT

Each of the three typre of interface now inherit from this interface and implement the same API. This means that we can instead store this interface as conditions data such that each of the detector subsystems can use their own table classes, but they get stored as the same type of conditions data.

This means that we can have a single class for the RegSelTool, and only need different classes for the Conditions Algorithms that create the lookup tables originally.

This implementation adds a new conditions algorithm

RegSelCondAlg_Tile

As in the case of the other Conditions Algorithms, the code to actually create the table itself is pre-existing code from the TileRegionSelectorTable class.

I did not want to change this code too much, since I did not write it originally and the purpose of this request is to implement the class with the new RegSelTool, not to reimplement the existing code.

Similarly there are a few changes to the

RegSelectorHashMap
RegSelectorMap
RegSelectorMapElement

classes. Again, these are very old classes, and should probably be completely rewritten, so the changes I have made to these are essentially to get the classes working as const classes and to add the new interface. The rest of the code for these classes, I have left largely as it is, with some reformatting to make the code easier to understand, since we want to retain the performance of the original tables.

At some point these RegSelTools will completely replace the RegSelSvc and the code for that will be removed. At that point, or perhaps sooner, we should go through with a full migration to the new style property setting for all the tools. This approach was felt prefereable than implementing some as the new style and leaving others with the old style.

Please note, that the Tile conditions algorithm currently depends on the Pixel Cabling to get the IoV. This should be changed to use Tile Cabling Conditions Data when available.

Edited by Mark Sutton

Merge request reports