Jpp  18.2.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
JPHYSICS::JGeaneWater Class Reference

Function object for energy dependent energy loss of the muon. More...

#include <JGeane.hh>

Inheritance diagram for JPHYSICS::JGeaneWater:
JPHYSICS::JGeane std::map< double, JGeane_t >

Public Member Functions

 JGeaneWater ()
 Default constructor. More...
 
virtual double getA () const override
 Get energy loss constant. More...
 
virtual double getB () const override
 Get energy loss constant. More...
 
virtual double getE (const double E, const double dx) const override
 Get energy of muon after specified distance. More...
 
double getEa (const double E, const double dx) const
 Get energy loss due to ionisation. More...
 
double getEb (const double E, const double dx) const
 Get energy loss due to pair production and bremsstrahlung. More...
 
virtual double getX (const double E0, const double E1) const override
 Get distance traveled by muon. More...
 
double operator() (const double E, const double dx) const
 Energy of muon after specified distance. More...
 
double operator() (const double E) const
 Range of muon. More...
 
double operator() () const
 Equivalent unit track length per unit shower energy and per unit track length. More...
 

Detailed Description

Function object for energy dependent energy loss of the muon.

Approximate values of energy loss parameters taken from reference: Proceedings of ICRC 2001, "Precise parametrizations of muon energy losses in water", S. Klimushin, E. Bugaev and I. Sokalski.

Definition at line 206 of file JGeane.hh.

Constructor & Destructor Documentation

JPHYSICS::JGeaneWater::JGeaneWater ( )
inline

Default constructor.

Definition at line 214 of file JGeane.hh.

215  {
216  using namespace std;
217 
218  this->insert(make_pair( 0.0e0, JGeane_t( 2.30e-1 * DENSITY_SEA_WATER, 15.50e-4 * DENSITY_SEA_WATER)));
219  this->insert(make_pair(30.0e0, JGeane_t( 2.67e-1 * DENSITY_SEA_WATER, 3.40e-4 * DENSITY_SEA_WATER)));
220  this->insert(make_pair(35.3e3, JGeane_t(-6.50e-1 * DENSITY_SEA_WATER, 3.66e-4 * DENSITY_SEA_WATER)));
221  }
Function object for the energy loss of the muon.
Definition: JGeane.hh:124
static const double DENSITY_SEA_WATER
Fixed environment values.

Member Function Documentation

virtual double JPHYSICS::JGeaneWater::getA ( ) const
inlineoverridevirtual

Get energy loss constant.

N.B. The return value corresponds to the low-energy regime.

Returns
Energy loss due to ionisation [GeV/m]

Implements JPHYSICS::JGeane.

Definition at line 231 of file JGeane.hh.

232  {
233  return 2.30e-1 * DENSITY_SEA_WATER; //This is the value for low energy (<30 GeV), the value used for step(ds) and getRange())
234  }
static const double DENSITY_SEA_WATER
Fixed environment values.
virtual double JPHYSICS::JGeaneWater::getB ( ) const
inlineoverridevirtual

Get energy loss constant.

N.B. The return value corresponds to the medium-energy regime.

Returns
Energy loss due to pair production and bremsstrahlung [m^-1]

Implements JPHYSICS::JGeane.

Definition at line 244 of file JGeane.hh.

245  {
246  return 3.40e-4 * DENSITY_SEA_WATER;
247  }
static const double DENSITY_SEA_WATER
Fixed environment values.
virtual double JPHYSICS::JGeaneWater::getE ( const double  E,
const double  dx 
) const
inlineoverridevirtual

Get energy of muon after specified distance.

Parameters
EEnergy of muon [GeV]
dxdistance traveled [m]
Returns
Energy of muon [GeV]

Implements JPHYSICS::JGeane.

Definition at line 257 of file JGeane.hh.

258  {
259  double E1 = E;
260  double x1 = dx;
261 
262  if (E1 > MASS_MUON / getSinThetaC()) {
263 
264  const_iterator p = this->lower_bound(E1);
265 
266  do {
267 
268  --p;
269 
270  const double x2 = p->second.getX(E1, p->first);
271 
272  if (x2 > x1) {
273  return p->second.getE(E1, x1);
274  }
275 
276  E1 = p->first;
277  x1 -= x2;
278 
279  } while (p != this->begin());
280  }
281 
282  return E1;
283  }
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
static const double MASS_MUON
muon mass [GeV]
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
double JPHYSICS::JGeaneWater::getEa ( const double  E,
const double  dx 
) const
inline

