Skip to content

components for full 1-track and 2-track line implementations

Olli Lupton requested to merge olupton_twotrack_studies into master

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 2 MatrixNet 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 and COMB
    • 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 to Pr::Selection<T>
  • Add child relations to TrackCompactVertex

Goes with LHCb!2065 (merged) and Moore!223 (merged).

Edited by Olli Lupton

Merge request reports