1 #ifndef __JPHYSICS__JGEANE__
2 #define __JPHYSICS__JGEANE__
17 namespace JPP {
using namespace JPHYSICS; }
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());
virtual double getB() const override
Get energy loss constant.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
virtual double getX(const double E0, const double E1) const override
Get distance traveled by muon.
double geanc()
Equivalent muon track length per unit shower energy.
virtual double getE(const double E, const double dx) const =0
Get energy of muon after specified distance.
double getEa(const double E, const double dx) const
Get energy loss due to ionisation.
Function object for the energy loss of the muon.
double operator()() const
Equivalent unit track length per unit shower energy and per unit track length.
static const double MASS_MUON
muon mass [GeV]
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.
virtual double getX(const double E0, const double E1) const override
Get distance traveled by muon.
static const double DENSITY_SEA_WATER
Fixed environment values.
double getEb(const double E, const double dx) const
Get energy loss due to pair production and bremsstrahlung.
virtual double getX(const double E0, const double E1) const =0
Get distance traveled by muon.
virtual double getE(const double E, const double dx) const override
Get energy of muon after specified distance.
virtual double getB() const =0
Get energy loss constant.
virtual double getA() const =0
Get energy loss constant.
Interface for muon energy loss.
virtual double getB() const override
Get energy loss constant.
JGeane_t(const double __a, const double __b)
constructor
then set_variable DIR else fatal Wrong number of arguments fi for INPUT_FILE in ls rt $DIR stage * log
virtual double getE(const double E, const double dx) const override
Get energy of muon after specified distance.
double operator()(const double E) const
Range of muon.
Function object for energy dependent energy loss of the muon.
static const double DENSITY_ROCK
Density of rock [g/cm^3].
double operator()(const double E, const double dx) const
Energy of muon after specified distance.
JGeaneWater()
Default constructor.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
virtual double getA() const override
Get energy loss constant.
virtual double getA() const override
Get energy loss constant.