CLHEP 2.4.6.4
C++ Class Library for High Energy Physics
|
#include <BasicVector3D.h>
Public Types | |
enum | { X = 0 , Y = 1 , Z = 2 , NUM_COORDINATES = 3 , SIZE = NUM_COORDINATES } |
Public Member Functions | |
BasicVector3D (T x1, T y1, T z1) | |
BasicVector3D (const BasicVector3D< T > &)=default | |
template<typename U = T, typename = typename std::enable_if<!std::is_same<U,float>::value >::type> | |
BasicVector3D (const BasicVector3D< float > &v) | |
BasicVector3D (BasicVector3D< T > &&)=default | |
virtual | ~BasicVector3D ()=default |
operator T* () | |
operator const T * () const | |
operator CLHEP::Hep3Vector () const | |
BasicVector3D< T > & | operator= (const BasicVector3D< T > &)=default |
BasicVector3D< T > & | operator= (BasicVector3D< T > &&)=default |
BasicVector3D< T > & | operator+= (const BasicVector3D< T > &v) |
BasicVector3D< T > & | operator-= (const BasicVector3D< T > &v) |
BasicVector3D< T > & | operator*= (double a) |
BasicVector3D< T > & | operator/= (double a) |
T | operator() (int i) const |
T | operator[] (int i) const |
T & | operator() (int i) |
T & | operator[] (int i) |
T | x () const |
T | y () const |
T | z () const |
void | setX (T a) |
void | setY (T a) |
void | setZ (T a) |
void | set (T x1, T y1, T z1) |
T | perp2 () const |
T | perp () const |
T | rho () const |
void | setPerp (T rh) |
T | mag2 () const |
T | mag () const |
T | r () const |
T | phi () const |
T | theta () const |
T | cosTheta () const |
T | getR () const |
T | getPhi () const |
T | getTheta () const |
void | setMag (T ma) |
void | setR (T ma) |
void | setPhi (T ph) |
void | setTheta (T th) |
T | pseudoRapidity () const |
T | eta () const |
T | getEta () const |
void | setEta (T a) |
T | dot (const BasicVector3D< T > &v) const |
BasicVector3D< T > | cross (const BasicVector3D< T > &v) const |
T | perp2 (const BasicVector3D< T > &v) const |
T | perp (const BasicVector3D< T > &v) const |
T | angle (const BasicVector3D< T > &v) const |
BasicVector3D< T > | unit () const |
BasicVector3D< T > | orthogonal () const |
BasicVector3D< T > & | rotateX (T a) |
BasicVector3D< T > & | rotateY (T a) |
BasicVector3D< T > & | rotateZ (T a) |
BasicVector3D< T > & | rotate (T a, const BasicVector3D< T > &v) |
float | pseudoRapidity () const |
void | setEta (float a) |
float | angle (const BasicVector3D< float > &v) const |
BasicVector3D< float > & | rotateX (float a) |
BasicVector3D< float > & | rotateY (float a) |
BasicVector3D< float > & | rotateZ (float a) |
BasicVector3D< float > & | rotate (float a, const BasicVector3D< float > &v) |
double | pseudoRapidity () const |
void | setEta (double a) |
double | angle (const BasicVector3D< double > &v) const |
BasicVector3D< double > & | rotateX (double a) |
BasicVector3D< double > & | rotateY (double a) |
BasicVector3D< double > & | rotateZ (double a) |
BasicVector3D< double > & | rotate (double a, const BasicVector3D< double > &v) |
Protected Member Functions | |
BasicVector3D () | |
Protected Attributes | |
T | v_ [3] |
Base class for Point3D<T>, Vector3D<T> and Normal3D<T>. It defines only common functionality for those classes and should not be used as separate class.
Definition at line 29 of file BasicVector3D.h.
anonymous enum |
Safe indexing of the coordinates when using with matrices, arrays, etc.
Enumerator | |
---|---|
X | index for x-component |
Y | index for y-component |
Z | index for z-component |
NUM_COORDINATES | number of components |
SIZE | number of components |
Definition at line 43 of file BasicVector3D.h.
|
inlineprotected |
Default constructor. It is protected - this class should not be instantiated directly.
Definition at line 37 of file BasicVector3D.h.
|
inline |
Constructor from three numbers.
Definition at line 53 of file BasicVector3D.h.
|
default |
Copy constructor.
|
inline |
Constructor for BasicVector3D<double> from BasicVector3D<float>.
Definition at line 63 of file BasicVector3D.h.
|
default |
Move constructor.
|
virtualdefault |
Destructor.
double HepGeom::BasicVector3D< double >::angle | ( | const BasicVector3D< double > & | v | ) | const |
Definition at line 193 of file BasicVector3D.cc.
float HepGeom::BasicVector3D< float >::angle | ( | const BasicVector3D< float > & | v | ) | const |
Definition at line 37 of file BasicVector3D.cc.
T HepGeom::BasicVector3D< T >::angle | ( | const BasicVector3D< T > & | v | ) | const |
Returns angle w.r.t. another vector.
|
inline |
Gets cosine of polar angle.
Definition at line 219 of file BasicVector3D.h.
|
inline |
Vector product.
Definition at line 283 of file BasicVector3D.h.
Referenced by HepGeom::Transform3D::Transform3D().
|
inline |
Scalar product.
Definition at line 277 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::operator*(), and HepGeom::BasicVector3D< T >::perp2().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Gets magnitude of the vector.
Definition at line 203 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::angle(), HepGeom::BasicVector3D< T >::cosTheta(), HepGeom::BasicVector3D< T >::r(), HepGeom::BasicVector3D< T >::setMag(), HepGeom::BasicVector3D< T >::setTheta(), and HepGeom::BasicVector3D< T >::unit().
|
inline |
Gets magnitude squared of the vector.
Definition at line 200 of file BasicVector3D.h.
Referenced by HepGeom::Point3D< float >::distance2(), HepGeom::Point3D< double >::distance2(), HepGeom::BasicVector3D< T >::mag(), and HepGeom::BasicVector3D< T >::perp2().
|
inline |
Conversion (cast) to CLHEP::Hep3Vector. This operator is needed only for backward compatibility and in principle should not exit.
Definition at line 92 of file BasicVector3D.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Multiplication by scalar.
Definition at line 116 of file BasicVector3D.h.
|
inline |
Addition.
Definition at line 106 of file BasicVector3D.h.
|
inline |
Subtraction.
Definition at line 111 of file BasicVector3D.h.
|
inline |
Division by scalar.
Definition at line 121 of file BasicVector3D.h.
|
default |
Move assignment.
|
default |
|
inline |
|
inline |
|
inline |
Returns orthogonal vector.
Definition at line 320 of file BasicVector3D.h.
|
inline |
Gets transverse component.
Definition at line 180 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::rho(), HepGeom::BasicVector3D< T >::setPerp(), HepGeom::BasicVector3D< T >::setPhi(), and HepGeom::BasicVector3D< T >::theta().
|
inline |
Returns transverse component w.r.t. given axis.
Definition at line 298 of file BasicVector3D.h.
|
inline |
Gets transverse component squared.
Definition at line 177 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::perp().
|
inline |
Returns transverse component w.r.t. given axis squared.
Definition at line 291 of file BasicVector3D.h.
|
inline |
Gets azimuth angle.
Definition at line 209 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::getPhi(), main(), and HepGeom::BasicVector3D< T >::setTheta().
T HepGeom::BasicVector3D< T >::pseudoRapidity | ( | ) | const |
Gets pseudo-rapidity: -ln(tan(theta/2))
Referenced by HepGeom::BasicVector3D< T >::eta(), and HepGeom::BasicVector3D< T >::getEta().
float HepGeom::BasicVector3D< float >::pseudoRapidity | ( | ) | const |
Definition at line 14 of file BasicVector3D.cc.
double HepGeom::BasicVector3D< double >::pseudoRapidity | ( | ) | const |
Definition at line 170 of file BasicVector3D.cc.
|
inline |
Gets r-component in spherical coordinate system
Definition at line 206 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::getR().
|
inline |
BasicVector3D< double > & HepGeom::BasicVector3D< double >::rotate | ( | double | a, |
const BasicVector3D< double > & | v | ||
) |
Definition at line 234 of file BasicVector3D.cc.
BasicVector3D< float > & HepGeom::BasicVector3D< float >::rotate | ( | float | a, |
const BasicVector3D< float > & | v | ||
) |
Definition at line 78 of file BasicVector3D.cc.
BasicVector3D< T > & HepGeom::BasicVector3D< T >::rotate | ( | T | a, |
const BasicVector3D< T > & | v | ||
) |
Rotates around the axis specified by another vector.
BasicVector3D< double > & HepGeom::BasicVector3D< double >::rotateX | ( | double | a | ) |
Definition at line 206 of file BasicVector3D.cc.
BasicVector3D< float > & HepGeom::BasicVector3D< float >::rotateX | ( | float | a | ) |
BasicVector3D< T > & HepGeom::BasicVector3D< T >::rotateX | ( | T | a | ) |
Rotates around x-axis.
BasicVector3D< double > & HepGeom::BasicVector3D< double >::rotateY | ( | double | a | ) |
Definition at line 215 of file BasicVector3D.cc.
BasicVector3D< float > & HepGeom::BasicVector3D< float >::rotateY | ( | float | a | ) |
BasicVector3D< T > & HepGeom::BasicVector3D< T >::rotateY | ( | T | a | ) |
Rotates around y-axis.
BasicVector3D< double > & HepGeom::BasicVector3D< double >::rotateZ | ( | double | a | ) |
BasicVector3D< float > & HepGeom::BasicVector3D< float >::rotateZ | ( | float | a | ) |
BasicVector3D< T > & HepGeom::BasicVector3D< T >::rotateZ | ( | T | a | ) |
Rotates around z-axis.
|
inline |
Sets components in cartesian coordinate system.
Definition at line 169 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::setTheta().
void HepGeom::BasicVector3D< double >::setEta | ( | double | a | ) |
Definition at line 180 of file BasicVector3D.cc.
void HepGeom::BasicVector3D< float >::setEta | ( | float | a | ) |
Definition at line 24 of file BasicVector3D.cc.
void HepGeom::BasicVector3D< T >::setEta | ( | T | a | ) |
Sets pseudo-rapidity, keeping magnitude and phi fixed.
|
inline |
Sets magnitude.
Definition at line 233 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::setR().
|
inline |
Sets transverse component keeping phi and z constant.
Definition at line 187 of file BasicVector3D.h.
|
inline |
Sets phi-component in spherical coordinate system.
Definition at line 244 of file BasicVector3D.h.
|
inline |
Sets r-component in spherical coordinate system.
Definition at line 241 of file BasicVector3D.h.
|
inline |
Sets theta-component in spherical coordinate system.
Definition at line 247 of file BasicVector3D.h.
|
inline |
Sets x-component in cartesian coordinate system.
Definition at line 159 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::operator>>(), and HepGeom::BasicVector3D< T >::setPhi().
|
inline |
Sets y-component in cartesian coordinate system.
Definition at line 162 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::operator>>(), and HepGeom::BasicVector3D< T >::setPhi().
|
inline |
Sets z-component in cartesian coordinate system.
Definition at line 165 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::operator>>().
|
inline |
Gets polar angle.
Definition at line 214 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::getTheta(), and main().
|
inline |
Returns unit vector parallel to this.
Definition at line 312 of file BasicVector3D.h.
Referenced by main().
|
inline |
Gets x-component in cartesian coordinate system.
Definition at line 149 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::BasicVector3D(), HepGeom::BasicVector3D< T >::cross(), HepGeom::Plane3D< T >::distance(), HepGeom::Point3D< double >::distance2(), HepGeom::Point3D< float >::distance2(), HepGeom::BasicVector3D< T >::dot(), HepGeom::BasicVector3D< T >::mag2(), main(), HepGeom::BasicVector3D< T >::operator CLHEP::Hep3Vector(), HepGeom::Normal3D< double >::operator CLHEP::Hep3Vector(), HepGeom::Point3D< double >::operator CLHEP::Hep3Vector(), HepGeom::Vector3D< double >::operator CLHEP::Hep3Vector(), HepGeom::BasicVector3D< T >::operator!=(), HepGeom::BasicVector3D< T >::operator*(), HepGeom::Normal3D< T >::operator*(), HepGeom::Point3D< T >::operator*(), HepGeom::Vector3D< T >::operator*(), HepGeom::BasicVector3D< T >::operator+(), HepGeom::BasicVector3D< T >::operator-(), HepGeom::BasicVector3D< T >::operator/(), HepGeom::BasicVector3D< T >::operator<<(), HepGeom::BasicVector3D< T >::operator==(), HepGeom::BasicVector3D< T >::orthogonal(), HepGeom::BasicVector3D< T >::perp2(), HepGeom::BasicVector3D< T >::phi(), HepGeom::Plane3D< T >::point(), HepGeom::BasicVector3D< T >::rotate(), HepGeom::Rotate3D::Rotate3D(), HepGeom::BasicVector3D< T >::theta(), HepGeom::Transform3D::Transform3D(), and HepGeom::BasicVector3D< T >::unit().
|
inline |
Gets y-component in cartesian coordinate system.
Definition at line 152 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::BasicVector3D(), HepGeom::BasicVector3D< T >::cross(), HepGeom::Plane3D< T >::distance(), HepGeom::Point3D< double >::distance2(), HepGeom::Point3D< float >::distance2(), HepGeom::BasicVector3D< T >::dot(), HepGeom::BasicVector3D< T >::mag2(), main(), HepGeom::BasicVector3D< T >::operator CLHEP::Hep3Vector(), HepGeom::Normal3D< double >::operator CLHEP::Hep3Vector(), HepGeom::Point3D< double >::operator CLHEP::Hep3Vector(), HepGeom::Vector3D< double >::operator CLHEP::Hep3Vector(), HepGeom::BasicVector3D< T >::operator!=(), HepGeom::BasicVector3D< T >::operator*(), HepGeom::Normal3D< T >::operator*(), HepGeom::Point3D< T >::operator*(), HepGeom::Vector3D< T >::operator*(), HepGeom::BasicVector3D< T >::operator+(), HepGeom::BasicVector3D< T >::operator-(), HepGeom::BasicVector3D< T >::operator/(), HepGeom::BasicVector3D< T >::operator<<(), HepGeom::BasicVector3D< T >::operator==(), HepGeom::BasicVector3D< T >::orthogonal(), HepGeom::BasicVector3D< T >::perp2(), HepGeom::BasicVector3D< T >::phi(), HepGeom::Plane3D< T >::point(), HepGeom::BasicVector3D< T >::rotate(), HepGeom::Rotate3D::Rotate3D(), HepGeom::BasicVector3D< T >::theta(), HepGeom::Transform3D::Transform3D(), and HepGeom::BasicVector3D< T >::unit().
|
inline |
Gets z-component in cartesian coordinate system.
Definition at line 155 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::BasicVector3D(), HepGeom::BasicVector3D< T >::cosTheta(), HepGeom::BasicVector3D< T >::cross(), HepGeom::Plane3D< T >::distance(), HepGeom::Point3D< double >::distance2(), HepGeom::Point3D< float >::distance2(), HepGeom::BasicVector3D< T >::dot(), HepGeom::BasicVector3D< T >::mag2(), main(), HepGeom::BasicVector3D< T >::operator CLHEP::Hep3Vector(), HepGeom::Normal3D< double >::operator CLHEP::Hep3Vector(), HepGeom::Point3D< double >::operator CLHEP::Hep3Vector(), HepGeom::Vector3D< double >::operator CLHEP::Hep3Vector(), HepGeom::BasicVector3D< T >::operator!=(), HepGeom::BasicVector3D< T >::operator*(), HepGeom::Normal3D< T >::operator*(), HepGeom::Point3D< T >::operator*(), HepGeom::Vector3D< T >::operator*(), HepGeom::BasicVector3D< T >::operator+(), HepGeom::BasicVector3D< T >::operator-(), HepGeom::BasicVector3D< T >::operator/(), HepGeom::BasicVector3D< T >::operator<<(), HepGeom::BasicVector3D< T >::operator==(), HepGeom::BasicVector3D< T >::orthogonal(), HepGeom::Plane3D< T >::point(), HepGeom::BasicVector3D< T >::rotate(), HepGeom::Rotate3D::Rotate3D(), HepGeom::BasicVector3D< T >::theta(), HepGeom::Transform3D::Transform3D(), and HepGeom::BasicVector3D< T >::unit().
|
related |
|
related |
|
related |
Scalar product of two vectors.
Definition at line 527 of file BasicVector3D.h.
|
related |
Multiplication vector by scalar.
Definition at line 518 of file BasicVector3D.h.
|
related |
Scalar product of two vectors.
Definition at line 419 of file BasicVector3D.h.
|
related |
Multiplication vector by scalar.
Definition at line 410 of file BasicVector3D.h.
|
related |
Multiplication scalar by vector.
Definition at line 536 of file BasicVector3D.h.
|
related |
Multiplication scalar by vector.
Definition at line 428 of file BasicVector3D.h.
|
related |
|
related |
|
related |
|
related |
|
related |
|
related |
Unary minus.
Definition at line 500 of file BasicVector3D.h.
|
related |
|
related |
Unary minus.
Definition at line 392 of file BasicVector3D.h.
|
related |
Division vector by scalar.
Definition at line 545 of file BasicVector3D.h.
|
related |
Division vector by scalar.
Definition at line 437 of file BasicVector3D.h.
|
related |
Output to stream.
Definition at line 263 of file BasicVector3D.cc.
|
related |
Output to stream.
Definition at line 107 of file BasicVector3D.cc.
|
related |
|
related |
|
related |
Input from stream.
Definition at line 271 of file BasicVector3D.cc.
|
related |
Input from stream.
Definition at line 115 of file BasicVector3D.cc.
|
protected |
Definition at line 31 of file BasicVector3D.h.
Referenced by HepGeom::BasicVector3D< T >::BasicVector3D(), HepGeom::BasicVector3D< double >::operator const double *(), HepGeom::BasicVector3D< double >::operator double *(), HepGeom::BasicVector3D< T >::operator()(), HepGeom::BasicVector3D< T >::operator*=(), HepGeom::BasicVector3D< T >::operator+=(), HepGeom::BasicVector3D< T >::operator-=(), HepGeom::BasicVector3D< T >::operator/=(), HepGeom::BasicVector3D< T >::operator[](), HepGeom::BasicVector3D< T >::set(), HepGeom::BasicVector3D< T >::setMag(), HepGeom::BasicVector3D< T >::setPerp(), HepGeom::BasicVector3D< T >::setX(), HepGeom::BasicVector3D< T >::setY(), HepGeom::BasicVector3D< T >::setZ(), HepGeom::BasicVector3D< T >::x(), HepGeom::BasicVector3D< T >::y(), and HepGeom::BasicVector3D< T >::z().