Change PV finder output
This is work in progress. This needs
See also:
With this merge request the output of TrackBeamLineVertexFinderSoA is changed form RecVertex_v2 to a new type PrimaryVertexContainer. This new object contains the vertices, but also the tracks in the vertices and functionality to find the PV or track related to a velo segment. This allows to 'unbias' or 'refit' a PV without a set of tracks.
Some comments on the status:
- The new event model class is now in LHCb/Event/RecEvent. There are discussions if it shouldn't move (back) to Rec
- The persistency is still missing.
- The Thor functors work with the new class. The LoKi functors do not yet, because they rely on IDVAlgorith, which uses a RecVertex* container in the interface. It is probably not that hard to change, but we will do this later.
Needs feedback on:
- do the data structures make sense? No negative feedback, so will leave like this for now.
- do the names and namespace make sense? Namespace is LHCb::Event::PV. Didn't get any feedback so will leave it like this.
- would is be advantageous to use SoA for the PV list as well? Not clear: we are currently just using std::vector
There are a few things in the merge request that go beyond the Event model change.
- The test for the convergence of the PV fit was changed because we found that some fits were not well converged. This could be the reason for some increase in the hlt1 throughput tests, but this is not yet clear.
- There were two additional algs added:
- TrackPVChecker: Wouter's cheked used for debugging and performance testing of PVs
- TrackkUnbiasedVertexFinder: a new PV finder alg that does not use the beamline for seeding. It is functional, but it is actually not yet as good as PatPV3D. They are not used by others yet, but shouldn't be in the way.
Edited by Wouter Hulsbergen