1 #ifndef __JPHYSICS__JGEANE__
2 #define __JPHYSICS__JGEANE__
17 namespace JPP {
using namespace JPHYSICS; }
44 virtual double getA()
const = 0;
52 virtual double getB()
const = 0;
62 virtual double getE(
const double E,
const double dx)
const = 0;
72 virtual double getX(
const double E0,
73 const double E1)
const = 0;
85 return this->
getE(E, dx);
97 return this->
getX(E, 0.0);
143 virtual double getA()
const override
154 virtual double getB()
const override
167 virtual double getE(
const double E,
const double dx)
const override
169 const double y = (
a/
b +
E) *
exp(-
b*dx) -
a/
b;
185 virtual double getX(
const double E0,
186 const double E1)
const override
188 return -log((
a +
b*E1) / (
a+
b*E0)) /
b;
206 protected std::map<double, JGeane_t>
229 virtual double getA()
const override
242 virtual double getB()
const override
255 virtual double getE(
const double E,
const double dx)
const override
262 const_iterator p = this->lower_bound(E1);
268 const double x2 = p->second.getX(E1, p->first);
271 return p->second.getE(E1, x1);
277 }
while (p != this->begin());
291 virtual double getX(
const double E0,
292 const double E1)
const override
299 const_iterator p = this->lower_bound(E);
306 return dx + p->second.getX(E, E1);
309 dx += p->second.getX(E, p->first);
312 }
while (p != this->begin());
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 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.
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.
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"` typeset -Z 4 STRING JOpera1D -f hydrophone.root
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
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 usage $script[input file[working directory[option]]] nWhere option can be E
virtual double getA() const override
Get energy loss constant.
virtual double getA() const override
Get energy loss constant.