#include "Math/GenVector/CoordinateSystemTags.h"
#include "Math/GenVector/Cartesian3D.h"
#include "Math/GenVector/PositionVector3D.h"
#include "Math/GenVector/DisplacementVector3D.h"
#include "Math/GenVector/Rotation3D.h"
#include "RVersion.h"
Go to the source code of this file.
Namespaces | |
geo | |
LArSoft geometry interface. | |
Macros | |
#define | GENVECTOR_CONSTEXPR |
A declaration is made constexpr if GenVector supports it. More... | |
Typedefs | |
Generic vector types. | |
template<typename T , typename C = ROOT::Math::GlobalCoordinateSystemTag> | |
using | geo::GenVector3DBase_t = ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< T >, C > |
template<typename T , typename C = ROOT::Math::GlobalCoordinateSystemTag> | |
using | geo::GenPoint3DBase_t = ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< T >, C > |
template<typename C > | |
using | geo::Vector3DBase_t = GenVector3DBase_t< double, C > |
template<typename C > | |
using | geo::Point3DBase_t = GenPoint3DBase_t< double, C > |
Type of 3D point with representation in double precision. More... | |
Vector types for the standard LArSoft geometry. | |
LArSoft geometry provides two main types of vectors in 3D space:
Both vectors are supposed to represent:
These types constitute the basic objects the geometry works with. All interfaces should support them.
The same type of vectors, but in a different coordinate system representation, can be obtained by using using LocalPoint_t = geo::Point3DBase_t<LocalCoordinateTag>; ( using PointF_t = geo::GenPoint3DBase_t<float>; using VectorF_t = geo::GenVector3DBase_t<float>; | |
using | geo::Length_t = double |
Type used for coordinates and distances. They are measured in centimeters. More... | |
using | geo::GlobalCoords = ROOT::Math::GlobalCoordinateSystemTag |
Tag for vectors in the global coordinate system. More... | |
using | geo::Vector_t = ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > |
Type for representation of momenta in 3D space. More... | |
using | geo::Point_t = ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > |
Type for representation of position in physical 3D space. More... | |
template<typename CoordSystemTag > | |
using | geo::VectorIn_t = Vector3DBase_t< CoordSystemTag > |
Type for representation of momenta in 3D space. More... | |
template<typename CoordSystemTag > | |
using | geo::PointIn_t = Point3DBase_t< CoordSystemTag > |
Type for representation of positions in 3D space. More... | |
using | geo::Rotation_t = ROOT::Math::Rotation3D |
Type for representation of space rotations. More... | |
template<typename Vector = Vector_t> | |
constexpr Vector | geo::Xaxis () |
Returns a x axis vector of the specified type. More... | |
template<typename Vector = Vector_t> | |
constexpr Vector | geo::Yaxis () |
Returns a y axis vector of the specified type. More... | |
template<typename Vector = Vector_t> | |
constexpr Vector | geo::Zaxis () |
Returns a z axis vector of the specified type. More... | |
template<typename Point = Point_t> | |
constexpr Point | geo::origin () |
Returns a origin position with a point of the specified type. More... | |
#define GENVECTOR_CONSTEXPR |
A declaration is made constexpr
if GenVector supports it.
This macro defines as "constexpr", only if GenVector's vector types can be used as constexpr
.
Currently the implementation is quite lame, since it does not autodetect whether GenVector library supports the feature or not, and it assumes it doesn't. So this becomes basically a placeholder to remind the maintainers to replace it with an actual constexpr
when that will be supported. To make maintainers not forget this, it will explode on each new ROOT version.
A feature request to ROOT was opened as JIRA 9320.
See also Fermilab Redmine issue #19476 (https://cdcvs.fnal.gov/redmine/issues/19476).
Definition at line 46 of file geo_vectors.h.