Add HltLine output API, improve SelReports test, and write lumi banks
The main change with this MR is to define an explicit output API on the Moore.HltLine
class. This cleans up the SelReports creation logic and should allow for a cleaner path to implementing HLT2 persistence.
To go with this I refactored the way the lines were being altered in the SelReports test. Rather than relying on the private PyConf API I replace the entire definition of some lines with no-op filters. This means the line decision has to be emulated entirely by the TOS filter.
While working on the reports writing I noticed that the luminosity summary was not being serialised in to a raw bank (missed in !281 (merged)), so I've added the algorithms to do that.
Finally, I modified the graph creation logic to try to format functors using their 'pretty' representation, e.g. PT > 5000.0
(cc @nnolte).
Depends on LHCb!2221 (merged) to fix a segfault caused by duplicate hits in Pr::Fitted::Forward::Tracks::lhcbIDs
.