1#ifndef __JPHYSICS_JPDFSUPPORTKIT__
2#define __JPHYSICS_JPDFSUPPORTKIT__
27 extern double getQE(
const double lambda);
46 if (
map.count(key) &&
map.at(key) == value) {
50 for (
const auto& i :
map) {
51 if (i.second == value) {
64 public std::map<std::string, double (*)(const double)>
66 static constexpr const char*
const default_t =
"default";
67 static constexpr const char*
const nemo_t =
"nemo";
99 JAbsorptionLength::const_iterator p =
object.find(option);
101 if (p !=
object.end())
104 in.setstate(ios_base::badbit);
147 static double factor = 1.0;
160 static double offset = 1.0e6;
184 public std::map<std::string, double (*)(const double)>
186 static constexpr const char*
const default_t =
"default";
214 JScatteringLength::const_iterator p =
object.find(option);
216 if (p !=
object.end())
219 in.setstate(ios_base::badbit);
259 static double factor = 1.0;
283 public std::map<std::string, double (*)(const double)>
285 static constexpr const char*
const default_t =
"default";
286 static constexpr const char*
const f4_t =
"f4";
287 static constexpr const char*
const p00075_t =
"p00075";
319 JScatteringProbability::const_iterator p =
object.find(option);
321 if (p !=
object.end())
324 in.setstate(ios_base::badbit);
364 static double weight = 1.0;
388 public std::map<std::string, double (*)(const double)>
390 static constexpr const char*
const default_t =
"default";
415 for (
string option; in >> option; ) {
417 JPMTAngularAcceptance::const_iterator p =
object.find(option);
419 if (p !=
object.end())
422 in.setstate(ios_base::badbit);
472 public std::map<std::string, double (*)(const double)>
474 static constexpr const char*
const default_t =
"default";
502 JQE::const_iterator p =
object.find(option);
504 if (p !=
object.end())
507 in.setstate(ios_base::badbit);
521 friend inline std::ostream&
operator<<(std::ostream& out,
const JQE&
object)
534 static inline double getQE(
const double lambda)
547 static double factor = 1.0;
630 this->
out <<
" possible options absorptionLength: " << get_keys(configuration.
absorptionLength) << endl;
631 this->
out <<
" possible options scatteringLength: " << get_keys(configuration.
scatteringLength) << endl;
633 this->
out <<
" possible options angularAcceptance: " << get_keys(configuration.
angularAcceptance) << endl;
634 this->
out <<
" possible options QE: " << get_keys(configuration.
QE) << endl <<
" ";
Utility class to parse parameter values.
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
Utility class to parse parameter values.
auto getScatteringProbability
auto getAngularAcceptance
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).
std::string getKey(const std::map< std::string, T > &map, const std::string &key, const T &value)
Auxiliary method to get preferred key for given value.
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)
double getAngularAcceptance(const double x)
Auxiliary data structure to customize absorption length.
friend std::ostream & operator<<(std::ostream &out, const JAbsorptionLength &object)
Write absorption length to output stream.
JAbsorptionLength()
Default constructor.
friend std::istream & operator>>(std::istream &in, JAbsorptionLength &object)
Read absorption length from input stream.
static double & get_offset()
Get reference to offset.
static constexpr const char *const default_t
static constexpr const char *const SmithAndBaker_t
static double & get_factor()
Get reference to multiplication factor.
static constexpr const char *const nemo_t
static mapped_type & get_function()
Get reference to global functon.
static double getAbsorptionLength(const double lambda)
Get absorption length.
Auxiliary data structure to customize PMT angular acceptance.
friend std::ostream & operator<<(std::ostream &out, const JPMTAngularAcceptance &object)
Write PMT angular acceptance to output stream.
static constexpr const char *const default_t
static mapped_type & get_function()
Get reference to global functon.
friend std::istream & operator>>(std::istream &in, JPMTAngularAcceptance &object)
Read PMT angular acceptance from input stream.
JPMTAngularAcceptance()
Default constructor.
static double getAngularAcceptance(const double x)
Get angular acceptance of PMT.
Auxiliary data structure to customize quantum efficiency.
JQE()
Default constructor.
static double getQE(const double lambda)
Get quantum efficiency.
static double & get_factor()
Get reference to multiplication factor.
static mapped_type & get_function()
Get reference to global functon.
static constexpr const char *const default_t
friend std::ostream & operator<<(std::ostream &out, const JQE &object)
Write quantum efficiency to output stream.
friend std::istream & operator>>(std::istream &in, JQE &object)
Read quantum efficiency from input stream.
Auxiliary data structure to customize scattering length.
static constexpr const char *const default_t
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 &object)
Read scattering length from input stream.
friend std::ostream & operator<<(std::ostream &out, const JScatteringLength &object)
Write scattering length to output stream.
static mapped_type & get_function()
Get reference to global functon.
Auxiliary data structure to customize scattering probability.
static constexpr const char *const default_t
static constexpr const char *const p00075_t
JScatteringProbability()
Default constructor.
friend std::ostream & operator<<(std::ostream &out, const JScatteringProbability &object)
Write scattering probability to output stream.
static double getScatteringProbability(const double x)
Get scattering probability.
static double & get_weight()
Get reference to weight.
static constexpr const char *const petzhold_t
static constexpr const char *const f4_t
static mapped_type & get_function()
Get reference to global functon.
friend std::istream & operator>>(std::istream &in, JScatteringProbability &object)
Read scattering probability from input stream.
Auxiliary data structure for complete configuration.
JPMTAngularAcceptance angularAcceptance
JScatteringLength scatteringLength
JScatteringProbability scatteringProbability
JProperties getProperties()
Get properties.
JAbsorptionLength absorptionLength
Auxiliary data structure to stream configuration to help output.
helper(std::ostream &out)
Constructor.
std::ostream & operator<<(const configuration_type &configuration) const
Write configuration to output stream.
Manipulator for help output.
friend helper operator<<(std::ostream &out, const help &help)
Transfer output stream to helper.