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>;
150 using GlobalCoords = ROOT::Math::GlobalCoordinateSystemTag;
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>
195 using VectorIn_t = Vector3DBase_t<CoordSystemTag>;
204 template <
typename CoordSystemTag>
205 using PointIn_t = Point3DBase_t<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>
227 constexpr
Point origin() {
return { 0.0, 0.0, 0.0 }; }
239 #endif // LARCOREOBJ_SIMPLETYPESANDCONSTANTS_GEO_VECTORS_H
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >> Point_t
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.
ROOT::Math::GlobalCoordinateSystemTag GlobalCoords
Tag for vectors in the global coordinate system.
constexpr Vector Xaxis()
Returns a x axis vector of the specified type.
constexpr Vector Zaxis()
Returns a z axis vector of the specified type.
double Length_t
Type used for coordinates and distances. They are measured in centimeters.
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
LArSoft geometry interface.
recob::tracking::Vector_t Vector_t
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< T >, C > GenVector3DBase_t
constexpr Point origin()
Returns a origin position with a point of the specified type.
ROOT::Math::Rotation3D Rotation_t
Type for representation of space rotations.