20 #ifndef ROOT_Math_GenVector_CylindricalEta3D
21 #define ROOT_Math_GenVector_CylindricalEta3D 1
69 template <
class CoordSystem >
147 :
fEta > etaMax<T>() ?
fEta - etaMax<T>() :
fEta < -etaMax<T>() ? -
fEta - etaMax<T>() : 0;
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);
286 #if defined(__MAKECINT__) || defined(G__DICTIONARY)
300 #if defined(__MAKECINT__) || defined(G__DICTIONARY)
314 void CylindricalEta3D<T>::SetY(
Scalar yy) {
315 GenVector_exception
e(
"CylindricalEta3D::SetY() is not supposed to be called");
317 Cartesian3D<Scalar>
v(*
this);
v.SetY(yy);
318 *
this = CylindricalEta3D<Scalar>(
v);
321 void CylindricalEta3D<T>::SetZ(
Scalar zz) {
322 GenVector_exception
e(
"CylindricalEta3D::SetZ() is not supposed to be called");
324 Cartesian3D<Scalar>
v(*
this);
v.SetZ(zz);
325 *
this = CylindricalEta3D<Scalar>(
v);
328 void CylindricalEta3D<T>::SetR(
Scalar r) {
329 GenVector_exception
e(
"CylindricalEta3D::SetR() is not supposed to be called");
331 Polar3D<Scalar>
v(*
this);
v.SetR(r);
332 *
this = CylindricalEta3D<Scalar>(
v);
335 void CylindricalEta3D<T>::SetTheta(
Scalar theta) {
336 GenVector_exception
e(
"CylindricalEta3D::SetTheta() is not supposed to be called");
338 Polar3D<Scalar>
v(*
this);
v.SetTheta(theta);
339 *
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.
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
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
void SetCoordinates(Scalar rho, Scalar eta, Scalar phi)
Set internal data based on 3 Scalar numbers.
bool operator!=(const CylindricalEta3D &rhs) const
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.
Rotation3D::Scalar Scalar