Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
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.
 
virtual double getA () const override
 Get energy loss constant.
 
virtual double getB () const override
 Get energy loss constant.
 
virtual double getE (const double E, const double dx) const override
 Get energy of muon after specified distance.
 
double getEa (const double E, const double dx) const
 Get energy loss due to ionisation.
 
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 override
 Get distance traveled by muon.
 
double operator() (const double E, const double dx) const
 Energy of muon after specified distance.
 
double operator() (const double E) const
 Range of muon.
 
double operator() () const
 Equivalent unit track length per unit shower energy and per unit track length.
 

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

◆ JGeaneWater()

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 }
static const double DENSITY_SEA_WATER
Fixed environment values.

Member Function Documentation

◆ getA()

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 }

◆ getB()

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 }

◆ getE()

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 }
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.

◆ getEa()

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 }
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).

◆ getEb()

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 }
virtual double getE(const double E, const double dx) const override
Get energy of muon after specified distance.
Definition JGeane.hh:257
double getEa(const double E, const double dx) const
Get energy loss due to ionisation.
Definition JGeane.hh:295

◆ getX()

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 }

◆ operator()() [1/3]

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 }
virtual double getE(const double E, const double dx) const =0
Get energy of muon after specified distance.

◆ operator()() [2/3]

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 }
virtual double getX(const double E0, const double E1) const =0
Get distance traveled by muon.

◆ operator()() [3/3]

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 }
virtual double getB() const =0
Get energy loss constant.
double geanc()
Equivalent muon track length per unit shower energy.
Definition JGeane.hh:28

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