LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Definitions of geometry vector data types. More...
#include "Math/GenVector/Cartesian3D.h"
#include "Math/GenVector/CoordinateSystemTags.h"
#include "Math/GenVector/DisplacementVector3D.h"
#include "Math/GenVector/PositionVector3D.h"
#include "Math/GenVector/Rotation3D.h"
#include "RVersion.h"
Go to the source code of this file.
Namespaces | |
geo | |
Namespace collecting geometry-related classes utilities. | |
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... | |
Definitions of geometry vector data types.
This library depends on ROOT GenVector. In the CET link list in CMakeLists.txt
, link to ROOT::GenVector
.
Additional utilities are available from geo_vectors_utils.h
.
Definition in file geo_vectors.h.
#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 45 of file geo_vectors.h.