Draft: Fix flag propagation from RecExCommon to Trigger reco config

Closed Rafal Bielski requested to merge rbielski/athena:fix-flags-trig-RecExCommon into 22.0

Fix issue previously discussed in ATR-25220 and now blocking ATR-26026. Namely, the "new" flags were never propagated from RecExCommon_topOptions to Trigger Reco configuration, resulting in an issue where flags.Output.doWriteESD and flags.Output.doWriteAOD were always False even when the job was actually writing out ESD/AOD. This in turn made it impossible to use the addToESD and addToAOD functions from OutputStreamAthenaPool.OutputStreamConfig.

This is fixed in the following way:

  • Add a new class ConfiguredWithFlags which is a wrapper around RecExConfig.Configured adding a possibility to pass ConfigFlags in constructor argument.
  • Move all "Getter" classes in TriggerJobOpts to inherit from the new wrapper class and pass the flags in arguments when calling each other.
  • Pass the ConfigFlags which are local in RecExCommon_topOptions to the TriggerRecoGetter call therein.
  • Remove all imports of global ConfigFlags in the "Getter" classes and replace with the local reference self.configFlags.
  • Replace all uses of the old-JO objKeyStore for EDM extension in the "Getter" classes with the new-JO addToESD and addToAOD functions.
Edited by Rafal Bielski

Merge request reports