Jpp 20.0.0-27-g39925593c-D
the software that should make you happy
Loading...
Searching...
No Matches
Classes | Static Public Member Functions | Static Public Attributes | List of all members
JPHYSICS::JDeltaRays Struct Reference

Auxiliary data structure for delta-rays. More...

#include <JDeltaRays.hh>

Classes

struct  FIT
 Auxiliary data structure to encapsulate energy loss methods based on fit. More...
 
struct  JFormFactor
 Auxiliary class for 2nd order polynomial form factor. More...
 

Static Public Member Functions

static constexpr double getZoverA (const JSeaWater::atom_type &parameters)
 Get ratio charge to mass number for given atomic parameters.
 
static constexpr double getZoverA ()
 Get average ratio charge to mass number for sea water.
 
static double getTmin ()
 Get minimum delta-ray kinetic energy.
 
static double getTmax (const double E, const double M)
 Get maximum delta-ray kinetic energy for given lepton energy and mass.
 
template<class JFormFactor_t >
static double getCount (const double E, const double M, const double Tmin, const double Tmax, const double Z, const double A, const JFormFactor_t &F, const int N=1000000)
 Get number of delta-rays per unit track length for an ionising particle with given energy and given mass.
 
template<class JFormFactor_t >
static double getEnergyLoss (const double E, const double M, const double Tmin, const double Tmax, const double Z, const double A, const JFormFactor_t &F, const int N=1000000)
 Get equivalent EM-shower energy loss due to delta-rays per unit track length
for an ionising particle with given energy and given mass and for a given form factor.
 
static double getCount (const double E, const double M, const double Tmin, const double Tmax, const double Z, const double A)
 Get number of delta-rays per unit track length for an ionising particle with given energy and given mass.
 
static double getEnergyLoss (const double E, const double M, const double Tmin, const double Tmax, const double Z, const double A)
 Get equivalent EM-shower energy loss due to delta-rays per unit track length
for an ionising particle with given energy and given mass.
 
static double getCount (const double E, const double M, const double Tmin, const double Tmax)
 Get number of delta-rays per unit track length for an ionising particle with given energy and given mass in sea water.
 
static double getEnergyLoss (const double E, const double M, const double Tmin, const double Tmax)
 Get equivalent EM-shower energy loss due to delta-rays per unit track length
for an ionising particle with given energy and given mass in sea water.
 
static double getEnergylossFromElectron (const double E, const JEnergyRange T_GeV=JEnergyRange(TMIN_GEV, TMAX_GEV))
 Equivalent EM-shower energy loss due to delta-rays per unit electron track length in sea water.
 
static double getEnergyLossFromMuon (const double E, const JEnergyRange T_GeV=JEnergyRange(TMIN_GEV, TMAX_GEV))
 Equivalent EM-shower energy loss due to delta-rays per unit muon track length in sea water.
 
static double getEnergyLossFromTau (const double E, const JEnergyRange T_GeV=JEnergyRange(TMIN_GEV, TMAX_GEV))
 Equivalent EM-shower energy loss due to delta-rays per unit tau track length in sea water.
 
static double getProbability (const double x)
 Emission profile of photons from delta-rays.
 

Static Public Attributes

static constexpr double TMIN_GEV = 0.000915499
 Minimum allowed delta-ray kinetic energy [GeV].
 
static constexpr double TMAX_GEV = 1.0e10
 Maximum allowed delta-ray kinetic energy [GeV].
 
static constexpr double K = 0.307075
 internal constant [MeV mol^-1 cm^2]
 

Detailed Description

Auxiliary data structure for delta-rays.

Definition at line 21 of file JDeltaRays.hh.

Member Function Documentation

◆ getZoverA() [1/2]

static constexpr double JPHYSICS::JDeltaRays::getZoverA ( const JSeaWater::atom_type & parameters)
inlinestaticconstexpr

Get ratio charge to mass number for given atomic parameters.

Parameters
parametersatomic parameters
Returns
ratio charge to mass number

Definition at line 34 of file JDeltaRays.hh.

35 {
36 return parameters() * parameters.Z / parameters.A;
37 }

