Generalize and extend vertex objects
The specialized variables about muonID should be removed from the secondary vertex objects and instead be accessed based on the track ID stored in the vertex in a view of the required containers. In addition, more variables required for selections need to be added.
The current 2-body vertex class implementation is here: https://gitlab.cern.ch/lhcb/Allen/-/blob/master/device/vertex_fit/common/include/VertexDefinitions.cuh#L20
Steps to be taken:
-
TrackMVAVertex (2-body vertex): Generalize ip_vertex to not only be filled for the dimuon vertex -
TrackMVAVertex (2-body vertex): add docaz of mother -
TrackMVAVertex (2-body vertex): add DIRA of mother -
Add 3-body vertex fit -
Add 4-body vertex fit -
Add 3- and 4-body vertex containers -
Do not store muon information in 3- and 4-body vertex containers, but use view of track and vertex containers to access it.
The corrected mass probably does not have to be calculated for 3- and 4-body vertices (unless we find many use cases of selections where this is required).