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 | Public Attributes | List of all members
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. More...
 
virtual double getIndexOfRefractionPhase (const double lambda) const
 Index of refraction (phase velocity). More...
 
virtual double getDispersionPhase (const double lambda) const
 Dispersion of light for phase velocity. More...
 
virtual double getDispersionGroup (const double lambda) const
 Dispersion of light for group velocity. More...
 
virtual double getIndexOfRefractionGroup (const double lambda) const
 Index of refraction for group velocity. More...
 
double getKappa (const double lambda) const
 Get effective index of refraction for muon light. More...
 
double getKmin (const double lambda) const
 Get smallest index of refraction for Bremsstrahlung light (i.e. point at which dt/dz = 0). More...
 

Public Attributes

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

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

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 a4
d^3n/(dx)^3
Definition: JDispersion.hh:100
const double a1
dn/dP
Definition: JDispersion.hh:97
const double P
Dispersion parameters (x = 1/lambda)
Definition: JDispersion.hh:95
const double a0
offset
Definition: JDispersion.hh:96
const double a2
d^1n/(dx)^1
Definition: JDispersion.hh:98
const double a3
d^2n/(dx)^2
Definition: JDispersion.hh:99

Member Function Documentation

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  }
const double a4
d^3n/(dx)^3
Definition: JDispersion.hh:100
const double a1
dn/dP
Definition: JDispersion.hh:97
const double P
Dispersion parameters (x = 1/lambda)
Definition: JDispersion.hh:95
const double a0
offset
Definition: JDispersion.hh:96
const double a2
d^1n/(dx)^1
Definition: JDispersion.hh:98
const double a3
d^2n/(dx)^2
Definition: JDispersion.hh:99
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  }
const double a4
d^3n/(dx)^3
Definition: JDispersion.hh:100
const double a2
d^1n/(dx)^1
Definition: JDispersion.hh:98
const double a3
d^2n/(dx)^2
Definition: JDispersion.hh:99
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  }
const double a4
d^3n/(dx)^3
Definition: JDispersion.hh:100
const int n
Definition: JPolint.hh:660
virtual double getIndexOfRefractionPhase(const double lambda) const
Index of refraction (phase velocity).
Definition: JDispersion.hh:51
virtual double getDispersionPhase(const double lambda) const
Dispersion of light for phase velocity.
Definition: JDispersion.hh:65
const double a2
d^1n/(dx)^1
Definition: JDispersion.hh:98
const double a3
d^2n/(dx)^2
Definition: JDispersion.hh:99
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  }
const int n
Definition: JPolint.hh:660
virtual double getIndexOfRefractionPhase(const double lambda) const =0
Index of refraction for phase velocity.
virtual double getDispersionPhase(const double lambda) const =0
Dispersion of light for phase velocity.
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  }
const int n
Definition: JPolint.hh:660
virtual double getIndexOfRefractionPhase(const double lambda) const =0
Index of refraction for phase velocity.
virtual double getIndexOfRefractionGroup(const double lambda) const
Index of refraction for group velocity.
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  }
virtual double getIndexOfRefractionGroup(const double lambda) const
Index of refraction for group velocity.

Member Data Documentation

const double JPHYSICS::JDispersion::P

Dispersion parameters (x = 1/lambda)

ambient pressure [atm]

Definition at line 95 of file JDispersion.hh.

const double JPHYSICS::JDispersion::a0

offset

Definition at line 96 of file JDispersion.hh.

const double JPHYSICS::JDispersion::a1

dn/dP

Definition at line 97 of file JDispersion.hh.

const double JPHYSICS::JDispersion::a2

d^1n/(dx)^1

Definition at line 98 of file JDispersion.hh.

const double JPHYSICS::JDispersion::a3

d^2n/(dx)^2

Definition at line 99 of file JDispersion.hh.

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: