// @(#)root/mathcore:$Id: etaMax.h 22516 2008-03-07 15:14:26Z moneta $ // Authors: W. Brown, M. Fischler, L. Moneta 2005 /********************************************************************** * * * Copyright (c) 2005 , FNAL MathLib Team * * * * * **********************************************************************/ // Header source file for function etaMax // // Created by: Mark Fischler at Thu Jun 2 2005 #ifndef ROOT_Math_GenVector_etaMax #define ROOT_Math_GenVector_etaMax 1 #include #include namespace ROOT { namespace Math { /** The following function could be called to provide the maximum possible value of pseudorapidity for a non-zero rho. This is log ( max/min ) where max and min are the extrema of positive values for type long double. */ inline long double etaMax_impl() { return std::log ( std::numeric_limits::max()/256.0l ) - std::log ( std::numeric_limits::denorm_min()*256.0l ) + 16.0 * std::log(2.0); // Actual usage of etaMax() simply returns the number 22756, which is // the answer this would supply, rounded to a higher integer. } /** Function providing the maximum possible value of pseudorapidity for a non-zero rho, in the Scalar type with the largest dynamic range. */ template inline T etaMax() { return static_cast(22756.0); } } // namespace Math } // namespace ROOT #endif /* ROOT_Math_GenVector_etaMax */