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::ActsDynamicMatrix instead.

Typedefs

using Acts::ActsDynamicMatrix = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
 Dynamic-sized matrix type.
using Acts::ActsDynamicVector = Eigen::Matrix<double, Eigen::Dynamic, 1>
 Dynamic-sized vector type.
template<unsigned int kRows, unsigned int kCols>
using Acts::ActsMatrix = Eigen::Matrix<double, kRows, kCols>
 Fixed-size matrix type for NxM matrices.
template<unsigned int kSize>
using Acts::ActsSquareMatrix = Eigen::Matrix<double, kSize, kSize>
 Fixed-size square matrix type for NxN matrices.
template<unsigned int kSize>
using Acts::ActsVector = Eigen::Matrix<double, kSize, 1>
 Fixed-size vector type for N-dimensional vectors.
using Acts::AngleAxis3 = Eigen::AngleAxis<double>
 Rotation defined by an angle around a rotation axis in 3D.
using Acts::RotationMatrix2 = SquareMatrix2
 2D rotation matrix
using Acts::RotationMatrix3 = SquareMatrix3
 3D rotation matrix
using Acts::SquareMatrix2 = ActsSquareMatrix<2>
 2x2 square matrix type, typically used for 2D coordinate covariance
using Acts::SquareMatrix3 = ActsSquareMatrix<3>
 3x3 square matrix type, typically used for 3D coordinate covariance
using Acts::SquareMatrix4 = ActsSquareMatrix<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
using Acts::Vector2 = ActsVector<2>
 2-dimensional vector type for 2D coordinates
using Acts::Vector3 = ActsVector<3>
 3-dimensional vector type for e.g. spatial coordinates and momenta
using Acts::Vector4 = ActsVector<4>
 4-dimensional vector type for space-time coordinates

Variables

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

Typedef Documentation

◆ ActsDynamicMatrix

using Acts::ActsDynamicMatrix = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>

Dynamic-sized matrix type.

◆ ActsDynamicVector

using Acts::ActsDynamicVector = Eigen::Matrix<double, Eigen::Dynamic, 1>

Dynamic-sized vector type.

◆ ActsMatrix

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

Fixed-size matrix type for NxM matrices.

Template Parameters
kRowsNumber of rows
kColsNumber of columns

◆ ActsSquareMatrix

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

Fixed-size square matrix type for NxN matrices.

Template Parameters
kSizeThe dimension of the square matrix

◆ ActsVector

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

Fixed-size vector type for N-dimensional vectors.

Template Parameters
kSizeThe dimension of the vector

◆ AngleAxis3

using Acts::AngleAxis3 = Eigen::AngleAxis<double>

Rotation defined by an angle around a rotation axis in 3D.

◆ RotationMatrix2

2D rotation matrix

◆ RotationMatrix3

3D rotation matrix

◆ SquareMatrix2

2x2 square matrix type, typically used for 2D coordinate covariance

◆ SquareMatrix3

3x3 square matrix type, typically used for 3D coordinate covariance

◆ SquareMatrix4

4x4 square matrix type, typically used for 4D coordinate covariance

◆ Transform2

using Acts::Transform2 = Eigen::Transform<double, 2, Eigen::AffineCompact>

2D affine transformation stored as a compact 2x3 matrix

◆ Transform3

using Acts::Transform3 = Eigen::Transform<double, 3, Eigen::Affine>

3D affine transformation stored as a 4x4 matrix

◆ Translation2

using Acts::Translation2 = Eigen::Translation<double, 2>

2D translation transformation

◆ Translation3

using Acts::Translation3 = Eigen::Translation<double, 3>

3D translation transformation

◆ Vector2

2-dimensional vector type for 2D coordinates

◆ Vector3

3-dimensional vector type for e.g. spatial coordinates and momenta

◆ Vector4

4-dimensional vector type for space-time coordinates

Variable Documentation

◆ s_transformEquivalentTolerance

double Acts::s_transformEquivalentTolerance = 1e-9
constexpr

Tolerance for transform equivalence checks.