◆ getZoverA() [2/2]

static constexpr double JPHYSICS::JDeltaRays::getZoverA ( )
inlinestaticconstexpr

Get average ratio charge to mass number for sea water.

Returns
ratio charge to mass number

Definition at line 45 of file JDeltaRays.hh.

46 {
47 return (getZoverA(JSeaWater::H) +
51#ifdef RADIATION
52 /**/ +
53 getZoverA(JSeaWater::Ca) +
54 getZoverA(JSeaWater::Mg) +
55 getZoverA(JSeaWater::K) +
56 getZoverA(JSeaWater::S)
57#endif
58 );
59 }
static constexpr double getZoverA()
Get average ratio charge to mass number for sea water.
Definition JDeltaRays.hh:45
static constexpr atom_type Cl
Definition JSeaWater.hh:32
static constexpr atom_type H
Definition JSeaWater.hh:29
static constexpr atom_type O
Definition JSeaWater.hh:30
static constexpr atom_type Na
Definition JSeaWater.hh:31

◆ getTmin()

static double JPHYSICS::JDeltaRays::getTmin ( )
inlinestatic

Get minimum delta-ray kinetic energy.

Returns
minimum delta-ray kinetic energy [GeV]

Definition at line 67 of file JDeltaRays.hh.

68 {
69 const double Emin = MASS_ELECTRON / getSinThetaC(); // delta-ray Cherenkov threshold [GeV]
70
71 return getKineticEnergy(Emin, MASS_ELECTRON);
72 }
static const double MASS_ELECTRON
electron mass [GeV]
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
double getKineticEnergy(const double E, const double m)
Get kinetic energy of particle with given energy and mass.

◆ getTmax()

static double JPHYSICS::JDeltaRays::getTmax ( const double E,
const double M )
inlinestatic

Get maximum delta-ray kinetic energy for given lepton energy and mass.


This formula is taken from reference https://pdg.lbl.gov/2020/reviews/rpp2020-rev-passage-particles-matter.pdf

N.B.: This function should not be used for electrons.
For electrons use 0.5 * getKineticEnergy(E, MASS_ELECTRON) instead.

Parameters
Eparticle energy [GeV]
Mparticle mass [GeV]
Returns
maximum delta-ray kinetic energy [GeV]

Definition at line 87 of file JDeltaRays.hh.

89 {
90 const double ratio = MASS_ELECTRON / M;
91
92 const double gamma = E / M;
93 const double beta = getBeta(gamma);
94
95 return ( (2.0*MASS_ELECTRON*beta*beta*gamma*gamma) /
96 (1.0 + 2.0*gamma*ratio + ratio*ratio) );
97 }
double getBeta(const double gamma)
Get relative velocity given Lorentz boost.

◆ getCount() [1/3]

template<class JFormFactor_t >
static double JPHYSICS::JDeltaRays::getCount ( const double E,
const double M,
const double Tmin,
const double Tmax,
const double Z,
const double A,
const JFormFactor_t & F,
const int N = 1000000 )
inlinestatic

Get number of delta-rays per unit track length for an ionising particle with given energy and given mass.

The template parameter corresponds to a class which contains an operator()(const double)
to compute the form factor corresponding to a given delta-ray kinetic energy.

Parameters
Eparticle energy [GeV]
Mparticle mass [GeV]
Tminminimum delta-ray kinetic energy [GeV]
Tmaxmaximum delta-ray kinetic energy [GeV]
Zatomic number [unit]
Aatomic mass [g/mol]
Fform factor functor
Nnumber of points for numeric integration
Returns
delta-ray count [g^-1 cm^2]

Definition at line 157 of file JDeltaRays.hh.

