Draft: Fix flag propagation from RecExCommon to Trigger reco config
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
ConfiguredWithFlagswhich is a wrapper aroundRecExConfig.Configuredadding a possibility to passConfigFlagsin 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
ConfigFlagswhich are local inRecExCommon_topOptionsto theTriggerRecoGettercall therein. - Remove all imports of global
ConfigFlagsin the "Getter" classes and replace with the local referenceself.configFlags. - Replace all uses of the old-JO
objKeyStorefor EDM extension in the "Getter" classes with the new-JOaddToESDandaddToAODfunctions.
Edited by Rafal Bielski