Skip to content

Modify Pr::Tracks to know of ancestor relation, add lhcbIDs functions

Sascha Stahl requested to merge sstahl_modify_prtracks into master

This MR intends to provide more safety when dealing with ancestors. Up to now only the index into a container was stored, which required knowledge which container to use to retrieve the ancestor. The approach here is to add a pointer to the ancestor and to change the constructors to require the pointer to the ancestor container.

So for example

namespace LHCb::Pr::Upstream {
  class Tracks {
...
    Tracks(Velo::Tracks const * velo_ancestors);
...
  private:
    Velo::Tracks const * m_velo_ancestors;
};

As the choice of ancestor(s) is defined, the type can be made explicit, without the need for templates and complicating downstream code.

As a convenience, e.g. LHCb::Pr::Fitted::Forward::Tracks can now return list of all LHCbIDs contributing to a track, only needing the hit container and the fitted tracks itself as input. This will simplify MC matching or and collecting the full information of a Pr::Track.

Edited by Marco Cattaneo

Merge request reports