components for full 1-track and 2-track line implementations
Various improvements from the last few weeks. Combined with changes in LHCb and Moore this implements the TrackMVALoose
and TwoTrackMVALoose
lines from ZombieMoore
(modulo variations in the definitions of cut variables/reconstruction, and the lack of ghost probability). The lines were first implemented for Pr::Selection<v2::Track>
but now run directly on LHCb::Pr::Fitted::Forward::Tracks
.
- Add adapter for applying "combination cuts" as "vertex cuts" (illustrating the upsides and downsides of
(family, index)
relations) - Add
MVA
functor and enough implementation to run the Run 2MatrixNet
TwoTrackMVA
classifier (and kill the map lookups that used to be used to pass input/outputs) - Use a new
detail::DataDepWrapper
helper for functors with data dependencies that avoids some shortcomings of its predecessor- Fix a bug causing some extraneous copies in these functors
- Extend the Python wrapper:
- Allow docstrings for template arguments
- Map Python
str
onto C++std::string
- Custom formatters for more complex functors like
MVA
andCOMB
- Support template arguments properly
- Modify the factory to make fewer separate calls to cling and simplify how the functors are created. Check cling's "
-O3
" optimisation works. Don't call cling multiple times for the same functor. - Add new unit tests.
- Add dummy
.family() = 42
method toPr::Selection<T>
- Add child relations to
TrackCompactVertex
Goes with LHCb!2065 (merged) and Moore!223 (merged).
Edited by Olli Lupton