19 #ifndef ROOT_Math_GenVector_Polar3D
20 #define ROOT_Math_GenVector_Polar3D 1
22 #ifndef ROOT_Math_Math
26 #ifndef ROOT_Math_GenVector_eta
66 template <
class CoordSystem >
113 Scalar
R()
const {
return fR;}
157 void SetXYZ(Scalar
x, Scalar
y, Scalar
z);
161 inline static Scalar
pi() {
return M_PI; }
194 template <
class CoordSystem >
215 T x()
const {
return X();}
216 T y()
const {
return Y();}
217 T z()
const {
return Z(); }
223 #if defined(__MAKECINT__) || defined(G__DICTIONARY)
233 void SetRho(Scalar rho);
235 void SetEta(Scalar eta);
253 #ifndef ROOT_Math_GenVector_Cartesian3D
257 #if defined(__MAKECINT__) || defined(G__DICTIONARY)
258 #ifndef ROOT_Math_GenVector_GenVector_exception
261 #ifndef ROOT_Math_GenVector_CylindricalEta3D
276 #if defined(__MAKECINT__) || defined(G__DICTIONARY)
288 void Polar3D<T>::SetY(
Scalar yy) {
289 GenVector_exception e(
"Polar3D::SetY() is not supposed to be called");
291 Cartesian3D<Scalar>
v(*
this);
v.SetY(yy); *
this = Polar3D<Scalar>(
v);
294 void Polar3D<T>::SetZ(
Scalar zz) {
295 GenVector_exception e(
"Polar3D::SetZ() is not supposed to be called");
297 Cartesian3D<Scalar>
v(*
this);
v.SetZ(zz); *
this = Polar3D<Scalar>(
v);
300 void Polar3D<T>::SetRho(
Scalar rho) {
301 GenVector_exception e(
"Polar3D::SetRho() is not supposed to be called");
303 CylindricalEta3D<Scalar>
v(*
this);
v.SetRho(rho);
304 *
this = Polar3D<Scalar>(
v);
307 void Polar3D<T>::SetEta(
Scalar eta) {
308 GenVector_exception e(
"Polar3D::SetEta() is not supposed to be called");
310 CylindricalEta3D<Scalar>
v(*
this);
v.SetEta(eta);
311 *
this = Polar3D<Scalar>(
v);
void SetXYZ(Scalar x, Scalar y, Scalar z)
set all values using cartesian coordinates
bool operator==(const Polar3D &rhs) const
Exact equality.
Polar3D(const Polar3D &v)
copy constructor
Namespace for new ROOT classes and functions.
Polar3D & operator=(const Polar3D &v)
assignment operator
void Scale(T a)
scale by a scalar quantity - for polar coordinates r changes
bool operator!=(const Polar3D &rhs) const
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 3 Scalar numbers
Polar3D(const CoordSystem &v)
Construct from any Vector or coordinate system implementing R(), Theta() and Phi() ...
void SetR(const T &r)
set the r coordinate value keeping theta and phi constant
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 3 Scalar numbers.
Scalar Eta_FromTheta(Scalar theta, Scalar r)
Implementation of eta from -log(tan(theta/2)).
void SetTheta(const T &theta)
set the theta coordinate value keeping r and phi constant
void SetCoordinates(Scalar r, Scalar theta, Scalar phi)
Set internal data based on 3 Scalar numbers.
void GetCoordinates(Scalar &r, Scalar &theta, Scalar &phi) const
get internal data into 3 Scalar numbers
void Negate()
negate the vector
Polar3D()
Default constructor with r=theta=phi=0.
Namespace for new Math classes and functions.
void SetPhi(const T &phi)
set the phi coordinate value keeping r and theta constant
#define dest(otri, vertexptr)
Polar3D(T r, T theta, T phi)
Construct from the polar coordinates: r, theta and phi.
Class describing a polar coordinate system based on r, theta and phi Phi is restricted to be in the r...