Get energy loss due to ionisation.

Parameters
Einitial energy [GeV]
dxdistance traveled [m]
Returns
energy loss due to ionisation [GeV]

Definition at line 295 of file JGeane.hh.

296  {
297  using namespace std;
298  using namespace JPP;
299 
300  double Ea = 0.0;
301 
302  double E1 = E;
303  double x1 = dx;
304 
305  if (E1 > MASS_MUON / getSinThetaC()) {
306 
307  map<double, JGeane_t>::const_iterator p = this->lower_bound(E1);
308 
309  do {
310 
311  --p;
312 
313  const double x2 = p->second.getX(E1, p->first);
314 
315  Ea += (x2 > x1 ? x1 : x2) * p->second.getA();
316  E1 = p->first;
317 
318  x1 -= x2;
319 
320  } while (p != this->cbegin() && x1 > 0.0);
321  }
322 
323  return Ea;
324  }
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
static const double MASS_MUON
muon mass [GeV]
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
double JPHYSICS::JGeaneWater::getEb ( const double  E,
const double  dx 
) const
inline

Get energy loss due to pair production and bremsstrahlung.

Parameters
Einitial energy [GeV]
dxdistance traveled [m]
Returns
energy loss due to pair production and bremsstrahlung [GeV]

Definition at line 334 of file JGeane.hh.

335  {
336  const double dE = E - getE(E, dx);
337 
338  return dE - getEa(E, dx);
339  }
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
double getEa(const double E, const double dx) const
Get energy loss due to ionisation.
Definition: JGeane.hh:295
virtual double getE(const double E, const double dx) const override
Get energy of muon after specified distance.
Definition: JGeane.hh:257
virtual double JPHYSICS::JGeaneWater::getX ( const double  E0,
const double  E1 
) const
inlineoverridevirtual

Get distance traveled by muon.

Parameters
E0Energy of muon at start [GeV]
E1Energy of muon at end [GeV]
Returns
distance traveled [m]

Implements JPHYSICS::JGeane.

Definition at line 349 of file JGeane.hh.

351  {
352  double E = E0;
353  double dx = 0.0;
354 
355  if (E > MASS_MUON / getSinThetaC()) {
356 
357  const_iterator p = this->lower_bound(E);
358 
359  do {
360 
361  --p;
362 
363  if (E1 > p->first) {
364  return dx + p->second.getX(E, E1);
365  }
366 
367  dx += p->second.getX(E, p->first);
368  E = p->first;
369 
370  } while (p != this->begin());
371  }
372 
373  return dx;
374  }
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
static const double MASS_MUON
muon mass [GeV]
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
double JPHYSICS::JGeane::operator() ( const double  E,
const double  dx 
) const
inlineinherited

Energy of muon after specified distance.

Parameters
EEnergy of muon [GeV]
dxdistance traveled [m]
Returns
Energy of muon [GeV]

Definition at line 85 of file JGeane.hh.

86  {
87  return this->getE(E, dx);
88  }
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
virtual double getE(const double E, const double dx) const =0
Get energy of muon after specified distance.
double JPHYSICS::JGeane::operator() ( const double  E) const
inlineinherited

Range of muon.

Parameters
EEnergy of muon [GeV]
Returns
range [m]

Definition at line 97 of file JGeane.hh.

98  {
99  return this->getX(E, 0.0);
100  }
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
virtual double getX(const double E0, const double E1) const =0
Get distance traveled by muon.
double JPHYSICS::JGeane::operator() ( ) const
inlineinherited

Equivalent unit track length per unit shower energy and per unit track length.

Returns
equivalent unit track length [Gev^-1]

Definition at line 108 of file JGeane.hh.

109  {
110  return this->getB() * geanc();
111  }
double geanc()
Equivalent muon track length per unit shower energy.
Definition: JGeane.hh:28
virtual double getB() const =0
Get energy loss constant.

The documentation for this class was generated from the following file: