Skip to content

Trigger: Enforce strict scheduler dependencies when running on data

Rafal Bielski requested to merge rbielski/athena:trig-no-auto-dataloader into master

The whole point of this MR is to set:

AlgScheduler.setDataLoaderAlg("")
SGInputLoader.FailIfNoProxy = True

to enforce that all unmet input dependencies are a configuration failure.

This is enabled for all Trigger jobs running on data inputs. We're not there yet for MC inputs.

This means that all objects which are loaded from the input file directly (for ByteStream this means through BS Converters) need to be explicitly added to the SGInputLoader.Load list.

A couple of additional fixes and improvements are included to make everything work:

  1. Add newJO config for SGInputLoader, make use of it in MainServicesConfig, ByteStreamConfig, TrigByteStreamConfig
  2. Fix configuration of objects loaded from ByteStream in a few places in Trigger job options.
  3. Make HelloWorldOptions use AtlasUnixStandardJob instead of AtlasUnixGeneratorJob since the latter unnecessarily configured EventInfoCnvAlg, and also didn't really match the use cases of the job options. The corresponding unit test references are also updated.

Note the newJO config for SGInputLoader includes special merging function for the Load property where different configurations are appended. This matches what one would expect from the use cases - each configuration fragment can tell SGInputLoader which objects it needs to load, and the final configuration is the sum of all these lists.

cc @tbold, @smh, @bwynne, @tadej

Merge request reports