|
ACTS
Experiment-independent tracking
|
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 | |
| 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.
| using Acts::Matrix = Eigen::Matrix<double, kRows, kCols> |
Fixed-size matrix type for NxM matrices.
| kRows | Number of rows |
| kCols | Number of columns |
| using Acts::SquareMatrix = Eigen::Matrix<double, kSize, kSize> |
Fixed-size square matrix type for NxN matrices.
| kSize | The dimension of the square matrix |
| 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.
| using Acts::Vector = Eigen::Matrix<double, kSize, 1> |
Fixed-size vector type for N-dimensional vectors.
| kSize | The dimension of the vector |