ROOT logo
ROOT » MATH » GENVECTOR » ROOT::Math::Polar3D<Double32_t>

class ROOT::Math::Polar3D<Double32_t>


       Class describing a polar coordinate system based on r, theta and phi
       Phi is restricted to be in the range [-PI,PI)

       @ingroup GenVector

This class is also known as (typedefs to this class)

ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>::CoordinateType, ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>::CoordinateType

Function Members (Methods)

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

Data Members

private:
Double32_tfPhi
Double32_tfR
Double32_tfTheta

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

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

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

{ fR=src[0]; fTheta=src[1]; fPhi=src[2]; Restrict(); }
void GetCoordinates(ROOT::Math::Polar3D<Double32_t>::Scalar* dest) const
      get internal data into an array of 3 Scalar numbers

{ dest[0] = fR; dest[1] = fTheta; dest[2] = fPhi; }
void SetCoordinates(ROOT::Math::Polar3D<Double32_t>::Scalar r, ROOT::Math::Polar3D<Double32_t>::Scalar theta, ROOT::Math::Polar3D<Double32_t>::Scalar phi)
      Set internal data based on 3 Scalar numbers

{ fR=r; fTheta=theta; fPhi=phi; Restrict(); }
void GetCoordinates(ROOT::Math::Polar3D<Double32_t>::Scalar& r, ROOT::Math::Polar3D<Double32_t>::Scalar& theta, ROOT::Math::Polar3D<Double32_t>::Scalar& phi) const
      get internal data into 3 Scalar numbers

{r=fR; theta=fTheta; phi=fPhi;}
Scalar R() const
{ return fR;}
Scalar Phi() const
{ return fPhi; }
Scalar Theta() const
{ return fTheta; }
Scalar Rho() const
{ return fR*std::sin(fTheta); }
Scalar X() const
{ return Rho()*std::cos(fPhi);}
Scalar Y() const
{ return Rho()*std::sin(fPhi);}
Scalar Z() const
{ return fR*std::cos(fTheta); }
Scalar Mag2() const
{ return fR*fR;}
Scalar Perp2() const
{ return Rho()*Rho(); }
Scalar Eta() const
 pseudorapidity
void SetR(const Double32_t& r)
 setters (only for data members)

       set the r coordinate value keeping theta and phi constant

void SetTheta(const Double32_t& theta)
       set the theta coordinate value keeping r and phi constant

void SetPhi(const Double32_t& phi)
       set the phi coordinate value keeping r and theta constant

Restrict()
void SetXYZ(ROOT::Math::Polar3D<Double32_t>::Scalar xx, ROOT::Math::Polar3D<Double32_t>::Scalar yy, ROOT::Math::Polar3D<Double32_t>::Scalar zz)
       set all values using cartesian coordinates

Scalar pi()
{ return M_PI; }
void Scale(Double32_t a)
       scale by a scalar quantity - for polar coordinates r changes

Negate()
bool operator==(const ROOT::Math::Polar3D<Double32_t>& rhs) const
      Exact equality

bool operator!=(const ROOT::Math::Polar3D<Double32_t>& rhs) const
{return !(operator==(rhs));}
T x() const
 ============= 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() const
{ return Y();}
T z() const
{ return Z(); }
void SetX(ROOT::Math::Polar3D<Double32_t>::Scalar xx)
 ============= Specializations for improved speed ==================
 (none)
 ====== Set member functions for coordinates in other systems =======
void SetY(ROOT::Math::Polar3D<Double32_t>::Scalar yy)
void SetZ(ROOT::Math::Polar3D<Double32_t>::Scalar zz)
void SetRho(ROOT::Math::Polar3D<Double32_t>::Scalar rho)
void SetEta(ROOT::Math::Polar3D<Double32_t>::Scalar eta)