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
bool operator!=(const CylindricalEta3D &rhs) const
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
void GetCoordinates(Scalar &rho, Scalar &eta, Scalar &phi) const
get internal data into 3 Scalar numbers
bool operator==(const CylindricalEta3D &rhs) const
Exact component-by-component equality Note: Peculiar representaions of the zero vector such as (0...
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
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
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.
Namespace for new Math classes and functions.
#define dest(otri, vertexptr)
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 3 Scalar numbers
void Negate()
negate the vector
CylindricalEta3D()
Default constructor with rho=eta=phi=0.
Rotation3D::Scalar Scalar