Jpp  15.0.1
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...
 
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 204 of file JGeane.hh.

Constructor & Destructor Documentation

JPHYSICS::JGeaneWater::JGeaneWater ( )
inline

Default constructor.

Definition at line 212 of file JGeane.hh.

213  {
214  using namespace std;
215 
216  this->insert(make_pair( 0.0e0, JGeane_t( 2.30e-1 * DENSITY_SEA_WATER, 15.50e-4 * DENSITY_SEA_WATER)));
217  this->insert(make_pair(30.0e0, JGeane_t( 2.67e-1 * DENSITY_SEA_WATER, 3.40e-4 * DENSITY_SEA_WATER)));
218  this->insert(make_pair(35.3e3, JGeane_t(-6.50e-1 * DENSITY_SEA_WATER, 3.66e-4 * DENSITY_SEA_WATER)));
219  }
Function object for the energy loss of the muon.
Definition: JGeane.hh:122
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 229 of file JGeane.hh.

230  {
231  return 2.30e-1 * DENSITY_SEA_WATER; //This is the value for low energy (<30 GeV), the value used for step(ds) and getRange())
232  }
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 Bremstrahlung [m^-1]

Implements JPHYSICS::JGeane.

Definition at line 242 of file JGeane.hh.

243  {
244  return 3.40e-4 * DENSITY_SEA_WATER;
245  }
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 255 of file JGeane.hh.

256  {
257  double E1 = E;
258  double x1 = dx;
259 
260  if (E1 > MASS_MUON) {
261 
262  const_iterator p = this->lower_bound(E1);
263 
264  do {
265 
266  --p;
267 
268  const double x2 = p->second.getX(E1, p->first);
269 
270  if (x2 > x1) {
271  return p->second.getE(E1, x1);
272  }
273 
274  E1 = p->first;
275  x1 -= x2;
276 
277  } while (p != this->begin());
278  }
279 
280  return E1;
281  }
static const double MASS_MUON
muon mass [GeV]
then usage E
Definition: JMuonPostfit.sh:35
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 291 of file JGeane.hh.

293  {
294  double E = E0;
295  double dx = 0.0;
296 
297  if (E > MASS_MUON) {
298 
299  const_iterator p = this->lower_bound(E);
300 
301  do {
302 
303  --p;
304 
305  if (E1 > p->first) {
306  return dx + p->second.getX(E, E1);
307  }
308 
309  dx += p->second.getX(E, p->first);
310  E = p->first;
311 
312  } while (p != this->begin());
313  }
314 
315  return dx;
316  }
static const double MASS_MUON
muon mass [GeV]
then usage E
Definition: JMuonPostfit.sh:35
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 83 of file JGeane.hh.

84  {
85  return this->getE(E, dx);
86  }
virtual double getE(const double E, const double dx) const =0
Get energy of muon after specified distance.
then usage E
Definition: JMuonPostfit.sh:35
double JPHYSICS::JGeane::operator() ( const double  E) const
inlineinherited

Range of muon.

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

Definition at line 95 of file JGeane.hh.

96  {
97  return this->getX(E, 0.0);
98  }
then usage E
Definition: JMuonPostfit.sh:35
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 106 of file JGeane.hh.

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

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