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::AffineTransform3 = Eigen::Transform<double, 3, Eigen::Affine>
 3D general affine transformation, allowing scaling and shearing
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::Isometry>
 2D rigid transformation, see Acts::Transform3
using Acts::Transform3 = Eigen::Transform<double, 3, Eigen::Isometry>
 3D rigid transformation (rotation/reflection plus translation)
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

Typedef Documentation

◆ AffineTransform3

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

3D general affine transformation, allowing scaling and shearing

Names the transformations arriving from external geometry sources. They have to be converted to a Acts::Transform3 explicitly before ACTS geometry can be built from them.

◆ 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

◆ Transform3

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

3D rigid transformation (rotation/reflection plus translation)

The linear part is required to be orthogonal: geometry, navigation and propagation invert it by transposition and read the local frame axes off it directly. Scaling or shearing is therefore a compile error - use Acts::AffineTransform3 for a general transformation.

◆ 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