165 {
166 if (Tmax > Tmin) {
167
168 const double gamma = E / M;
169 const double beta = getBeta(gamma);
170
171 const double W = 0.5 * K * (Z/A) * (1.0/(beta*beta)) * 1.0e-3; // [GeV g^-1 cm^2]
172
173 const double xmin = 1.0/Tmax;
174 const double xmax = 1.0/Tmin;
175 const double dx = (xmax - xmin) / ((double) N);
176
177 double count = 0.0;
178
179 for (double x = xmin; x <= xmax; x += dx) {
180
181 const double T = 1.0/x;
182 const double y = W * F(T) * dx; // [g^-1 cm^2]
183
184 count += y;
185 }
186
187 return count; // [g^-1 cm^2]
188
189 } else {
190
191 return 0.0;
192 }
193 }
static constexpr double K
internal constant [MeV mol^-1 cm^2]
Definition JDeltaRays.hh:25

◆ getEnergyLoss() [1/3]

template<class JFormFactor_t >
static double JPHYSICS::JDeltaRays::getEnergyLoss ( const double E,
const double M,
const double Tmin,
const double Tmax,
const double Z,
const double A,
const JFormFactor_t & F,
const int N = 1000000 )
inlinestatic

Get equivalent EM-shower energy loss due to delta-rays per unit track length
for an ionising particle with given energy and given mass and for a given form factor.

The template parameter corresponds to a class which contains an operator()(const double)
to compute the form factor corresponding to a given delta-ray kinetic energy.

Parameters
Eparticle energy [GeV]
Mparticle mass [GeV]
Tminminimum delta-ray kinetic energy [GeV]
Tmaxmaximum delta-ray kinetic energy [GeV]
Zatomic number [unit]
Aatomic mass [g/mol]
Fform factor functor
Nnumber of points for numeric integration
Returns
equivalent energy loss [GeV g^-1 cm^2]

Definition at line 214 of file JDeltaRays.hh.

222 {
223 if (Tmax > Tmin) {
224
225 const double gamma = E / M;
226 const double beta = getBeta(gamma);
227
228 const double W = 0.5 * K * (Z/A) * (1.0/(beta*beta)); // [MeV g^-1 cm^2]
229
230 const double xmin = log(Tmin);
231 const double xmax = log(Tmax);
232 const double dx = (xmax - xmin) / ((double) N);
233
234 double weight = 0.0;
235
236 for (double x = xmin; x <= xmax; x += dx) {
237
238 const double T = exp(x);
239 const double y = W * F(T) * dx; // [MeV g^-1 cm^2]
240
241 weight += y;
242 }
243
244 return weight * 1.0e-3; // [GeV g^-1 cm^2]
245
246 } else {
247
248 return 0.0;
249 }
250 }

◆ getCount() [2/3]

static double JPHYSICS::JDeltaRays::getCount ( const double E,
const double M,
const double Tmin,
const double Tmax,
const double Z,
const double A )
inlinestatic

Get number of delta-rays per unit track length for an ionising particle with given energy and given mass.

N.B: For this function a form factor $F(T) = \frac{1}{2E^2}T^2 - \frac{\beta^2}{T_{\rm max}} + 1$ is assumed, where:

  • $T$ corresponds to the delta-ray kinetic energy,
  • $T_{\rm max}$ to the maximum delta-ray kinetic energy,
  • $E$ to the ionising particle's energy and
  • $\beta$ to the corresponding particle velocity, relative to the speed of light.
Parameters
Eparticle energy [GeV]
Mparticle mass [GeV]
Tminminimum delta-ray kinetic energy [GeV]
Tmaxmaximum delta-ray kinetic energy [GeV]
Zatomic number [unit]
Aatomic mass [g/mol]
Returns
delta-ray count [g^-1 cm^2]

Definition at line 270 of file JDeltaRays.hh.

276 {
277 if (Tmax > Tmin) {
278
279 const double gamma = E / M;
280 const double beta = getBeta(gamma);
281
282 const double a = 0.5/(E*E);
283 const double b = beta*beta/Tmax;
284 const double c = 1.0;
285
286 const double W = 0.5 * K * (Z/A) * (1.0/(beta*beta)); // [MeV g^-1 cm^2]
287
288 const double dT = Tmax - Tmin;
289 const double rT = Tmax / Tmin;
290 const double mT = Tmax * Tmin;
291
292 return W * (a*dT - b*log(rT) + c*dT/mT) * 1.0e-3; // [g^-1 cm^2]
293
294 } else {
295
296 return 0.0;
297 }
298 }

