Do not suppress duplicate algs in conf2toConfigurable sequence conversion
The CA-to-legacy configurable conversion of sequences was dropping algorithms that existed anywhere in the legacy ConfigurableDB, which would edit the structure of well formed nested sequences extracted from a CA. This duplicate suppression should not be necessary; Athena will not permit the same alg to be added to the same sequence more than once.
This addresses ATR-28027 and ATR-28048 as follows:
- Ensures that the MET calo end-of-event sequence will run all its (and the MET track) prerequisite algs in particular HLT topoclustering, rather than getting topoclusters by the backdoor from (unnecessarily) scheduling the topoclustering in LAr noiseburst config
- Restores all of the MET FEX algorithms to the end-of-event sequence
As this touches core SW behaviour, setting full unit & integration tests.
Exceptional treatment is needed in the legacy conversion for SGInputLoader
, mainly because it is difficult to situate it correctly in the full sequence structure when extracting it from a CA. I went for a few options (may be redundant...):
- In
LegacySupport._mergeSequences()
, called fromLegacySupport.conf2toConfigurable()
, we avoid addingSGInputLoader
to any sequence other thanTopAlg
. - In both
MenuComponents.extractAlgorithmsAndAppendCA()
andMenuComponents.appendMenuSequenceCAToAthena()
, we do something similar: omitSGInputLoader
from any scheduled sequence or returned list of algs, but also callconf2toConfigurable()
explicitly on theSGInputLoader
instance so that its configuration is merged with the global instance, if it exists.
Not exactly in scope, but to try to get the ART failures under control, this also always configures SGInputLoader
to provide Pixel, SCT and/or TRT RDOs where needed, regardless of whether the ID trigger configuration is called for a view sequence or an event scope sequence. We rely on the mechanism described above to avoid (problematically) putting the alg into any view sequence.