Skip to content

confusing create_lines_filter interface and behaviour

Issue created as per request from mattermost discussion.

I found the create_lines_filter interface a bit confusing, with the description in the code not so clear what it is actually doing until it was explained to me differently.

HLT1, HLT2 and Spruce lines decisions are treated as an OR within each source, but an AND between different sources, even though a single list of line names is passed. This could be improved by passing different lists of lines for each source, so that it is clear from the interface they are treated separately.

In general, I found the behaviour confusing since one can add an arbitrary number of lines of one type, but as soon as another type is added, the behaviour changes, even though decisions between types can be equivalent. e.g. Consider a case where you have a Spruce line that runs for a specified HLT2 line, which runs for a specified HLT1 line, with HLT2 and spruce 100% efficient wrt to the HLT1 line. By construction there is 100% agreement between the lines, and one would naively expect you could filter using just one of the HLT1, HLT2 or Spruce line decisions, which you can if you are only interested in filtering this one line. However, as soon as you want to filter multiple lines, the behaviour can completely change depending on whether you specify HLT1 or HLT2 or Spruce lines.

Edited by Izaac Sanderswood