◆ getEnergyLoss() [2/3]

static double JPHYSICS::JDeltaRays::getEnergyLoss ( const double E,
const double M,
const double Tmin,
const double Tmax,
const double Z,
const double A )
inlinestatic

Get equivalent EM-shower energy loss due to delta-rays per unit track length
for an ionising particle with given energy and given mass.



N.B: For this function a form factor $F(T) = \frac{1}{2E^2}T^2 - \frac{\beta^2}{T_{\rm max}} + 1$ is assumed, where:

  • $T$ corresponds to the delta-ray kinetic energy,
  • $T_{\rm max}$ to the maximum delta-ray kinetic energy,
  • $E$ to the ionising particle's energy and
  • $\beta$ to the corresponding particle velocity, relative to the speed of light.
Parameters
Eparticle energy [GeV]
Mparticle mass [GeV]
Tminminimum delta-ray kinetic energy [GeV]
Tmaxmaximum delta-ray kinetic energy [GeV]
Zatomic number [unit]
Aatomic mass [g/mol]
Returns
equivalent energy loss [GeV g^-1 cm^2]

Definition at line 319 of file JDeltaRays.hh.

325 {
326 if (Tmax > Tmin) {
327
328 const double gamma = E / M;
329 const double beta = getBeta(gamma);
330
331 const double a = 0.25/(E*E);
332 const double b = beta*beta/Tmax;
333 const double c = 1.0;
334
335 const double W = 0.5 * K * (Z/A) * (1.0/(beta*beta)); // [MeV g^-1 cm^2]
336
337 const double sT = Tmax + Tmin;
338 const double dT = Tmax - Tmin;
339 const double rT = Tmax / Tmin;
340
341 return W * (a*sT*dT - b*dT + c*log(rT)) * 1.0e-3; // [GeV g^-1 cm^2]
342
343 } else {
344
345 return 0.0;
346 }
347 }

◆ getCount() [3/3]

static double JPHYSICS::JDeltaRays::getCount ( const double E,
const double M,
const double Tmin,
const double Tmax )
inlinestatic

Get number of delta-rays per unit track length for an ionising particle with given energy and given mass in sea water.

Parameters
Eparticle energy [GeV]
Mparticle mass [GeV]
Tminminimum delta-ray kinetic energy [GeV]
Tmaxmaximum delta-ray kinetic energy [GeV]
Returns
delta-ray count [g^-1 cm^2]

Definition at line 359 of file JDeltaRays.hh.

363 {
364 return getCount(E, M, Tmin, Tmax, 1.0, 1.0) * getZoverA();
365 }
static double getCount(const double E, const double M, const double Tmin, const double Tmax, const double Z, const double A, const JFormFactor_t &F, const int N=1000000)
Get number of delta-rays per unit track length for an ionising particle with given energy and given m...

◆ getEnergyLoss() [3/3]

static double JPHYSICS::JDeltaRays::getEnergyLoss ( const double E,
const double M,
const double Tmin,
const double Tmax )
inlinestatic

Get equivalent EM-shower energy loss due to delta-rays per unit track length
for an ionising particle with given energy and given mass in sea water.

Parameters
Eparticle energy [GeV]
Mparticle mass [GeV]
Tminminimum delta-ray kinetic energy [GeV]
Tmaxmaximum delta-ray kinetic energy [GeV]
Returns
equivalent energy loss [GeV g^-1 cm^2]

Definition at line 378 of file JDeltaRays.hh.

382 {
383 return getEnergyLoss(E, M, Tmin, Tmax, 1.0, 1.0) * getZoverA();
384 }
static double getEnergyLoss(const double E, const double M, const double Tmin, const double Tmax, const double Z, const double A, const JFormFactor_t &F, const int N=1000000)
Get equivalent EM-shower energy loss due to delta-rays per unit track length for an ionising particle...

◆ getEnergylossFromElectron()

static double JPHYSICS::JDeltaRays::getEnergylossFromElectron ( const double E,
const JEnergyRange T_GeV = JEnergyRange(TMIN_GEVTMAX_GEV) )
inlinestatic

