ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Algebra types

Detailed Description

These are the default vector/matrix types that should be used throughout the codebase.

They all use the common ACTS scalar type but support variable size either at compile- or runtime.

Eigen does not have a distinct type for symmetric matrices. A typedef for fixed-size matrices is still defined to simplify definition (one template size vs two template size for generic matrices) and to clarify semantic meaning in interfaces. It also ensures that the matrix is square. However, the user is responsible for ensuring that the values are symmetric.

Without a distinct type for symmetric matrices, there is no way to provide any conditions e.g. square size, for the dynamic-sized case. Consequently, no dynamic-sized symmetric matrix type is defined. Use the Acts::DynamicMatrix instead.

Typedefs

using Acts::AngleAxis3 = Eigen::AngleAxis<double>
 Rotation defined by an angle around a rotation axis in 3D.
using Acts::DynamicMatrix = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
 Dynamic-sized matrix type.
using Acts::DynamicVector = Eigen::Matrix<double, Eigen::Dynamic, 1>
 Dynamic-sized vector type.
template<unsigned int kRows, unsigned int kCols>
using Acts::Matrix = Eigen::Matrix<double, kRows, kCols>
 Fixed-size matrix type for NxM matrices.
using Acts::RotationMatrix2 = SquareMatrix2
 2D rotation matrix
using Acts::RotationMatrix3 = SquareMatrix3
 3D rotation matrix
template<unsigned int kSize>
using Acts::SquareMatrix = Eigen::Matrix<double, kSize, kSize>
 Fixed-size square matrix type for NxN matrices.
using Acts::SquareMatrix2 = SquareMatrix<2>
 2x2 square matrix type, typically used for 2D coordinate covariance
using Acts::SquareMatrix3 = SquareMatrix<3>
 3x3 square matrix type, typically used for 3D coordinate covariance
using Acts::SquareMatrix4 = SquareMatrix<4>
 4x4 square matrix type, typically used for 4D coordinate covariance
using Acts::Transform2 = Eigen::Transform<double, 2, Eigen::AffineCompact>
 2D affine transformation stored as a compact 2x3 matrix
using Acts::Transform3 = Eigen::Transform<double, 3, Eigen::Affine>
 3D affine transformation stored as a 4x4 matrix
using Acts::Translation2 = Eigen::Translation<double, 2>
 2D translation transformation
using Acts::Translation3 = Eigen::Translation<double, 3>
 3D translation transformation
template<unsigned int kSize>
using Acts::Vector = Eigen::Matrix<double, kSize, 1>
 Fixed-size vector type for N-dimensional vectors.
using Acts::Vector2 = Vector<2>
 2-dimensional vector type for 2D coordinates
using Acts::Vector3 = Vector<3>
 3-dimensional vector type for e.g. spatial coordinates and momenta
using Acts::Vector4 = Vector<4>
 4-dimensional vector type for space-time coordinates

Variables

constexpr double Acts::s_transformEquivalentTolerance = 1e-9
 Tolerance for transform equivalence checks.

Typedef Documentation

◆ Matrix

template<unsigned int kRows, unsigned int kCols>
using Acts::Matrix = Eigen::Matrix<double, kRows, kCols>

Fixed-size matrix type for NxM matrices.

Template Parameters
kRowsNumber of rows
kColsNumber of columns

◆ SquareMatrix

template<unsigned int kSize>
using Acts::SquareMatrix = Eigen::Matrix<double, kSize, kSize>

Fixed-size square matrix type for NxN matrices.

Template Parameters
kSizeThe dimension of the square matrix

◆ Vector

template<unsigned int kSize>
using Acts::Vector = Eigen::Matrix<double, kSize, 1>

Fixed-size vector type for N-dimensional vectors.

Template Parameters
kSizeThe dimension of the vector