ROOT 6.10/09 Reference Guide |
Class describing a generic position vector (point) in 3 dimensions.
Class describing a 3D Position vector.
This class is templated on the type of Coordinate system. One example is the XYZPoint 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 53 of file PositionVector3D.h.
Public Types | |
typedef Tag | CoordinateSystemTag |
typedef CoordSystem | CoordinateType |
typedef CoordSystem::Scalar | Scalar |
Public Member Functions | |
PositionVector3D () | |
Default constructor. More... | |
PositionVector3D (const Scalar &a, const Scalar &b, const Scalar &c) | |
Construct from three values of type Scalar. More... | |
template<class T > | |
PositionVector3D (const PositionVector3D< T, Tag > &v) | |
Construct from a position vector expressed in different coordinates, or using a different Scalar type. More... | |
template<class T > | |
PositionVector3D (const DisplacementVector3D< T, Tag > &p) | |
Construct from an arbitrary displacement vector. More... | |
template<class ForeignVector > | |
PositionVector3D (const ForeignVector &v) | |
Construct from a foreign 3D vector type, for example, Hep3Vector Precondition: v must implement methods x(), y() and z() More... | |
const CoordSystem & | Coordinates () const |
Retrieve a copy of the coordinates object. More... | |
template<class OtherCoords > | |
PositionVector3D | Cross (const DisplacementVector3D< OtherCoords, Tag > &v) const |
Return vector (Cross) product of this point with a displacement, as a point vector in this coordinate system of the first. More... | |
template<class OtherCoords > | |
Scalar | Dot (const DisplacementVector3D< OtherCoords, Tag > &v) const |
Return the scalar (Dot) product of this with a displacement vector in any coordinate system, but with the same tag. 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 at *begin More... | |
Scalar | Mag2 () const |
Magnitute squared ( r^2 in spherical coordinate) More... | |
Scalar | mag2 () const |
bool | operator!= (const PositionVector3D &rhs) const |
PositionVector3D | operator* (Scalar a) const |
Multiply a vector by a real number. More... | |
PositionVector3D & | operator*= (Scalar a) |
multiply this vector by a scalar quantity More... | |
template<class OtherCoords > | |
PositionVector3D & | operator+= (const DisplacementVector3D< OtherCoords, Tag > &v) |
Self Addition with a displacement vector. More... | |
template<class OtherCoords > | |
PositionVector3D & | operator-= (const DisplacementVector3D< OtherCoords, Tag > &v) |
Self Difference with a displacement vector. More... | |
PositionVector3D | operator/ (Scalar a) const |
Division of a vector with a real number. More... | |
PositionVector3D & | operator/= (Scalar a) |
divide this vector by a scalar quantity More... | |
template<class OtherCoords > | |
PositionVector3D & | operator= (const PositionVector3D< OtherCoords, Tag > &v) |
Assignment operator from a position vector of arbitrary type. More... | |
template<class OtherCoords > | |
PositionVector3D & | operator= (const DisplacementVector3D< OtherCoords, Tag > &v) |
Assignment operator from a displacement vector of arbitrary type. More... | |
template<class ForeignVector > | |
PositionVector3D & | operator= (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 PositionVector3D &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 |
PositionVector3D< CoordSystem, Tag > & | SetCoordinates (const Scalar src[]) |
Set internal data based on a C-style array of 3 Scalar numbers. More... | |
PositionVector3D< CoordSystem, Tag > & | SetCoordinates (Scalar a, Scalar b, Scalar c) |
Set internal data based on 3 Scalar numbers. More... | |
template<class IT > | |
PositionVector3D< CoordSystem, Tag > & | SetCoordinates (IT begin, IT end) |
Set internal data based on 3 Scalars at *begin to *end. More... | |
PositionVector3D< CoordSystem, Tag > & | SetEta (Scalar etaval) |
Change Eta - CylindricalEta3D coordinates only. More... | |
PositionVector3D< CoordSystem, Tag > & | SetPhi (Scalar ang) |
Change Phi - Polar3D or CylindricalEta3D coordinates. More... | |
PositionVector3D< CoordSystem, Tag > & | SetR (Scalar rr) |
Change R - Polar3D coordinates only. More... | |
PositionVector3D< CoordSystem, Tag > & | SetRho (Scalar rr) |
Change Rho - CylindricalEta3D coordinates only. More... | |
PositionVector3D< CoordSystem, Tag > & | SetTheta (Scalar ang) |
Change Theta - Polar3D coordinates only. More... | |
PositionVector3D< CoordSystem, Tag > & | SetX (Scalar xx) |
Change X - Cartesian3D coordinates only. More... | |
PositionVector3D< 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... | |
PositionVector3D< CoordSystem, Tag > & | SetY (Scalar yy) |
Change Y - Cartesian3D coordinates only. More... | |
PositionVector3D< 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 |
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 > | |
PositionVector3D (const PositionVector3D< OtherCoords, OtherTag > &) | |
template<class OtherCoords , class OtherTag > | |
PositionVector3D (const DisplacementVector3D< OtherCoords, OtherTag > &) | |
template<class OtherCoords , class OtherTag > | |
PositionVector3D & | operator+= (const DisplacementVector3D< OtherCoords, OtherTag > &) |
template<class OtherCoords , class OtherTag > | |
PositionVector3D & | operator-= (const DisplacementVector3D< OtherCoords, OtherTag > &) |
template<class OtherCoords , class OtherTag > | |
PositionVector3D & | operator= (const PositionVector3D< OtherCoords, OtherTag > &) |
template<class OtherCoords , class OtherTag > | |
PositionVector3D & | operator= (const DisplacementVector3D< OtherCoords, OtherTag > &) |
Private Attributes | |
CoordSystem | fCoordinates |
#include <Math/GenVector/PositionVector3D.h>
typedef Tag ROOT::Math::PositionVector3D< CoordSystem, Tag >::CoordinateSystemTag |
Definition at line 59 of file PositionVector3D.h.
typedef CoordSystem ROOT::Math::PositionVector3D< CoordSystem, Tag >::CoordinateType |
Definition at line 58 of file PositionVector3D.h.
typedef CoordSystem::Scalar ROOT::Math::PositionVector3D< CoordSystem, Tag >::Scalar |
Definition at line 57 of file PositionVector3D.h.
|
inline |
Default constructor.
Construct an empty object with zero values
Definition at line 67 of file PositionVector3D.h.
|
inline |
Construct from three values of type Scalar.
In the case of a XYZPoint the values are x,y,z In the case of a polar vector they are r,theta,phi
Definition at line 74 of file PositionVector3D.h.
|
inlineexplicit |
Construct from a position vector expressed in different coordinates, or using a different Scalar type.
Definition at line 82 of file PositionVector3D.h.
|
inlineexplicit |
Construct from an arbitrary displacement vector.
Definition at line 89 of file PositionVector3D.h.
|
inlineexplicit |
Construct from a foreign 3D vector type, for example, Hep3Vector Precondition: v must implement methods x(), y() and z()
Definition at line 97 of file PositionVector3D.h.
|
explicitprivate |
|
explicitprivate |
|
inline |
Retrieve a copy of the coordinates object.
Definition at line 168 of file PositionVector3D.h.
|
inline |
Return vector (Cross) product of this point with a displacement, as a point vector in this coordinate system of the first.
Definition at line 378 of file PositionVector3D.h.
|
inline |
Return the scalar (Dot) product of this with a displacement vector in any coordinate system, but with the same tag.
Definition at line 368 of file PositionVector3D.h.
|
inline |
Polar eta, converting if necessary from internal coordinate system.
Definition at line 296 of file PositionVector3D.h.
|
inline |
Definition at line 457 of file PositionVector3D.h.
|
inline |
get internal data into 3 Scalar numbers
Definition at line 202 of file PositionVector3D.h.
|
inline |
get internal data into a C-style array of 3 Scalar numbers
Definition at line 208 of file PositionVector3D.h.
|
inline |
get internal data into 3 Scalars at *begin to *end (3 past begin)
Definition at line 216 of file PositionVector3D.h.
|
inline |
get internal data into 3 Scalars at *begin
Definition at line 229 of file PositionVector3D.h.
|
inline |
Magnitute squared ( r^2 in spherical coordinate)
Definition at line 308 of file PositionVector3D.h.
|
inline |
Definition at line 459 of file PositionVector3D.h.
|
inline |
Definition at line 257 of file PositionVector3D.h.
|
inline |
Multiply a vector by a real number.
Definition at line 434 of file PositionVector3D.h.
|
inline |
multiply this vector by a scalar quantity
Definition at line 416 of file PositionVector3D.h.
|
inline |
Self Addition with a displacement vector.
Definition at line 397 of file PositionVector3D.h.
|
private |
|
inline |
Self Difference with a displacement vector.
Definition at line 407 of file PositionVector3D.h.
|
private |
|
inline |
Division of a vector with a real number.
Definition at line 443 of file PositionVector3D.h.
|
inline |
divide this vector by a scalar quantity
Definition at line 424 of file PositionVector3D.h.
|
inline |
Assignment operator from a position vector of arbitrary type.
Definition at line 124 of file PositionVector3D.h.
|
inline |
Assignment operator from a displacement vector of arbitrary type.
Definition at line 134 of file PositionVector3D.h.
|
inline |
Assignment from a foreign 3D vector type, for example, Hep3Vector Precondition: v must implement methods x(), y() and z()
Definition at line 144 of file PositionVector3D.h.
|
private |
|
private |
|
inline |
Exact equality.
Definition at line 254 of file PositionVector3D.h.
|
inline |
Transverse component squared (rho^2 in cylindrical coordinates.
Definition at line 313 of file PositionVector3D.h.
|
inline |
Definition at line 460 of file PositionVector3D.h.
|
inline |
Polar phi, converting if necessary from internal coordinate system.
Definition at line 291 of file PositionVector3D.h.
|
inline |
Definition at line 456 of file PositionVector3D.h.
|
inline |
Polar R, converting if necessary from internal coordinate system.
Definition at line 281 of file PositionVector3D.h.
|
inline |
Definition at line 454 of file PositionVector3D.h.
|
inline |
Cylindrical transverse component rho.
Definition at line 301 of file PositionVector3D.h.
|
inline |
Definition at line 458 of file PositionVector3D.h.
|
inline |
Set internal data based on a C-style array of 3 Scalar numbers.
Definition at line 175 of file PositionVector3D.h.
|
inline |
Set internal data based on 3 Scalar numbers.
Definition at line 181 of file PositionVector3D.h.
|
inline |
Set internal data based on 3 Scalars at *begin to *end.
Definition at line 189 of file PositionVector3D.h.
|
inline |
Change Eta - CylindricalEta3D coordinates only.
Definition at line 358 of file PositionVector3D.h.
|
inline |
Change Phi - Polar3D or CylindricalEta3D coordinates.
Definition at line 348 of file PositionVector3D.h.
|
inline |
Change R - Polar3D coordinates only.
Definition at line 338 of file PositionVector3D.h.
|
inline |
Change Rho - CylindricalEta3D coordinates only.
Definition at line 353 of file PositionVector3D.h.
|
inline |
Change Theta - Polar3D coordinates only.
Definition at line 343 of file PositionVector3D.h.
|
inline |
Change X - Cartesian3D coordinates only.
Definition at line 323 of file PositionVector3D.h.
|
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 244 of file PositionVector3D.h.
|
inline |
Change Y - Cartesian3D coordinates only.
Definition at line 328 of file PositionVector3D.h.
|
inline |
Change Z - Cartesian3D coordinates only.
Definition at line 333 of file PositionVector3D.h.
|
inline |
Polar theta, converting if necessary from internal coordinate system.
Definition at line 286 of file PositionVector3D.h.
|
inline |
Definition at line 455 of file PositionVector3D.h.
|
inline |
Cartesian X, converting if necessary from internal coordinate system.
Definition at line 266 of file PositionVector3D.h.
|
inline |
Definition at line 451 of file PositionVector3D.h.
|
inline |
Cartesian Y, converting if necessary from internal coordinate system.
Definition at line 271 of file PositionVector3D.h.
|
inline |
Definition at line 452 of file PositionVector3D.h.
|
inline |
Cartesian Z, converting if necessary from internal coordinate system.
Definition at line 276 of file PositionVector3D.h.
|
inline |
Definition at line 453 of file PositionVector3D.h.
|
private |
Definition at line 464 of file PositionVector3D.h.