1#ifndef __JPHYSICS_JPDFSUPPORTKIT__
2#define __JPHYSICS_JPDFSUPPORTKIT__
23 extern double getQE(
const double lambda);
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 <<
' ';
118 static double factor = 1.0;
131 static double offset = 1.0e6;
155 typedef double (*
pF)(
const double);
164 public std::map<std::string, JScatteringLength_t::pF>
188 JScatteringLength::const_iterator p = scattering.find(option);
190 if (p != scattering.end())
193 in.setstate(ios_base::badbit);
209 for (const_iterator i = scattering.begin(); i != scattering.end(); ++i) {
211 out << i->first <<
' ';
238 static double factor = 1.0;
262 typedef double (*
pF)(
const double);
271 public std::map<std::string, JScatteringProbability_t::pF>
280 (*this)[
"p00075"] =
p00075;
298 JScatteringProbability::const_iterator p = scattering.find(option);
300 if (p != scattering.end())
303 in.setstate(ios_base::badbit);
319 for (const_iterator i = scattering.begin(); i != scattering.end(); ++i) {
321 out << i->first <<
' ';
348 static double weight = 1.0;
372 typedef double (*
pF)(
const double);
381 public std::map<std::string, JQE_t::pF>
405 JQE::const_iterator p = scattering.find(option);
407 if (p != scattering.end())
410 in.setstate(ios_base::badbit);
424 friend inline std::ostream&
operator<<(std::ostream& out,
const JQE& scattering)
426 for (const_iterator i = scattering.begin(); i != scattering.end(); ++i) {
428 out << i->first <<
' ';
442 static inline double getQE(
const double lambda)
455 static double factor = 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)
double getQE(const double lambda)
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_offset()
Get reference to offset.
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 quantum efficiency.
friend std::istream & operator>>(std::istream &in, JQE &scattering)
Read quantum efficiency from input stream.
JQE()
Default constructor.
static double getQE(const double lambda)
Get quantum efficiency.
static double & get_factor()
Get reference to multiplication factor.
friend std::ostream & operator<<(std::ostream &out, const JQE &scattering)
Write quantum efficiency to output 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 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.