14 #ifndef LARCOREOBJ_SIMPLETYPESANDCONSTANTS_GEO_VECTORS_H
15 #define LARCOREOBJ_SIMPLETYPESANDCONSTANTS_GEO_VECTORS_H
18 #include "Math/GenVector/CoordinateSystemTags.h"
19 #include "Math/GenVector/Cartesian3D.h"
20 #include "Math/GenVector/PositionVector3D.h"
21 #include "Math/GenVector/DisplacementVector3D.h"
22 #include "Math/GenVector/Rotation3D.h"
46 #define GENVECTOR_CONSTEXPR
73 template <
typename T,
typename C = ROOT::Math::GlobalCoordinateSystemTag>
75 = ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<T>, C>;
80 template <
typename T,
typename C = ROOT::Math::GlobalCoordinateSystemTag>
82 = ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<T>, C>;
163 using Vector_t = ROOT::Math::DisplacementVector3D
164 <ROOT::Math::Cartesian3D<double>, ROOT::Math::GlobalCoordinateSystemTag>;
183 using Point_t = ROOT::Math::PositionVector3D
184 <ROOT::Math::Cartesian3D<double>, ROOT::Math::GlobalCoordinateSystemTag>;
194 template <
typename CoordSystemTag>
204 template <
typename CoordSystemTag>
214 template <
typename Vector = Vector_t>
215 constexpr Vector
Xaxis() {
return { 1.0, 0.0, 0.0 }; }
218 template <
typename Vector = Vector_t>
219 constexpr Vector
Yaxis() {
return { 0.0, 1.0, 0.0 }; }
222 template <
typename Vector = Vector_t>
223 constexpr Vector
Zaxis() {
return { 0.0, 0.0, 1.0 }; }
226 template <
typename Po
int = Po
int_t>
239 #endif // LARCOREOBJ_SIMPLETYPESANDCONSTANTS_GEO_VECTORS_H
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
double Length_t
Type used for coordinates and distances. They are measured in centimeters.
ROOT::Math::GlobalCoordinateSystemTag GlobalCoords
Tag for vectors in the global coordinate system.
constexpr Vector Yaxis()
Returns a y axis vector of the specified type.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< T >, C > GenPoint3DBase_t
Vector3DBase_t< CoordSystemTag > VectorIn_t
Type for representation of momenta in 3D space.
std::tuple< double, double, const reco::ClusterHit3D * > Point
Definitions used by the VoronoiDiagram algorithm.
constexpr Vector Xaxis()
Returns a x axis vector of the specified type.
constexpr Vector Zaxis()
Returns a z axis vector of the specified type.
ROOT::Math::Rotation3D Rotation_t
Type for representation of space rotations.
Point3DBase_t< CoordSystemTag > PointIn_t
Type for representation of positions in 3D space.
GenPoint3DBase_t< double, C > Point3DBase_t
Type of 3D point with representation in double precision.
GenVector3DBase_t< double, C > Vector3DBase_t
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< T >, C > GenVector3DBase_t
constexpr Point origin()
Returns a origin position with a point of the specified type.