1#ifndef __JPHYSICS__JGEANE__ 
    2#define __JPHYSICS__JGEANE__ 
   46    virtual double getA() 
const = 0;
 
   54    virtual double getB() 
const = 0;
 
   64    virtual double getE(
const double E, 
const double dx) 
const = 0;
 
   74    virtual double getX(
const double E0, 
 
   75                        const double E1) 
const = 0;
 
   87      return this->
getE(E, dx);
 
 
   99      return this->
getX(E, 0.0);
 
 
 
  145    virtual double getA()
 const override  
 
  156    virtual double getB()
 const override  
 
  169    virtual double getE(
const double E, 
const double dx)
 const override  
  171      const double y = (
a/
b + E) * exp(-
b*dx)  -  
a/
b;
 
 
  187    virtual double getX(
const double E0, 
 
  188                        const double E1)
 const override 
  190      return -log((
a + 
b*E1) / (
a+
b*E0)) / 
b;
 
 
 
  208    protected std::map<double, JGeane_t>
 
  231    virtual double getA()
 const override  
 
  244    virtual double getB()
 const override  
 
  257    virtual double getE(
const double E, 
const double dx)
 const override  
  264        const_iterator p = this->lower_bound(E1);
 
  270          const double x2 = p->second.getX(E1, p->first);
 
  273            return p->second.getE(E1, x1);
 
  279        } 
while (p != this->begin());
 
 
  295    double getEa(
const double E, 
const double dx)
 const 
  313          const double x2 = p->second.getX(E1, p->first);
 
  315          Ea += (x2 > x1 ? x1 : x2) * p->second.getA();
 
  320        } 
while (p != this->cbegin() && x1 > 0.0);
 
 
  334    double getEb(
const double E, 
const double dx)
 const 
  336      const double dE = E - 
getE(E, dx);
 
  338      return dE - 
getEa(E, dx);
 
 
  349    virtual double getX(
const double E0, 
 
  350                        const double E1)
 const override 
  357        const_iterator p = this->lower_bound(E);
 
  364            return dx + p->second.getX(E, E1);
 
  367          dx += p->second.getX(E, p->first);
 
  370        } 
while (p != this->begin());
 
 
 
Function object for energy dependent energy loss of the muon.
 
virtual double getE(const double E, const double dx) const override
Get energy of muon after specified distance.
 
double getEb(const double E, const double dx) const
Get energy loss due to pair production and bremsstrahlung.
 
JGeaneWater()
Default constructor.
 
virtual double getA() const override
Get energy loss constant.
 
virtual double getB() const override
Get energy loss constant.
 
virtual double getX(const double E0, const double E1) const override
Get distance traveled by muon.
 
double getEa(const double E, const double dx) const
Get energy loss due to ionisation.
 
Function object for the energy loss of the muon.
 
virtual double getA() const override
Get energy loss constant.
 
virtual double getE(const double E, const double dx) const override
Get energy of muon after specified distance.
 
JGeane_t(const double __a, const double __b)
constructor
 
virtual double getX(const double E0, const double E1) const override
Get distance traveled by muon.
 
virtual double getB() const override
Get energy loss constant.
 
Interface for muon energy loss.
 
double operator()(const double E, const double dx) const
Energy of muon after specified distance.
 
double operator()(const double E) const
Range of muon.
 
virtual double getX(const double E0, const double E1) const =0
Get distance traveled by muon.
 
virtual double getB() const =0
Get energy loss constant.
 
double operator()() const
Equivalent unit track length per unit shower energy and per unit track length.
 
virtual double getE(const double E, const double dx) const =0
Get energy of muon after specified distance.
 
virtual double getA() const =0
Get energy loss constant.
 
Auxiliary methods for light properties of deep-sea water.
 
static const double DENSITY_SEA_WATER
Fixed environment values.
 
static const double DENSITY_ROCK
Density of rock [g/cm^3].
 
static const JGeane_t gRock(2.67e-1 *0.9 *DENSITY_ROCK, 3.40e-4 *1.2 *DENSITY_ROCK)
Function object for energy loss of muon in rock.
 
static const JGeaneWater gWater
Function object for energy loss of muon in sea water.
 
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
 
double geanc()
Equivalent muon track length per unit shower energy.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).