Skip to content

[ATR-22697] Add ModeOR and EnableOverride flags to ComboHypoTool base

Tim Martin requested to merge tamartin/athena:comboHypoANDmode into master

If a trigger is applying isolation, it may want ALL combinations of objects between legs to be well isolated.

We add a new flag modeOR which defaults to True. In OR mode, any passing combinations will accept the event. In AND mode, all combinations will be required to pass for the chain to accept the event.

In addition, it is possible in the future that a chain is added which is capable of generating huge numbers of combinations. We already have CombinationsThresholdWarn and CombinationsThresholdBreak, but these are more to spot issues. We don't want chains regularly triggering these.

An EnableOverride flag is added which defaults to False. It can only be used in OR mode. If the flag is set then the loop over combinations will be exited upon the 1st valid combination. This is maximally CPU efficient, but we may fail to identify all Decision Objects which were part of a valid combination. This could be an issue if a) the ComboHypoTool isn't in the chain's final step or b) these data are used offline in physics analysis (matching) for the chain. So it should be used with caution.

Merge request reports