ATLAS Offline Software
EventPrimitives.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // EventPrimitives.h, (c) ATLAS Detector software
8 
9 #ifndef EVENT_EVENTPRIMITIVES_H
10 #define EVENT_EVENTPRIMITIVES_H
11 
12 #define EIGEN_MATRIXBASE_PLUGIN "EventPrimitives/AmgMatrixBasePlugin.h"
13 #define EIGEN_TRANSFORM_PLUGIN "EventPrimitives/AmgTransformPlugin.h"
14 
15 
16 #include <Eigen/Core>
17 #include <Eigen/Dense>
18 
19 // These are the typedefs from Eigen to AMG ( Atlas Math and Geometry )
20 // some of those can be refined when switching to C++11
21 // @author: Eigen
22 // @responsible: Andreas.Salzburger -at- cern.ch
23 
24 namespace Amg {
25 
27 using MatrixX = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>;
28 using SymMatrixX = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>;
30 using VectorX = Eigen::Matrix<double, Eigen::Dynamic, 1>;
31 
35 template <int MaxRows, int MaxCols>
36 using MatrixMaxX =
37  Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxRows, MaxCols>;
38 
39 template <int MaxDim>
41  Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxDim, MaxDim>;
42 
43 template <int MaxRows>
44 using VectorMaxX = Eigen::Matrix<double, Eigen::Dynamic, 1, 0, MaxRows, 1>;
45 
47 #ifndef AmgMatrixDef
48 #define AmgMatrixDef
49 #define AmgMatrix(rows, cols) Eigen::Matrix<double, rows, cols, 0, rows, cols>
50 #define AmgSymMatrix(dim) Eigen::Matrix<double, dim, dim, 0, dim, dim>
51 #endif
52 
53 #ifndef AmgVectorDef
54 #define AmgVectorDef
55 #define AmgVector(rows) Eigen::Matrix<double, rows, 1, 0, rows, 1>
56 #define AmgRowVector(cols) Eigen::Matrix<double, 1, cols, Eigen::RowMajor, 1, cols>
57 #endif
58 
59 } // namespace Amg
60 
61 #endif /* EVENT_EVENTPRIMITIVES_H */
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:30
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
Amg::SymMatrixMaxX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxDim, MaxDim > SymMatrixMaxX
Definition: EventPrimitives.h:41
Amg::MatrixMaxX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, MaxRows, MaxCols > MatrixMaxX
Fixed capacity dynamic size types.
Definition: EventPrimitives.h:37
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Amg::VectorMaxX
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, MaxRows, 1 > VectorMaxX
Definition: EventPrimitives.h:44
Amg::SymMatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > SymMatrixX
Definition: EventPrimitives.h:28