17#ifndef ROOT_Math_GenVector_eta
18#define ROOT_Math_GenVector_eta 1
47 template<
typename Scalar>
56 return log(z_scaled +
sqrt(z_scaled * z_scaled + 1.0));
59 return z > 0 ?
log(2.0 * z_scaled + 0.5 / z_scaled) : -
log(-2.0 * z_scaled);
67 return z + etaMax<Scalar>();
70 return z - etaMax<Scalar>();
80 template<
typename Scalar>
83 if (tanThetaOver2 == 0) {
84 return r + etaMax<Scalar>();
86 else if (tanThetaOver2 > std::numeric_limits<Scalar>::max()) {
87 return -
r - etaMax<Scalar>();
90 return -
log(tanThetaOver2);
double pow(double, double)
Namespace for new Math classes and functions.
Scalar Eta_FromTheta(Scalar theta, Scalar r)
Implementation of eta from -log(tan(theta/2)).
Scalar Eta_FromRhoZ(Scalar rho, Scalar z)
Calculate eta given rho and zeta.
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
Rotation3D::Scalar Scalar
Namespace for new ROOT classes and functions.