class ROOT::Math::Cylindrical3D<Double32_t>


Class describing a cylindrical coordinate system based on rho, z and phi.
The base coordinates are rho (transverse component) , z and phi
Phi is restricted to be in the range [-PI,PI)

@ingroup GenVector

Function Members (Methods)

public:
~Cylindrical3D<Double32_t>()
ROOT::Math::Cylindrical3D<Double32_t>Cylindrical3D<Double32_t>()
ROOT::Math::Cylindrical3D<Double32_t>Cylindrical3D<Double32_t>(const ROOT::Math::Cylindrical3D<Double32_t>& v)
ROOT::Math::Cylindrical3D<Double32_t>Cylindrical3D<Double32_t>(ROOT::Math::Cylindrical3D<Double32_t>::Scalar rho, ROOT::Math::Cylindrical3D<Double32_t>::Scalar z, ROOT::Math::Cylindrical3D<Double32_t>::Scalar phi)
ROOT::Math::Cylindrical3D<Double32_t>::ScalarEta() const
voidGetCoordinates(ROOT::Math::Cylindrical3D<Double32_t>::Scalar* dest) const
voidGetCoordinates(ROOT::Math::Cylindrical3D<Double32_t>::Scalar& rho, ROOT::Math::Cylindrical3D<Double32_t>::Scalar& z, ROOT::Math::Cylindrical3D<Double32_t>::Scalar& phi) const
ROOT::Math::Cylindrical3D<Double32_t>::ScalarMag2() const
voidNegate()
booloperator!=(const ROOT::Math::Cylindrical3D<Double32_t>& rhs) const
ROOT::Math::Cylindrical3D<Double32_t>&operator=(const ROOT::Math::Cylindrical3D<Double32_t>& v)
booloperator==(const ROOT::Math::Cylindrical3D<Double32_t>& rhs) const
ROOT::Math::Cylindrical3D<Double32_t>::ScalarPerp2() const
ROOT::Math::Cylindrical3D<Double32_t>::ScalarPhi() const
ROOT::Math::Cylindrical3D<Double32_t>::ScalarR() const
ROOT::Math::Cylindrical3D<Double32_t>::ScalarRho() const
voidScale(Double32_t a)
voidSetCoordinates(const ROOT::Math::Cylindrical3D<Double32_t>::Scalar* src)
voidSetCoordinates(ROOT::Math::Cylindrical3D<Double32_t>::Scalar rho, ROOT::Math::Cylindrical3D<Double32_t>::Scalar z, ROOT::Math::Cylindrical3D<Double32_t>::Scalar phi)
voidSetEta(ROOT::Math::Cylindrical3D<Double32_t>::Scalar eta)
voidSetPhi(Double32_t phi)
voidSetR(ROOT::Math::Cylindrical3D<Double32_t>::Scalar r)
voidSetRho(Double32_t rho)
voidSetTheta(ROOT::Math::Cylindrical3D<Double32_t>::Scalar theta)
voidSetX(ROOT::Math::Cylindrical3D<Double32_t>::Scalar x)
voidSetXYZ(ROOT::Math::Cylindrical3D<Double32_t>::Scalar x, ROOT::Math::Cylindrical3D<Double32_t>::Scalar y, ROOT::Math::Cylindrical3D<Double32_t>::Scalar z)
voidSetY(ROOT::Math::Cylindrical3D<Double32_t>::Scalar y)
voidSetZ(Double32_t z)
ROOT::Math::Cylindrical3D<Double32_t>::ScalarTheta() const
ROOT::Math::Cylindrical3D<Double32_t>::ScalarX() const
Double32_tx() const
ROOT::Math::Cylindrical3D<Double32_t>::ScalarY() const
Double32_ty() const
ROOT::Math::Cylindrical3D<Double32_t>::ScalarZ() const
Double32_tz() const
private:
static doublepi()
voidRestrict()

Data Members

private:
Double32_tfPhi
Double32_tfRho
Double32_tfZ

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

Cylindrical3D & operator=(const ROOT::Math::Cylindrical3D<Double32_t>& v)
assignment operator

