1#ifndef __JPHYSICS__JGEANZ__
2#define __JPHYSICS__JGEANZ__
64 const double a =
a0 +
a1 * log(E);
65 const double y = pow(z,a-1.0) * exp(-z/
b) / (pow(
b,a) * std::tgamma(a));
103 const double a =
a0 +
a1 * log(E);
104 const double x = z /
b;
125 const double z)
const
129 const double a =
a0 +
a1 * log(E);
148 const double eps = 1.0e-5)
const
155 for (
int i = 1000; i != 0; --i) {
159 if (fabs(p-P) < P*eps) {
164 z1 = 0.5 * (z0 + z1);
189 const double a =
a0 +
a1 * log(E);
215 in >>
object.a0 >>
object.a1 >>
object.b;
217 object.Emin = exp(-
object.
a0/
object.
a1);
232 return out <<
object.a0 <<
' ' <<
object.a1 <<
' ' <<
object.b;
Auxiliary methods for mathematics.
Function object for longitudinal profile of EM-shower.
friend std::ostream & operator<<(std::ostream &out, const JGeanz &object)
Write longitidunal profile to output.
double getLength(const double E, const double P, const double eps=1.0e-5) const
Get shower length for a given integrated probability.
JGeanz(const double __a0, const double __a1, const double __b)
Constructor.
double getIntegral(const double E, const double z) const
Integral of PDF (starting from 0).
double getDerivative(const double E, const double z) const
Derivative of PDF.
double operator()(const double E, const double z) const
Probability Density Function.
friend std::istream & operator>>(std::istream &in, JGeanz &object)
Read longitudinal profile from input.
double getProbability(const double E, const double z) const
Probability Density Function.
static double getMinimalShowerSize()
Get minimal shower size.
double getMaximum(const double E) const
Get depth of shower maximum.
double Gamma(const double a, const double x)
Incomplete gamma function.
Auxiliary methods for light properties of deep-sea water.
static const JGeanz geanz(1.85, 0.62, 0.54)
Function object for longitudinal EM-shower profile.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).