Skip to content

Add support for more sub-systems to Overlay_tf.py

Overlay_tf.py uses the DoubleEventSelector and a single StoreGate instance to perform RDO+RDO Overlay (c.f. OverlayPool_tf.py which uses multiple EventSelector and StoreGateSvc instances - old approach).
The Overlay configuration has to be tweaked to work with the DoubleEventSelector. This had already been done for the ID and Muon configuration, so there it is just a matter of switching on the algorithms and corresponding outputs.

Getting the LAr Overlay working required a small tweak to the configuration in addition to just switching on the code.

Getting the Tile Overlay working required a number of C++ and configuration changes. The first change ensures that TileDigitsMaker declares the proper dependencies by adding SG::ReadHandles for the background TileDigitsContainer and TileRawChannelContainer (although this is not part of the background RDO file). In order to preserve old-style approach using the PileUpMergeSvc then it is necessary to make a copy of the TileDigitsContainer, but this can probably be dropped with more substantial refactoring.
The second change involves changes to ensure that the TileDQstatusTool is only called once during the event loop and to avoid there being two attempts to record the TileDQstatus object in the ConditionsStore. Therefore TileDQstatusAlg is not added to the AlgSequence in Overlay jobs.

Possibly it would be cleaner to remove the usage of the TileDQstatusTool from TileDigitsMaker and just read the TileDQstatus object from the ConditionsStore. TileDQstatusAlg could then be run, but be configured to read the background TileDigitsContainer. This should be tackled in a separate merge request though.

Edited by John Derek Chapman

Merge request reports