Skip to content

Draft: Implement an alg for linking nominal/systematic objects

Addresses #87 by:

  • Building bidirectional links between nominal objects and their systematic variations
    • N.B. This mechanism might break in case some variations including the nominal select 0 objects. While in the case that the input container is filtered and is non-empty, we can navigate back to the unfiltered collection -- assuming also that we don't go crazy and mix different collections in one filtered collection1 -- we can't do this for an empty collection.
    • Consequently we might need to move it upstream into athena and schedule it in the CP alg sequences prior to any filtering. At that point, we'd probably want to enforce that the input is an owning container, to forestall the vulnerability above.
  • Downstream, reading in a set of filtered collections, and then using the links to:
    • aggregate the nominal objects corresponding to the contents of all filtered collections.
    • output all systematic variations of the selected nominal objects.

The aggregation should work just fine if the filtering is all done using view containers. If one were to make deep copies, the links would point back to the unfiltered containers. So there is no guarantee that modification or decoration operations downstream would be preserved for the output.

Since bbtautau already has some of the object filtering set up, I switched the output config over to write these collections rather than the plain calibrated ones.

  1. This could crop up in LRT analyses where LRT and prompt leptons are merged into one container.

Edited by Teng Jian Khoo

Merge request reports