Logo ROOT   6.19/01
Reference Guide
ROOT::Math::DisplacementVector3D< CoordSystem, Tag > Class Template Reference

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
class ROOT::Math::DisplacementVector3D< CoordSystem, Tag >


Class describing a generic displacement vector in 3 dimensions.

Class template describing a 3D displacement vector.

This class is templated on the type of Coordinate system. One example is the XYZVector which is a vector based on double precision x,y,z data members by using the ROOT::Math::Cartesian3D<double> Coordinate system. The class is having also an extra template parameter, the coordinate system tag, to be able to identify (tag) vector described in different reference coordinate system, like global or local coordinate systems.

Definition at line 67 of file DisplacementVector3D.h.

Public Types

typedef Tag CoordinateSystemTag
 
typedef CoordSystem CoordinateType
 
typedef CoordSystem::Scalar Scalar
 

Public Member Functions

 DisplacementVector3D ()
 Default constructor. More...
 
 DisplacementVector3D (Scalar a, Scalar b, Scalar c)
 Construct from three values of type Scalar. More...
 
template<class OtherCoords >
 DisplacementVector3D (const DisplacementVector3D< OtherCoords, Tag > &v)
 Construct from a displacement vector expressed in different coordinates, or using a different Scalar type, but with same coordinate system tag. More...
 
template<class OtherCoords >
 DisplacementVector3D (const PositionVector3D< OtherCoords, Tag > &p)
 Construct from a position vector expressed in different coordinates but with the same coordinate system tag. More...
 
template<class ForeignVector >
 DisplacementVector3D (const ForeignVector &v)
 Construct from a foreign 3D vector type, for example, Hep3Vector Precondition: v must implement methods x(), y() and z() More...
 
CoordSystem Coordinates () const
 Retrieve a copy of the coordinates object. More...
 
template<class OtherCoords >
DisplacementVector3D Cross (const DisplacementVector3D< OtherCoords, Tag > &v) const
 
Return vector (cross) product of two displacement vectors, as a vector in the coordinate system of this class. More...
 
template<class OtherVector >
DisplacementVector3D Cross (const OtherVector &v) const
 Return vector (cross) product of two vectors, as a vector in the coordinate system of this class. More...
 
template<class OtherCoords >
Scalar Dot (const DisplacementVector3D< OtherCoords, Tag > &v) const
 
Return the scalar (dot) product of two displacement vectors. More...
 
template<class OtherVector >
Scalar Dot (const OtherVector &v) const
 Return the scalar (dot) product of two vectors. More...
 
Scalar Eta () const
 Polar eta, converting if necessary from internal coordinate system. More...
 
Scalar eta () const
 
void GetCoordinates (Scalar &a, Scalar &b, Scalar &c) const
 get internal data into 3 Scalar numbers More...
 
void GetCoordinates (Scalar dest[]) const
 get internal data into a C-style array of 3 Scalar numbers More...
 
template<class IT >
void GetCoordinates (IT begin, IT end) const
 get internal data into 3 Scalars at *begin to *end (3 past begin) More...
 
template<class IT >
void GetCoordinates (IT begin) const
 get internal data into 3 Scalars starting at *begin More...
 
Scalar Mag2 () const
 Magnitute squared ( r^2 in spherical coordinate) More...
 
Scalar mag2 () const
 
bool operator!= (const DisplacementVector3D &rhs) const
 
DisplacementVector3D operator* (Scalar a) const
 Multiply a vector by a real number. More...
 
DisplacementVector3Doperator*= (Scalar a)
 multiply this vector by a scalar quantity More...
 
DisplacementVector3D operator+ () const
 Positive of the vector, return itself. More...
 
template<class OtherCoords >
DisplacementVector3Doperator+= (const DisplacementVector3D< OtherCoords, Tag > &v)
 Self Addition with a displacement vector. More...
 
DisplacementVector3D operator- () const
 Negative of the vector. More...
 
