ROOT logo
ROOT » MATH » GENVECTOR » ROOT::Math::CylindricalEta3D<double>

class ROOT::Math::CylindricalEta3D<double>


      Class describing a cylindrical coordinate system based on eta (pseudorapidity) instead of z.
      The base coordinates are rho (transverse component) , eta 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::CylindricalEta3D<double>,ROOT::Math::DefaultCoordinateSystemTag>::CoordinateType, ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double>,ROOT::Math::DefaultCoordinateSystemTag>::CoordinateType

Function Members (Methods)

public:
~CylindricalEta3D<double>()
ROOT::Math::CylindricalEta3D<double>CylindricalEta3D<double>()
ROOT::Math::CylindricalEta3D<double>CylindricalEta3D<double>(const ROOT::Math::CylindricalEta3D<double>& v)
ROOT::Math::CylindricalEta3D<double>CylindricalEta3D<double>(ROOT::Math::CylindricalEta3D<double>::Scalar rho, ROOT::Math::CylindricalEta3D<double>::Scalar eta, ROOT::Math::CylindricalEta3D<double>::Scalar phi)
doubleEta() const
voidGetCoordinates(ROOT::Math::CylindricalEta3D<double>::Scalar* dest) const
voidGetCoordinates(ROOT::Math::CylindricalEta3D<double>::Scalar& rho, ROOT::Math::CylindricalEta3D<double>::Scalar& eta, ROOT::Math::CylindricalEta3D<double>::Scalar& phi) const
doubleMag2() const
voidNegate()
booloperator!=(const ROOT::Math::CylindricalEta3D<double>& rhs) const
ROOT::Math::CylindricalEta3D<double>&operator=(const ROOT::Math::CylindricalEta3D<double>& v)
booloperator==(const ROOT::Math::CylindricalEta3D<double>& rhs) const
doublePerp2() const
doublePhi() const
doubleR() const
doubleRho() const
voidScale(double a)
voidSetCoordinates(const ROOT::Math::CylindricalEta3D<double>::Scalar* src)
voidSetCoordinates(ROOT::Math::CylindricalEta3D<double>::Scalar rho, ROOT::Math::CylindricalEta3D<double>::Scalar eta, ROOT::Math::CylindricalEta3D<double>::Scalar phi)
voidSetEta(double eta)
voidSetPhi(double phi)
voidSetR(ROOT::Math::CylindricalEta3D<double>::Scalar r)
voidSetRho(double rho)
voidSetTheta(ROOT::Math::CylindricalEta3D<double>::Scalar theta)
voidSetX(ROOT::Math::CylindricalEta3D<double>::Scalar xx)
voidSetXYZ(ROOT::Math::CylindricalEta3D<double>::Scalar xx, ROOT::Math::CylindricalEta3D<double>::Scalar yy, ROOT::Math::CylindricalEta3D<double>::Scalar zz)
voidSetY(ROOT::Math::CylindricalEta3D<double>::Scalar yy)
voidSetZ(ROOT::Math::CylindricalEta3D<double>::Scalar zz)
doubleTheta() const
doubleX() const
doublex() const
doubleY() const
doubley() const
doubleZ() const
doublez() const
private:
static ROOT::Math::CylindricalEta3D<double>::Scalarpi()
voidRestrict()

Data Members

private:
doublefEta
doublefPhi
doublefRho

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

CylindricalEta3D & operator=(const ROOT::Math::CylindricalEta3D<double>& v)
      assignment operator

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

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

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

{ fRho=rho; fEta=eta; fPhi=phi; Restrict(); }
void GetCoordinates(ROOT::Math::CylindricalEta3D<double>::Scalar& rho, ROOT::Math::CylindricalEta3D<double>::Scalar& eta, ROOT::Math::CylindricalEta3D<double>::Scalar& phi) const
      get internal data into 3 Scalar numbers

{rho=fRho; eta=fEta; phi=fPhi;}
Scalar pi()
{ return M_PI; }
void Restrict()
T Rho() const
 accessors
{ return fRho; }
T Eta() const
{ return fEta; }
T Phi() const
{ return fPhi; }
T X() const
{ return fRho*std::cos(fPhi); }
T Y() const
{ return fRho*std::sin(fPhi); }
T Z() const
T R() const
T Mag2() const
{ return R()*R(); }
T Perp2() const
{ return fRho*fRho; }
T Theta() const
void SetRho(double rho)
 setters (only for data members)

       set the rho coordinate value keeping eta and phi constant

void SetEta(double eta)
       set the eta coordinate value keeping rho and phi constant

void SetPhi(double phi)
       set the phi coordinate value keeping rho and eta constant

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

void Scale(double a)
      scale by a scalar quantity a --
      for cylindrical eta coords, as long as a >= 0, only rho changes!

Negate()
bool operator==(const ROOT::Math::CylindricalEta3D<double>& rhs) const
      Exact component-by-component equality
      Note: Peculiar representaions of the zero vector such as (0,1,0) will
      not test as equal to one another.

bool operator!=(const ROOT::Math::CylindricalEta3D<double>& 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::CylindricalEta3D<double>::Scalar xx)
 ============= Specializations for improved speed ==================
 (none)
 ====== Set member functions for coordinates in other systems =======
void SetY(ROOT::Math::CylindricalEta3D<double>::Scalar yy)
void SetZ(ROOT::Math::CylindricalEta3D<double>::Scalar zz)
void SetR(ROOT::Math::CylindricalEta3D<double>::Scalar r)
void SetTheta(ROOT::Math::CylindricalEta3D<double>::Scalar theta)