20#ifndef ROOT_Math_GenVector_CylindricalEta3D
21#define ROOT_Math_GenVector_CylindricalEta3D 1
69 template <
class CoordSystem >
74 static Scalar bigEta =
Scalar(-0.3) * log(std::numeric_limits<Scalar>::epsilon());
75 if (std::fabs(
fEta) > bigEta) {
140 T
X()
const {
using std::cos;
return fRho * cos(
fPhi); }
141 T
Y()
const {
using std::sin;
return fRho * sin(
fPhi); }
151 :
fEta > etaMax<T>() ?
fEta - etaMax<T>() :
fEta < -etaMax<T>() ? -
fEta - etaMax<T>() : 0;
204 }
else if (
fEta > etaMax<T>() ) {
205 fEta = (
fEta-etaMax<T>())*
a + etaMax<T>();
206 }
else if (
fEta < -etaMax<T>() ) {
207 fEta = (
fEta+etaMax<T>())*
a - etaMax<T>();
224 template <
class CoordSystem >
248 T
x()
const {
return X();}
249 T
y()
const {
return Y();}
250 T
z()
const {
return Z(); }
256#if defined(__MAKECINT__) || defined(G__DICTIONARY)
268 void SetTheta(
Scalar theta);
290#if defined(__MAKECINT__) || defined(G__DICTIONARY)
304#if defined(__MAKECINT__) || defined(G__DICTIONARY)
318void CylindricalEta3D<T>::SetY(
Scalar yy) {
319 GenVector_exception
e(
"CylindricalEta3D::SetY() is not supposed to be called");
321 Cartesian3D<Scalar>
v(*
this);
v.SetY(yy);
322 *
this = CylindricalEta3D<Scalar>(
v);
325void CylindricalEta3D<T>::SetZ(
Scalar zz) {
326 GenVector_exception
e(
"CylindricalEta3D::SetZ() is not supposed to be called");
328 Cartesian3D<Scalar>
v(*
this);
v.SetZ(zz);
329 *
this = CylindricalEta3D<Scalar>(
v);
332void CylindricalEta3D<T>::SetR(
Scalar r) {
333 GenVector_exception
e(
"CylindricalEta3D::SetR() is not supposed to be called");
335 Polar3D<Scalar>
v(*
this);
v.SetR(
r);
336 *
this = CylindricalEta3D<Scalar>(
v);
339void CylindricalEta3D<T>::SetTheta(
Scalar theta) {
340 GenVector_exception
e(
"CylindricalEta3D::SetTheta() is not supposed to be called");
342 Polar3D<Scalar>
v(*
this);
v.SetTheta(theta);
343 *
this = CylindricalEta3D<Scalar>(
v);
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
Class describing a 3D cartesian coordinate system (x, y, z coordinates)
Class describing a cylindrical coordinate system based on eta (pseudorapidity) instead of z.
void SetEta(T eta)
set the eta coordinate value keeping rho and phi constant
CylindricalEta3D()
Default constructor with rho=eta=phi=0.
void SetXYZ(Scalar x, Scalar y, Scalar z)
set all values using cartesian coordinates
void SetCoordinates(const Scalar src[])
Set internal data based on an array of 3 Scalar numbers.
void SetCoordinates(Scalar rho, Scalar eta, Scalar phi)
Set internal data based on 3 Scalar numbers.
void GetCoordinates(Scalar dest[]) const
get internal data into an array of 3 Scalar numbers
void Negate()
negate the vector
CylindricalEta3D(const CoordSystem &v)
Construct from any Vector or coordinate system implementing Rho(), Eta() and Phi()
void Scale(T a)
scale by a scalar quantity a – for cylindrical eta coords, as long as a >= 0, only rho changes!
void GetCoordinates(Scalar &rho, Scalar &eta, Scalar &phi) const
get internal data into 3 Scalar numbers
void SetPhi(T phi)
set the phi coordinate value keeping rho and eta constant
CylindricalEta3D & operator=(const CylindricalEta3D &v)
assignment operator
CylindricalEta3D(const CylindricalEta3D &v)
copy constructor
void SetRho(T rho)
set the rho coordinate value keeping eta and phi constant
CylindricalEta3D(Scalar rho, Scalar eta, Scalar phi)
Construct from rho eta and phi values.
bool operator==(const CylindricalEta3D &rhs) const
Exact component-by-component equality Note: Peculiar representaions of the zero vector such as (0,...
bool operator!=(const CylindricalEta3D &rhs) const
Namespace for new Math classes and functions.
Rotation3D::Scalar Scalar
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
#define dest(otri, vertexptr)