Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JPHYSICS::JDispersion Class Reference

Implementation of dispersion for water in deep sea. More...

#include <JDispersion.hh>

Inheritance diagram for JPHYSICS::JDispersion:
JPHYSICS::JDispersionInterface JPHYSICS::JAbstractPDF JPHYSICS::JLED_C JPHYSICS::JPDF_C

Public Member Functions

 JDispersion (const double P_atm)
 Constructor.
 
virtual double getIndexOfRefractionPhase (const double lambda) const
 Index of refraction (phase velocity).
 
virtual double getDispersionPhase (const double lambda) const
 Dispersion of light for phase velocity.
 
virtual double getDispersionGroup (const double lambda) const
 Dispersion of light for group velocity.
 
virtual double getIndexOfRefractionGroup (const double lambda) const
 Index of refraction for group velocity.
 
double getKappa (const double lambda) const
 Get effective index of refraction for muon light.
 
double getKmin (const double lambda) const
 Get smallest index of refraction for Bremsstrahlung light (i.e. point at which dt/dz = 0).
 

Public Attributes

const double P
 Dispersion parameters (x = 1/lambda)
 
const double a0
 offset
 
const double a1
 dn/dP
 
const double a2
 d^1n/(dx)^1
 
const double a3
 d^2n/(dx)^2
 
const double a4
 d^3n/(dx)^3

 

Detailed Description

Implementation of dispersion for water in deep sea.

This class implements the JDispersionInterface interface.

Light dispersion data are taken from reference: David J.L. Bailey, "Monte Carlo tools and analysis methods for understanding the ANTARES experiment and predicting its sensitivity to Dark Matter", PhD thesis, University of Oxford, United Kingdom, 2002.

Definition at line 26 of file JDispersion.hh.

Constructor & Destructor Documentation

◆ JDispersion()

JPHYSICS::JDispersion::JDispersion ( const double P_atm)
inline

Constructor.

Parameters
P_atmambient pressure [atm]

Definition at line 35 of file JDispersion.hh.

35 :
36 P (P_atm), // ambient pressure [atm]
37 a0( 1.3201), // offset
38 a1( 1.4e-5), // dn/dP
39 a2( 16.2566), // d^1n/(dx)^1
40 a3(-4383.0), // d^2n/(dx)^2
41 a4( 1.1455e6) // d^3n/(dx)^3
42 {}
const double a1
dn/dP
const double a0
offset
const double P
Dispersion parameters (x = 1/lambda)
const double a4
d^3n/(dx)^3
const double a2
d^1n/(dx)^1
const double a3
d^2n/(dx)^2

Member Function Documentation

◆ getIndexOfRefractionPhase()

virtual double JPHYSICS::JDispersion::getIndexOfRefractionPhase ( const double lambda) const
inlinevirtual

Index of refraction (phase velocity).

Parameters
lambdawavelenth [nm]
Returns
index of refraction

Implements JPHYSICS::JDispersionInterface.

Definition at line 51 of file JDispersion.hh.

52 {
53 const double x = 1.0 / lambda;
54
55 return a0 + a1*P + x*(a2 + x*(a3 + x*a4));
56 }

◆ getDispersionPhase()

virtual double JPHYSICS::JDispersion::getDispersionPhase ( const double lambda) const
inlinevirtual

Dispersion of light for phase velocity.

Parameters
lambdawavelength of light [nm]
Returns
dn/dlambda

Implements JPHYSICS::JDispersionInterface.

Definition at line 65 of file JDispersion.hh.

66 {
67 const double x = 1.0 / lambda;
68
69 return -x*x*(a2 + x*(2.0*a3 + x*3.0*a4));
70 }

◆ getDispersionGroup()

virtual double JPHYSICS::JDispersion::getDispersionGroup ( const double lambda) const
inlinevirtual

Dispersion of light for group velocity.

Parameters
lambdawavelength of light [nm]
Returns
dn/dlambda

Implements JPHYSICS::JDispersionInterface.

Definition at line 79 of file JDispersion.hh.

80 {
81 const double x = 1.0 / lambda;
82
83 const double n = getIndexOfRefractionPhase(lambda);
84 const double np = getDispersionPhase(lambda);
85 const double npp = x*x*x*(2.0*a2 + x*(6.0*a3 + x*12.0*a4));
86 const double ng = n / (1.0 + np*lambda/n);
87
88 return ng*ng * (2*np*np - n*npp) * lambda / (n*n*n);
89 }
virtual double getDispersionPhase(const double lambda) const
Dispersion of light for phase velocity.
double getIndexOfRefractionPhase()
Get average index of refraction of water corresponding to phase velocity.
const int n
Definition JPolint.hh:791

◆ getIndexOfRefractionGroup()

virtual double JPHYSICS::JDispersionInterface::getIndexOfRefractionGroup ( const double lambda) const
inlinevirtualinherited

Index of refraction for group velocity.

Parameters
lambdawavelenth [nm]
Returns
index of refraction

Definition at line 52 of file JDispersionInterface.hh.

53 {
54 const double n = getIndexOfRefractionPhase(lambda);
55 const double y = getDispersionPhase(lambda);
56
57 return n / (1.0 + y*lambda/n);
58 }
virtual double getDispersionPhase(const double lambda) const =0
Dispersion of light for phase velocity.

◆ getKappa()

double JPHYSICS::JDispersionInterface::getKappa ( const double lambda) const
inlineinherited

Get effective index of refraction for muon light.

Parameters
lambdawavelength of light [nm]
Returns
index of refraction

Definition at line 76 of file JDispersionInterface.hh.

77 {
78 const double n = getIndexOfRefractionPhase(lambda);
79 const double ng = getIndexOfRefractionGroup(lambda);
80
81 return (ng * n - 1.0) / sqrt(n*n - 1.0);
82 }
virtual double getIndexOfRefractionGroup(const double lambda) const
Index of refraction for group velocity.

◆ getKmin()

double JPHYSICS::JDispersionInterface::getKmin ( const double lambda) const
inlineinherited

Get smallest index of refraction for Bremsstrahlung light (i.e. point at which dt/dz = 0).

Parameters
lambdawavelength of light [nm]
Returns
index of refraction

Definition at line 91 of file JDispersionInterface.hh.

92 {
93 const double ng = getIndexOfRefractionGroup(lambda);
94
95 return sqrt(ng*ng - 1.0);
96 }

Member Data Documentation

◆ P

const double JPHYSICS::JDispersion::P

Dispersion parameters (x = 1/lambda)

ambient pressure [atm]

Definition at line 95 of file JDispersion.hh.

◆ a0

const double JPHYSICS::JDispersion::a0

offset

Definition at line 96 of file JDispersion.hh.

◆ a1

const double JPHYSICS::JDispersion::a1

dn/dP

Definition at line 97 of file JDispersion.hh.

◆ a2

const double JPHYSICS::JDispersion::a2

d^1n/(dx)^1

Definition at line 98 of file JDispersion.hh.

◆ a3

const double JPHYSICS::JDispersion::a3

d^2n/(dx)^2

Definition at line 99 of file JDispersion.hh.

◆ a4

const double JPHYSICS::JDispersion::a4

d^3n/(dx)^3

Definition at line 100 of file JDispersion.hh.


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