Implement 2D measurements
Implementation of 2D measurements (for VP), rather than performing 2x 1D projection and filter steps for measurements that are actually of the form (X,Y). Saves filter/projection/minimise calls, extrapolation calls and aids in outlier removal.
Measurement type VP2D
is added, logic is redone for N-dimensions, and a std::variant
member of FitNode takes care of all dimension-dependent properties and calls.
The corresponding math is implemented in the LHCb math kernel in this MR: LHCb!2660 (merged)
2D measurements can be turned on by setting VPMeasurementProvider::Use2D = True
as is done in the test here: Moore!983 (merged)
Connected downstream MRs: Moore!983 (merged), Alignment!208 (merged), Panoramix!115 (merged)
Reference updates: Moore!1340 (merged) Alignment!234 (merged) Brunel!1198 (closed)
Wishlist:
- understand reason for minus sign in projectionmatrix for Y.
- investigate 2D measurements for Muons as well (not just VP)
- alignmentDerivatives for 2D measurements (in TrackTools/MeasurementProviderProjector)
Follow-up issue here: #211