Namespace Acts::VectorHelpers¶
-
namespace VectorHelpers
Functions
-
inline double cast(const Vector3 &position, BinningValue bval)
Helper method to extract the binning value from a 3D vector.
For this method a 3D vector is required to guarantee all potential binning values.
-
inline ActsMatrix<3, 3> cross(const ActsMatrix<3, 3> &m, const Vector3 &v)
Calculates column-wise cross products of a matrix and a vector and stores the result column-wise in a matrix.
- Parameters
m – [in] Matrix that will be used for cross products
v – [in] Vector for cross products
- Returns
Constructed matrix
-
template<typename Derived>
double eta(const Eigen::MatrixBase<Derived> &v) noexcept Calculate the pseudorapidity for a vector.
Note
Will static assert that the number of rows of
vis at least 3, or in case of dynamic size, will abort execution if that is not the case.- Template Parameters
Derived – Eigen derived concrete type
- Parameters
v – Any vector like Eigen type, static or dynamic
- Returns
The pseudorapidity value
-
static inline const std::array<ActsScalar, 5> evaluateTrigonomics(const Vector3 &direction)
Fast evaluation of trigonomic functions.
- Parameters
direction – for this evaluatoin
- Returns
cos(phi), sin(phi), cos(theta), sin(theta), 1/sin(theta)
-
template<typename vector3_t>
inline auto makeVector4(const Eigen::MatrixBase<vector3_t> &vec3, typename vector3_t::Scalar w) -> Eigen::Matrix<typename vector3_t::Scalar, 4, 1> Construct a four-vector from a three-vector and scalar fourth component.
-
template<typename Derived>
double perp(const Eigen::MatrixBase<Derived> &v) noexcept Calculate radius in the transverse (xy) plane of a vector.
Note
Will static assert that the number of rows of
vis at least 2, or in case of dynamic size, will abort execution if that is not the case.- Template Parameters
Derived – Eigen derived concrete type
- Parameters
v – Any vector like Eigen type, static or dynamic
- Returns
The transverse radius value.
-
template<typename Derived>
double phi(const Eigen::MatrixBase<Derived> &v) noexcept Calculate phi (transverse plane angle) from compatible Eigen types.
Note
Will static assert that the number of rows of
vis at least 2, or in case of dynamic size, will abort execution if that is not the case.- Template Parameters
Derived – Eigen derived concrete type
- Parameters
v – Any vector like Eigen type, static or dynamic
- Returns
The value of the angle in the transverse plane.
-
template<typename T, std::enable_if_t<detail::has_phi_method<T>::value, int> = 0>
double phi(const T &v) noexcept Calculate phi (transverse plane angle) from anything implementing a method like
phi()returing anything convertible todouble.- Template Parameters
T – anything that has a phi method
- Parameters
v – Any type that implements a phi method
- Returns
The phi value
-
inline auto position(const Vector4 &pos4)
Access the three-position components in a four-position vector.
-
inline auto position(const FreeVector ¶ms)
Access the three-position components in a free parameters vector.
-
template<typename Derived>
double theta(const Eigen::MatrixBase<Derived> &v) noexcept Calculate the theta angle (longitudinal w.r.t.
z axis) of a vector
Note
Will static assert that the number of rows of
vis at least 3, or in case of dynamic size, will abort execution if that is not the case.- Template Parameters
Derived – Eigen derived concrete type
- Parameters
v – Any vector like Eigen type, static or dynamic
- Returns
The theta value
-
inline double cast(const Vector3 &position, BinningValue bval)