template<class OtherCoords >
DisplacementVector3Doperator-= (const DisplacementVector3D< OtherCoords, Tag > &v)
 Self Difference with a displacement vector. More...
 
DisplacementVector3D operator/ (Scalar a) const
 Division of a vector with a real number. More...
 
DisplacementVector3Doperator/= (Scalar a)
 divide this vector by a scalar quantity More...
 
template<class OtherCoords >
DisplacementVector3Doperator= (const DisplacementVector3D< OtherCoords, Tag > &v)
 Assignment operator from a displacement vector of arbitrary type. More...
 
template<class OtherCoords >
DisplacementVector3Doperator= (const PositionVector3D< OtherCoords, Tag > &rhs)
 Assignment operator from a position vector (not necessarily efficient unless one or the other is Cartesian) More...
 
template<class ForeignVector >
DisplacementVector3Doperator= (const ForeignVector &v)
 Assignment from a foreign 3D vector type, for example, Hep3Vector Precondition: v must implement methods x(), y() and z() More...
 
bool operator== (const DisplacementVector3D &rhs) const
 Exact equality. More...
 
Scalar Perp2 () const
 Transverse component squared (rho^2 in cylindrical coordinates. More...
 
Scalar perp2 () const
 
Scalar Phi () const
 Polar phi, converting if necessary from internal coordinate system. More...
 
Scalar phi () const
 
Scalar R () const
 Polar R, converting if necessary from internal coordinate system. More...
 
Scalar r () const
 
Scalar Rho () const
 Cylindrical transverse component rho. More...
 
Scalar rho () const
 
DisplacementVector3D< CoordSystem, Tag > & SetCoordinates (const Scalar src[])
 Set internal data based on a C-style array of 3 Scalar numbers. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetCoordinates (Scalar a, Scalar b, Scalar c)
 Set internal data based on 3 Scalar numbers. More...
 
template<class IT >
DisplacementVector3D< CoordSystem, Tag > & SetCoordinates (IT begin, IT end)
 Set internal data based on 3 Scalars at *begin to *end. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetEta (Scalar etaval)
 Change Eta - CylindricalEta3D coordinates only. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetPhi (Scalar ang)
 Change Phi - Polar3D or CylindricalEta3D coordinates. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetR (Scalar rr)
 Change R - Polar3D coordinates only. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetRho (Scalar rr)
 Change Rho - CylindricalEta3D coordinates only. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetTheta (Scalar ang)
 Change Theta - Polar3D coordinates only. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetX (Scalar xx)
 Change X - Cartesian3D coordinates only. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetXYZ (Scalar a, Scalar b, Scalar c)
 set the values of the vector from the cartesian components (x,y,z) (if the vector is held in polar or cylindrical eta coordinates, then (x, y, z) are converted to that form) More...
 
DisplacementVector3D< CoordSystem, Tag > & SetY (Scalar yy)
 Change Y - Cartesian3D coordinates only. More...
 
DisplacementVector3D< CoordSystem, Tag > & SetZ (Scalar zz)
 Change Z - Cartesian3D coordinates only. More...
 
Scalar Theta () const
 Polar theta, converting if necessary from internal coordinate system. More...
 
Scalar theta () const
 
template<typename SCALAR = Scalar, typename std::enable_if< std::is_arithmetic< SCALAR >::value >::type * = nullptr>
DisplacementVector3D Unit () const
 return unit vector parallel to this (scalar) More...
 
template<typename SCALAR = Scalar, typename std::enable_if<!std::is_arithmetic< SCALAR >::value >::type * = nullptr>
DisplacementVector3D Unit () const
 return unit vector parallel to this (vector) More...
 
DisplacementVector3D unit () const
 
Scalar X () const
 Cartesian X, converting if necessary from internal coordinate system. More...
 
Scalar x () const
 
Scalar Y () const
 Cartesian Y, converting if necessary from internal coordinate system. More...
 
Scalar y () const
 
Scalar Z () const
 Cartesian Z, converting if necessary from internal coordinate system. More...
 
Scalar z () const
 

Private Member Functions

template<class OtherCoords , class OtherTag >
 DisplacementVector3D (const DisplacementVector3D< OtherCoords, OtherTag > &)
 
template<class OtherCoords , class OtherTag >
 DisplacementVector3D (const PositionVector3D< OtherCoords, OtherTag > &)
 
template<class OtherCoords , class OtherTag >
DisplacementVector3D Cross (const DisplacementVector3D< OtherCoords, OtherTag > &) const
 
template<class OtherCoords , class OtherTag >
Scalar Dot (const DisplacementVector3D< OtherCoords, OtherTag > &) const
 
template<class OtherCoords , class OtherTag >
DisplacementVector3Doperator+= (const DisplacementVector3D< OtherCoords, OtherTag > &)
 
template<class OtherCoords , class OtherTag >
DisplacementVector3Doperator-= (const DisplacementVector3D< OtherCoords, OtherTag > &)
 
template<class OtherCoords , class OtherTag >
DisplacementVector3Doperator= (const DisplacementVector3D< OtherCoords, OtherTag > &)
 
template<class OtherCoords , class OtherTag >
DisplacementVector3Doperator= (const PositionVector3D< OtherCoords, OtherTag > &)
 

Private Attributes

CoordSystem fCoordinates
 

#include <Math/GenVector/DisplacementVector3D.h>

Member Typedef Documentation

◆ CoordinateSystemTag

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
typedef Tag ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::CoordinateSystemTag

Definition at line 73 of file DisplacementVector3D.h.

◆ CoordinateType

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
typedef CoordSystem ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::CoordinateType

Definition at line 72 of file DisplacementVector3D.h.

◆ Scalar

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
typedef CoordSystem::Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Scalar

Definition at line 71 of file DisplacementVector3D.h.

Constructor & Destructor Documentation

◆ DisplacementVector3D() [1/7]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::DisplacementVector3D ( )
inline

Default constructor.

Construct an empty object with zero values

Definition at line 80 of file DisplacementVector3D.h.

◆ DisplacementVector3D() [2/7]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::DisplacementVector3D ( Scalar  a,
Scalar  b,
Scalar  c 
)
inline

Construct from three values of type Scalar.

In the case of a XYZVector the values are x,y,z In the case of a polar vector they are r,theta, phi

Definition at line 88 of file DisplacementVector3D.h.

◆ DisplacementVector3D() [3/7]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords >
ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::DisplacementVector3D ( const DisplacementVector3D< OtherCoords, Tag > &  v)
inlineexplicit

Construct from a displacement vector expressed in different coordinates, or using a different Scalar type, but with same coordinate system tag.

Definition at line 96 of file DisplacementVector3D.h.

◆ DisplacementVector3D() [4/7]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords >
ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::DisplacementVector3D ( const PositionVector3D< OtherCoords, Tag > &  p)
inlineexplicit

Construct from a position vector expressed in different coordinates but with the same coordinate system tag.

Definition at line 105 of file DisplacementVector3D.h.

◆ DisplacementVector3D() [5/7]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class ForeignVector >
ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::DisplacementVector3D ( const ForeignVector &  v)
inlineexplicit

Construct from a foreign 3D vector type, for example, Hep3Vector Precondition: v must implement methods x(), y() and z()

Definition at line 114 of file DisplacementVector3D.h.

◆ DisplacementVector3D() [6/7]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords , class OtherTag >
ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::DisplacementVector3D ( const DisplacementVector3D< OtherCoords, OtherTag > &  )
inlineexplicitprivate

Definition at line 556 of file DisplacementVector3D.h.

◆ DisplacementVector3D() [7/7]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords , class OtherTag >
ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::DisplacementVector3D ( const PositionVector3D< OtherCoords, OtherTag > &  )
inlineexplicitprivate

Definition at line 559 of file DisplacementVector3D.h.

Member Function Documentation

◆ Coordinates()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
CoordSystem ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Coordinates ( ) const
inline

Retrieve a copy of the coordinates object.

Definition at line 191 of file DisplacementVector3D.h.

◆ Cross() [1/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords >
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Cross ( const DisplacementVector3D< OtherCoords, Tag > &  v) const
inline


Return vector (cross) product of two displacement vectors, as a vector in the coordinate system of this class.

It is possible to perform the product for any type of vector coordinates, but they must have the same coordinate system tag

Definition at line 430 of file DisplacementVector3D.h.

◆ Cross() [2/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherVector >
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Cross ( const OtherVector &  v) const
inline

Return vector (cross) product of two vectors, as a vector in the coordinate system of this class.

It is possible to perform the product for any classes implementing X(), Y() and Z() member functions

Definition at line 444 of file DisplacementVector3D.h.

◆ Cross() [3/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords , class OtherTag >
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Cross ( const DisplacementVector3D< OtherCoords, OtherTag > &  ) const
private

◆ Dot() [1/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords >
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Dot ( const DisplacementVector3D< OtherCoords, Tag > &  v) const
inline


Return the scalar (dot) product of two displacement vectors.

It is possible to perform the product for any type of vector coordinates, but they must have the same coordinate system tag

Definition at line 410 of file DisplacementVector3D.h.

◆ Dot() [2/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherVector >
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Dot ( const OtherVector &  v) const
inline

Return the scalar (dot) product of two vectors.

It is possible to perform the product for any classes implementing x(), y() and z() member functions

Definition at line 419 of file DisplacementVector3D.h.

◆ Dot() [3/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords , class OtherTag >
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Dot ( const DisplacementVector3D< OtherCoords, OtherTag > &  ) const
private

◆ Eta()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Eta ( ) const
inline

Polar eta, converting if necessary from internal coordinate system.

Definition at line 318 of file DisplacementVector3D.h.

◆ eta()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::eta ( ) const
inline

Definition at line 533 of file DisplacementVector3D.h.

◆ GetCoordinates() [1/4]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
void ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::GetCoordinates ( Scalar a,
Scalar b,
Scalar c 
) const
inline

get internal data into 3 Scalar numbers

Definition at line 225 of file DisplacementVector3D.h.

◆ GetCoordinates() [2/4]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
void ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::GetCoordinates ( Scalar  dest[]) const
inline

get internal data into a C-style array of 3 Scalar numbers

Definition at line 231 of file DisplacementVector3D.h.

◆ GetCoordinates() [3/4]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class IT >
void ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::GetCoordinates ( IT  begin,
IT  end 
) const
inline

get internal data into 3 Scalars at *begin to *end (3 past begin)

Definition at line 239 of file DisplacementVector3D.h.

◆ GetCoordinates() [4/4]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class IT >
void ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::GetCoordinates ( IT  begin) const
inline

get internal data into 3 Scalars starting at *begin

Definition at line 251 of file DisplacementVector3D.h.

◆ Mag2()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Mag2 ( ) const
inline

Magnitute squared ( r^2 in spherical coordinate)

Definition at line 330 of file DisplacementVector3D.h.

◆ mag2()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::mag2 ( ) const
inline

Definition at line 535 of file DisplacementVector3D.h.

◆ operator!=()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
bool ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator!= ( const DisplacementVector3D< CoordSystem, Tag > &  rhs) const
inline

Definition at line 279 of file DisplacementVector3D.h.

◆ operator*()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator* ( Scalar  a) const
inline

Multiply a vector by a real number.

Definition at line 497 of file DisplacementVector3D.h.

◆ operator*=()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator*= ( Scalar  a)
inline

multiply this vector by a scalar quantity

Definition at line 478 of file DisplacementVector3D.h.

◆ operator+()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator+ ( ) const
inline

Positive of the vector, return itself.

Definition at line 513 of file DisplacementVector3D.h.

◆ operator+=() [1/2]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator+= ( const DisplacementVector3D< OtherCoords, Tag > &  v)
inline

Self Addition with a displacement vector.

Definition at line 459 of file DisplacementVector3D.h.

◆ operator+=() [2/2]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords , class OtherTag >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator+= ( const DisplacementVector3D< OtherCoords, OtherTag > &  )
private

◆ operator-()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator- ( ) const
inline

Negative of the vector.

Definition at line 506 of file DisplacementVector3D.h.

◆ operator-=() [1/2]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator-= ( const DisplacementVector3D< OtherCoords, Tag > &  v)
inline

Self Difference with a displacement vector.

Definition at line 469 of file DisplacementVector3D.h.

◆ operator-=() [2/2]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords , class OtherTag >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator-= ( const DisplacementVector3D< OtherCoords, OtherTag > &  )
private

◆ operator/()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator/ ( Scalar  a) const
inline

Division of a vector with a real number.

Definition at line 518 of file DisplacementVector3D.h.

◆ operator/=()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator/= ( Scalar  a)
inline

divide this vector by a scalar quantity

Definition at line 486 of file DisplacementVector3D.h.

◆ operator=() [1/5]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator= ( const DisplacementVector3D< OtherCoords, Tag > &  v)
inline

Assignment operator from a displacement vector of arbitrary type.

Definition at line 142 of file DisplacementVector3D.h.

◆ operator=() [2/5]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator= ( const PositionVector3D< OtherCoords, Tag > &  rhs)
inline

Assignment operator from a position vector (not necessarily efficient unless one or the other is Cartesian)

Definition at line 153 of file DisplacementVector3D.h.

◆ operator=() [3/5]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class ForeignVector >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator= ( const ForeignVector &  v)
inline

Assignment from a foreign 3D vector type, for example, Hep3Vector Precondition: v must implement methods x(), y() and z()

Definition at line 164 of file DisplacementVector3D.h.

◆ operator=() [4/5]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords , class OtherTag >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator= ( const DisplacementVector3D< OtherCoords, OtherTag > &  )
private

◆ operator=() [5/5]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class OtherCoords , class OtherTag >
DisplacementVector3D& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator= ( const PositionVector3D< OtherCoords, OtherTag > &  )
private

◆ operator==()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
bool ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::operator== ( const DisplacementVector3D< CoordSystem, Tag > &  rhs) const
inline

Exact equality.

Definition at line 276 of file DisplacementVector3D.h.

◆ Perp2()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Perp2 ( ) const
inline

Transverse component squared (rho^2 in cylindrical coordinates.

Definition at line 335 of file DisplacementVector3D.h.

◆ perp2()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::perp2 ( ) const
inline

Definition at line 536 of file DisplacementVector3D.h.

◆ Phi()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Phi ( ) const
inline

Polar phi, converting if necessary from internal coordinate system.

Definition at line 313 of file DisplacementVector3D.h.

◆ phi()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::phi ( ) const
inline

Definition at line 532 of file DisplacementVector3D.h.

◆ R()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::R ( ) const
inline

Polar R, converting if necessary from internal coordinate system.

Definition at line 303 of file DisplacementVector3D.h.

◆ r()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::r ( ) const
inline

Definition at line 530 of file DisplacementVector3D.h.

◆ Rho()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Rho ( ) const
inline

Cylindrical transverse component rho.

Definition at line 323 of file DisplacementVector3D.h.

◆ rho()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::rho ( ) const
inline

Definition at line 534 of file DisplacementVector3D.h.

◆ SetCoordinates() [1/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetCoordinates ( const Scalar  src[])
inline

Set internal data based on a C-style array of 3 Scalar numbers.

Definition at line 198 of file DisplacementVector3D.h.

◆ SetCoordinates() [2/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetCoordinates ( Scalar  a,
Scalar  b,
Scalar  c 
)
inline

Set internal data based on 3 Scalar numbers.

Definition at line 204 of file DisplacementVector3D.h.

◆ SetCoordinates() [3/3]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<class IT >
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetCoordinates ( IT  begin,
IT  end 
)
inline

Set internal data based on 3 Scalars at *begin to *end.

Definition at line 212 of file DisplacementVector3D.h.

◆ SetEta()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetEta ( Scalar  etaval)
inline

Change Eta - CylindricalEta3D coordinates only.

Definition at line 398 of file DisplacementVector3D.h.

◆ SetPhi()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetPhi ( Scalar  ang)
inline

Change Phi - Polar3D or CylindricalEta3D coordinates.

Definition at line 388 of file DisplacementVector3D.h.

◆ SetR()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetR ( Scalar  rr)
inline

Change R - Polar3D coordinates only.

Definition at line 378 of file DisplacementVector3D.h.

◆ SetRho()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetRho ( Scalar  rr)
inline

Change Rho - CylindricalEta3D coordinates only.

Definition at line 393 of file DisplacementVector3D.h.

◆ SetTheta()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetTheta ( Scalar  ang)
inline

Change Theta - Polar3D coordinates only.

Definition at line 383 of file DisplacementVector3D.h.

◆ SetX()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetX ( Scalar  xx)
inline

Change X - Cartesian3D coordinates only.

Definition at line 363 of file DisplacementVector3D.h.

◆ SetXYZ()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetXYZ ( Scalar  a,
Scalar  b,
Scalar  c 
)
inline

set the values of the vector from the cartesian components (x,y,z) (if the vector is held in polar or cylindrical eta coordinates, then (x, y, z) are converted to that form)

Definition at line 266 of file DisplacementVector3D.h.

◆ SetY()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetY ( Scalar  yy)
inline

Change Y - Cartesian3D coordinates only.

Definition at line 368 of file DisplacementVector3D.h.

◆ SetZ()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D<CoordSystem, Tag>& ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::SetZ ( Scalar  zz)
inline

Change Z - Cartesian3D coordinates only.

Definition at line 373 of file DisplacementVector3D.h.

◆ Theta()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Theta ( ) const
inline

Polar theta, converting if necessary from internal coordinate system.

Definition at line 308 of file DisplacementVector3D.h.

◆ theta()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::theta ( ) const
inline

Definition at line 531 of file DisplacementVector3D.h.

◆ Unit() [1/2]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<typename SCALAR = Scalar, typename std::enable_if< std::is_arithmetic< SCALAR >::value >::type * = nullptr>
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Unit ( ) const
inline

return unit vector parallel to this (scalar)

Definition at line 341 of file DisplacementVector3D.h.

◆ Unit() [2/2]

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
template<typename SCALAR = Scalar, typename std::enable_if<!std::is_arithmetic< SCALAR >::value >::type * = nullptr>
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Unit ( ) const
inline

return unit vector parallel to this (vector)

Definition at line 351 of file DisplacementVector3D.h.

◆ unit()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
DisplacementVector3D ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::unit ( ) const
inline

Definition at line 537 of file DisplacementVector3D.h.

◆ X()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::X ( ) const
inline

Cartesian X, converting if necessary from internal coordinate system.

Definition at line 288 of file DisplacementVector3D.h.

◆ x()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::x ( ) const
inline

Definition at line 527 of file DisplacementVector3D.h.

◆ Y()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Y ( ) const
inline

Cartesian Y, converting if necessary from internal coordinate system.

Definition at line 293 of file DisplacementVector3D.h.

◆ y()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::y ( ) const
inline

Definition at line 528 of file DisplacementVector3D.h.

◆ Z()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::Z ( ) const
inline

Cartesian Z, converting if necessary from internal coordinate system.

Definition at line 298 of file DisplacementVector3D.h.

◆ z()

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
Scalar ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::z ( ) const
inline

Definition at line 529 of file DisplacementVector3D.h.

Member Data Documentation

◆ fCoordinates

template<class CoordSystem, class Tag = DefaultCoordinateSystemTag>
CoordSystem ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::fCoordinates
private

Definition at line 542 of file DisplacementVector3D.h.


The documentation for this class was generated from the following file: