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
ConfiguredWithFlags
which is a wrapper aroundRecExConfig.Configured
adding a possibility to passConfigFlags
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 inRecExCommon_topOptions
to theTriggerRecoGetter
call therein. - Remove all imports of global
ConfigFlags
in the "Getter" classes and replace with the local referenceself.configFlags
. - Replace all uses of the old-JO
objKeyStore
for EDM extension in the "Getter" classes with the new-JOaddToESD
andaddToAOD
functions.
Edited by Rafal Bielski