Skip to content

LHCbMath - Remove use of GenVector in SIMDTypes.h

This PR is the first step in a longer process of allowing the use of other SIMD abstraction layer libraries, than just Vc, in LHCbMath and the RICH.

In this PR I remove the use of ROOT's GenVector. This is a necessary first step as the GenVector library's SIMD support is specifically tied to Vc, it cannot be used with any other SIMD abstraction layer. This PR instead adds some minimal Geometry classes (Point, Vector, Plane, Transform) to LHCbMath to fulfil the same role, but allow control over the implementation to (eventually) allow usage with other SIMD libraries (like for instance VecCore, UME::SIMD or @mschille's home grown ve package). Note, I do not claim the LHCbMath Geom classes are feature complete, just that they implement what is needed for the RICH use cases. Missing functionality, as required, should be easy to add.

I expect no changes in the QM tests because of this, the results should be bit-wise the same.

Edited by Marco Cattaneo

Merge request reports