Equivalent EM-shower energy loss due to delta-rays per unit electron track length in sea water.

Parameters
Eelectron energy [GeV]
T_GeVallowed kinetic energy range of delta-rays [GeV]
Returns
equivalent energy loss [GeV/m]

Definition at line 394 of file JDeltaRays.hh.

396 {
397 const double Tmin = T_GeV.constrain(getTmin());
398 const double Tmax = T_GeV.constrain(0.5 * getKineticEnergy(E, MASS_ELECTRON));
399
400 return getEnergyLoss(E, MASS_ELECTRON, Tmin, Tmax) * DENSITY_SEA_WATER * 1.0e2;
401 }
static const double DENSITY_SEA_WATER
Fixed environment values.
static double getTmin()
Get minimum delta-ray kinetic energy.
Definition JDeltaRays.hh:67

◆ getEnergyLossFromMuon()

static double JPHYSICS::JDeltaRays::getEnergyLossFromMuon ( const double E,
const JEnergyRange T_GeV = JEnergyRange(TMIN_GEVTMAX_GEV) )
inlinestatic

Equivalent EM-shower energy loss due to delta-rays per unit muon track length in sea water.

Parameters
Emuon energy [GeV]
T_GeVallowed kinetic energy range of delta-rays [GeV]
Returns
equivalent energy loss [GeV/m]

Definition at line 411 of file JDeltaRays.hh.

413 {
414 const double Tmin = T_GeV.constrain(getTmin());
415 const double Tmax = T_GeV.constrain(getTmax(E, MASS_MUON));
416
417 return getEnergyLoss(E, MASS_MUON, Tmin, Tmax) * DENSITY_SEA_WATER * 1.0e2;
418 }
static double getTmax(const double E, const double M)
Get maximum delta-ray kinetic energy for given lepton energy and mass.
Definition JDeltaRays.hh:87

◆ getEnergyLossFromTau()

static double JPHYSICS::JDeltaRays::getEnergyLossFromTau ( const double E,
const JEnergyRange T_GeV = JEnergyRange(TMIN_GEVTMAX_GEV) )
inlinestatic

Equivalent EM-shower energy loss due to delta-rays per unit tau track length in sea water.

Parameters
Etau energy [GeV]
T_GeVallowed kinetic energy range of delta-rays [GeV]
Returns
equivalent energy loss [GeV/m]

Definition at line 428 of file JDeltaRays.hh.

430 {
431 const double Tmin = T_GeV.constrain(getTmin());
432 const double Tmax = T_GeV.constrain(getTmax(E, MASS_TAU));
433
434 return getEnergyLoss(E, MASS_TAU, Tmin, Tmax) * DENSITY_SEA_WATER * 1.0e2;
435 }
static const double MASS_TAU
tau mass [GeV]

◆ getProbability()

static double JPHYSICS::JDeltaRays::getProbability ( const double x)
inlinestatic

Emission profile of photons from delta-rays.

Profile is taken from reference ANTARES-SOFT-2002-015, J. Brunner (fig. 3).

Parameters
xcosine emission angle
Returns
probability

Definition at line 508 of file JDeltaRays.hh.

509 {
510 //return 1.0 / (4.0 * PI);
511 return 0.188 * exp(-1.25 * pow(fabs(x - 0.90), 1.30));
512 }
T pow(const T &x, const double y)
Power .
Definition JMath.hh:97

Member Data Documentation

◆ TMIN_GEV

constexpr double JPHYSICS::JDeltaRays::TMIN_GEV = 0.000915499
staticconstexpr

Minimum allowed delta-ray kinetic energy [GeV].

Definition at line 23 of file JDeltaRays.hh.

◆ TMAX_GEV

constexpr double JPHYSICS::JDeltaRays::TMAX_GEV = 1.0e10
staticconstexpr

Maximum allowed delta-ray kinetic energy [GeV].

Definition at line 24 of file JDeltaRays.hh.

◆ K

constexpr double JPHYSICS::JDeltaRays::K = 0.307075
staticconstexpr

internal constant [MeV mol^-1 cm^2]

Definition at line 25 of file JDeltaRays.hh.


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