Output track-to-PV relations from the PV finder
As Wouter presented today there are benefits for storing the track-to-PV information computed in the PV finder for later use:
- Cheap PV unbiasing.
- Quick look-up during selections, i.e. finding the 'best PV'.
- Useful for the persistence, allowing downstream applications to re-use the relations computed in HLT2.
In addition to the PVs themselves, the finder should also store this per-track information:
- Index to vertex.
- Weight.
- Impact parameter and
\chi^{2}_{\text{IP}}
. - Derivatives of
\chi^{2}
with respect to PV position.
There are some technical aspects to consider:
- The PV finder acts on VELO tracks. How do we propagate the track-to-PV information through later stages of the track reconstruction in a way that, for example, lets us access best-PV information on long tracks? What about track types which do not have a VELO segment?
- What is the most appropriate format for this information? Should a track class include it directly (we could force it to be a prerequisite for building long tracks), or should it be a (zipped?) extension to existing track classes?
- Possible ideas in !2095 (merged).
- How do we persist the information for downstream use?
- Should we try to adapt legacy selection algorithms to use this P2PV information?
- How can we integrate this information into the functors?
- In principle this should be straightforward for the ThOr functors. We already explicitly pass in PVs, it would be a simple extension in the configuration and C++ to pass the relations as well. It will make simultaneously supporting the legacy selection framework within ThOr harder though.
And finally: who does the work?