CPAlgorithms: add option to filter blocks by DSID
All config blocks are given a configurable option onlyForDSIDs
that is a list of DSIDs or regexp of DSIDs, that are evaluated against config.dsid()
(i.e. the DSID of the sample being run). This allows more flexibility within a single YAML config (e.g. running truth reconstruction only on DSIDs of the signal process, fake estimates or process-based overlap-removal on specific samples, etc.)
Since a skipped block might have otherwise set up an output container, we also need to make sure the Output:
block is aware of this DSID-filtering. Therefore I add an option containersOnlyForDSIDs
which is a dictionary of key = container shortname (e.g. el_
, mu_
etc.) and value = list of DSIDs or regexp of DSIDs (just like onlyForDSIDs
). Any container that is specified in this way and does not receive a positive DSID match is removed from the output logic. Examples would be the containers that hold truth particles, multiple high-level reconstructed objects, etc.