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.