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 MASS_MUON
muon mass [GeV]
 
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).