2#ifndef __JPHYSICS_JPDFSUPPORTKIT__
3#define __JPHYSICS_JPDFSUPPORTKIT__
32 typedef double (*
pF)(
const double);
41 public std::map<std::string, JAbsorptionLength_t::pF>
66 JAbsorptionLength::const_iterator p = absorption.find(option);
68 if (p != absorption.end())
71 in.setstate(ios_base::badbit);
87 for (const_iterator i = absorption.begin(); i != absorption.end(); ++i) {
89 out << i->first <<
' ';
116 static double factor = 1.0;
140 typedef double (*
pF)(
const double);
149 public std::map<std::string, JScatteringLength_t::pF>
173 JScatteringLength::const_iterator p = scattering.find(option);
175 if (p != scattering.end())
178 in.setstate(ios_base::badbit);
194 for (const_iterator i = scattering.begin(); i != scattering.end(); ++i) {
196 out << i->first <<
' ';
223 static double factor = 1.0;
247 typedef double (*
pF)(
const double);
256 public std::map<std::string, JScatteringProbability_t::pF>
265 (*this)[
"p00075"] =
p00075;
283 JScatteringProbability::const_iterator p = scattering.find(option);
285 if (p != scattering.end())
288 in.setstate(ios_base::badbit);
304 for (const_iterator i = scattering.begin(); i != scattering.end(); ++i) {
306 out << i->first <<
' ';
333 static double weight = 1.0;
Auxiliary methods for light properties of deep-sea water.
double p00075(const double x)
Model specific function to describe light scattering in water (p00075).
double petzhold(const double x)
Model specific function to describe light scattering in water (Petzhold).
double rayleigh(const double a, const double x)
Auxiliary method to describe light scattering in water (Rayleigh).
double getAbsorptionLengthSmithAndBaker(const double lambda)
Absorption length of deep-sea water according Smith & Baker.
double f4(const double x)
Model specific function to describe light scattering in water (f4).
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
double getAbsorptionLength(const double lambda)
double getScatteringLength(const double lambda)
double getScatteringProbability(const double x)
Auxiliary data structure to define pointer to global function.
double(*) pF(const double)
Auxiliary data structure to customize absorption length.
JAbsorptionLength()
Default constructor.
static double & get_factor()
Get reference to multiplication factor.
friend std::istream & operator>>(std::istream &in, JAbsorptionLength &absorption)
Read absorption length from input stream.
static pF & get_function()
Get reference to global functon.
friend std::ostream & operator<<(std::ostream &out, const JAbsorptionLength &absorption)
Write absorption length to output stream.
static double getAbsorptionLength(const double lambda)
Get absorption length.
Auxiliary data structure to define pointer to global function.
double(*) pF(const double)
Auxiliary data structure to customize scattering length.
friend std::ostream & operator<<(std::ostream &out, const JScatteringLength &scattering)
Write scattering length to output stream.
static double & get_factor()
Get reference to multiplication factor.
JScatteringLength()
Default constructor.
static double getScatteringLength(const double lambda)
Get scattering length.
friend std::istream & operator>>(std::istream &in, JScatteringLength &scattering)
Read scattering length from input stream.
static pF & get_function()
Get reference to global functon.
Auxiliary data structure to define pointer to global function.
double(*) pF(const double)
Auxiliary data structure to customize scattering probability.
JScatteringProbability()
Default constructor.
static double getScatteringProbability(const double x)
Get scattering probability.
friend std::ostream & operator<<(std::ostream &out, const JScatteringProbability &scattering)
Write scattering probability to output stream.
static double & get_weight()
Get reference to weight.
friend std::istream & operator>>(std::istream &in, JScatteringProbability &scattering)
Read scattering probability from input stream.
static pF & get_function()
Get reference to global functon.