20 #ifndef ROOT_Math_GenVector_CylindricalEta3D
21 #define ROOT_Math_GenVector_CylindricalEta3D 1
23 #ifndef ROOT_Math_Math
27 #ifndef ROOT_Math_GenVector_etaMax
72 template <
class CoordSystem >
76 static Scalar bigEta =
129 inline static Scalar
pi() {
return M_PI; }
147 fEta + etaMax<T>() ; }
149 fEta > etaMax<T>() ?
fEta - etaMax<T>() :
150 fEta < -etaMax<T>() ? -
fEta - etaMax<T>() :
155 (
fEta >= 0 ? 0 :
pi() ); }
185 void SetXYZ(Scalar
x, Scalar
y, Scalar
z);
200 }
else if (
fEta > etaMax<T>() ) {
201 fEta = (
fEta-etaMax<T>())*a + etaMax<T>();
202 }
else if (
fEta < -etaMax<T>() ) {
203 fEta = (
fEta+etaMax<T>())*a - etaMax<T>();
220 template <
class CoordSystem >
244 T x()
const {
return X();}
245 T y()
const {
return Y();}
246 T z()
const {
return Z(); }
252 #if defined(__MAKECINT__) || defined(G__DICTIONARY)
264 void SetTheta(Scalar theta);
284 #ifndef ROOT_Math_GenVector_Cartesian3D
288 #if defined(__MAKECINT__) || defined(G__DICTIONARY)
289 #ifndef ROOT_Math_GenVector_GenVector_exception
292 #ifndef ROOT_Math_GenVector_Polar3D
306 #if defined(__MAKECINT__) || defined(G__DICTIONARY)
320 void CylindricalEta3D<T>::SetY(
Scalar yy) {
321 GenVector_exception e(
"CylindricalEta3D::SetY() is not supposed to be called");
323 Cartesian3D<Scalar>
v(*
this);
v.SetY(yy);
324 *
this = CylindricalEta3D<Scalar>(
v);
327 void CylindricalEta3D<T>::SetZ(
Scalar zz) {
328 GenVector_exception e(
"CylindricalEta3D::SetZ() is not supposed to be called");
330 Cartesian3D<Scalar>
v(*
this);
v.SetZ(zz);
331 *
this = CylindricalEta3D<Scalar>(
v);
334 void CylindricalEta3D<T>::SetR(
Scalar r) {
335 GenVector_exception e(
"CylindricalEta3D::SetR() is not supposed to be called");
337 Polar3D<Scalar>
v(*
this);
v.SetR(r);
338 *
this = CylindricalEta3D<Scalar>(
v);
341 void CylindricalEta3D<T>::SetTheta(
Scalar theta) {
342 GenVector_exception e(
"CylindricalEta3D::SetTheta() is not supposed to be called");
344 Polar3D<Scalar>
v(*
this);
v.SetTheta(theta);
345 *
this = CylindricalEta3D<Scalar>(
v);
CylindricalEta3D(const CylindricalEta3D &v)
copy constructor
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 3 Scalar numbers.
Namespace for new ROOT classes and functions.
CylindricalEta3D(Scalar rho, Scalar eta, Scalar phi)
Construct from rho eta and phi values.
Class describing a cylindrical coordinate system based on eta (pseudorapidity) instead of z...
CylindricalEta3D & operator=(const CylindricalEta3D &v)
assignment operator
CylindricalEta3D(const CoordSystem &v)
Construct from any Vector or coordinate system implementing Rho(), Eta() and Phi() ...
void SetPhi(T phi)
set the phi coordinate value keeping rho and eta constant
bool operator==(const CylindricalEta3D &rhs) const
Exact component-by-component equality Note: Peculiar representaions of the zero vector such as (0...
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
void SetRho(T rho)
set the rho coordinate value keeping eta and phi constant
void Scale(T a)
scale by a scalar quantity a – for cylindrical eta coords, as long as a >= 0, only rho changes! ...
void SetXYZ(Scalar x, Scalar y, Scalar z)
set all values using cartesian coordinates
void SetEta(T eta)
set the eta coordinate value keeping rho and phi constant
void GetCoordinates(Scalar &rho, Scalar &eta, Scalar &phi) const
get internal data into 3 Scalar numbers
void SetCoordinates(Scalar rho, Scalar eta, Scalar phi)
Set internal data based on 3 Scalar numbers.
bool operator!=(const CylindricalEta3D &rhs) const
Namespace for new Math classes and functions.
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 3 Scalar numbers
#define dest(otri, vertexptr)
void Negate()
negate the vector
CylindricalEta3D()
Default constructor with rho=eta=phi=0.