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 #if ROOT_VERSION_CODE <= ROOT_VERSION(6,12,6) 47 #define GENVECTOR_CONSTEXPR 49 # error ("Please check if new ROOT supports constexpr GenVector objects.") 50 # define GENVECTOR_CONSTEXPR constexpr // ok, this is useless! 76 template <
typename T,
typename C = ROOT::Math::GlobalCoordinateSystemTag>
78 = ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<T>, C>;
83 template <
typename T,
typename C = ROOT::Math::GlobalCoordinateSystemTag>
85 = ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<T>, C>;
166 using Vector_t = ROOT::Math::DisplacementVector3D
167 <ROOT::Math::Cartesian3D<double>, ROOT::Math::GlobalCoordinateSystemTag>;
186 using Point_t = ROOT::Math::PositionVector3D
187 <ROOT::Math::Cartesian3D<double>, ROOT::Math::GlobalCoordinateSystemTag>;
197 template <
typename CoordSystemTag>
207 template <
typename CoordSystemTag>
217 template <
typename Vector = Vector_t>
218 constexpr Vector
Xaxis() {
return { 1.0, 0.0, 0.0 }; }
221 template <
typename Vector = Vector_t>
222 constexpr Vector
Yaxis() {
return { 0.0, 1.0, 0.0 }; }
225 template <
typename Vector = Vector_t>
226 constexpr Vector
Zaxis() {
return { 0.0, 0.0, 1.0 }; }
229 template <
typename Po
int = Po
int_t>
242 #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.
Namespace collecting geometry-related classes utilities.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< T >, C > GenVector3DBase_t
constexpr Point origin()
Returns a origin position with a point of the specified type.