void SetCoordinates(const ROOT::Math::Cylindrical3D<Double32_t>::Scalar* src)
Set internal data based on an array of 3 Scalar numbers ( rho, z , phi)

{ fRho=src[0]; fZ=src[1]; fPhi=src[2]; Restrict(); }
void GetCoordinates(ROOT::Math::Cylindrical3D<Double32_t>::Scalar* dest) const
get internal data into an array of 3 Scalar numbers ( rho, z , phi)

{ dest[0] = fRho; dest[1] = fZ; dest[2] = fPhi; }
void SetCoordinates(ROOT::Math::Cylindrical3D<Double32_t>::Scalar rho, ROOT::Math::Cylindrical3D<Double32_t>::Scalar z, ROOT::Math::Cylindrical3D<Double32_t>::Scalar phi)
Set internal data based on 3 Scalar numbers ( rho, z , phi)

{ fRho=rho; fZ=z; fPhi=phi; Restrict(); }
void GetCoordinates(ROOT::Math::Cylindrical3D<Double32_t>::Scalar& rho, ROOT::Math::Cylindrical3D<Double32_t>::Scalar& z, ROOT::Math::Cylindrical3D<Double32_t>::Scalar& phi) const
get internal data into 3 Scalar numbers ( rho, z , phi)

{rho=fRho; z=fZ; phi=fPhi;}
double pi()
{ return M_PI; }
void Restrict()
Scalar Rho()
 accessors
{ return fRho; }
Scalar Z()
{ return fZ; }
Scalar Phi()
{ return fPhi; }
Scalar X()
{ return fRho*std::cos(fPhi); }
Scalar Y()
{ return fRho*std::sin(fPhi); }
Scalar Mag2()
{ return fRho*fRho + fZ*fZ; }
Scalar R()
{ return std::sqrt( Mag2()); }
Scalar Perp2()
{ return fRho*fRho; }
Scalar Theta()
{ return (fRho==0 && fZ==0 ) ? 0.0 : atan2(fRho,fZ); }
Scalar Eta()
 pseudorapidity - use same implementation as in Cartesian3D
void SetRho(Double32_t rho)
 setters (only for data members)

set the rho coordinate value keeping z and phi constant

void SetZ(Double32_t z)
set the z coordinate value keeping rho and phi constant

void SetPhi(Double32_t phi)
set the phi coordinate value keeping rho and z constant

void SetXYZ(ROOT::Math::Cylindrical3D<Double32_t>::Scalar x, ROOT::Math::Cylindrical3D<Double32_t>::Scalar y, ROOT::Math::Cylindrical3D<Double32_t>::Scalar z)
 all values using cartesian coordina

void Scale(Double32_t a)
scale by a scalar quantity a --
for cylindrical coords only rho and z change

Negate()
bool operator==(const ROOT::Math::Cylindrical3D<Double32_t>& rhs) const
Exact component-by-component equality

bool operator!=(const ROOT::Math::Cylindrical3D<Double32_t>& rhs) const
{return !(operator==(rhs));}
T x()
 ============= Compatibility section ==================
 The following make this coordinate system look enough like a CLHEP
 vector that an assignment member template can work with either
{ return X();}
T y()
{ return Y();}
T z()
{ return Z(); }
void SetX(ROOT::Math::Cylindrical3D<Double32_t>::Scalar x)
 ============= Specializations for improved speed ==================
 (none)
 ====== Set member functions for coordinates in other systems =======
void SetY(ROOT::Math::Cylindrical3D<Double32_t>::Scalar y)
void SetEta(ROOT::Math::Cylindrical3D<Double32_t>::Scalar eta)
void SetR(ROOT::Math::Cylindrical3D<Double32_t>::Scalar r)
void SetTheta(ROOT::Math::Cylindrical3D<Double32_t>::Scalar theta)

Last update: root/mathcore:$Id: Cylindrical3D.h 21503 2007-12-19 17:34:54Z moneta $
Copyright (c) 2005 , LCG ROOT MathLib Team and *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.