22 int main(
int argc,
char **argv)
31 JParser<> zap(
"Auxiliary program histogram plot absorption and scattering lengths as well as dispersion.");
38 catch(
const exception &error) {
39 FATAL(error.what() << endl);
47 TH1D h0(
"abs[Antares]", NULL, 400, 280.0, 680.0);
48 TH1D h1(
"abs[KM3NeT]", NULL, 400, 280.0, 680.0);
49 TH1D h2(
"scat[Antares]", NULL, 400, 280.0, 680.0);
50 TH1D h3(
"scat[KM3NeT]", NULL, 400, 280.0, 680.0);
52 TH1D h4(
"vp[Antares]", NULL, 400, 280.0, 680.0);
53 TH1D h5(
"vp[KM3NeT]", NULL, 400, 280.0, 680.0);
54 TH1D h6(
"vg[Antares]", NULL, 400, 280.0, 680.0);
55 TH1D h7(
"vg[KM3NeT]", NULL, 400, 280.0, 680.0);
57 TH1D h8(
"Ps[Antares]", NULL, 5000, -1.0, +1.0);
58 TH1D h9(
"Ps[KM3NeT]", NULL, 5000, -1.0, +1.0);
59 TH1D ha(
"f4", NULL, 5000, -1.0, +1.0);
60 TH1D hb(
"p00075", NULL, 5000, -1.0, +1.0);
61 TH1D hc(
"petzhold", NULL, 5000, -1.0, +1.0);
63 JDispersion antares(250.0);
64 JDispersion km3net (350.0);
66 for (
int i = 1;
i <= h0.GetNbinsX(); ++
i) {
68 const double x = h0.GetBinCenter (
i);
75 h4.SetBinContent(
i, antares.getIndexOfRefractionPhase(x));
77 h6.SetBinContent(
i, antares.getIndexOfRefractionGroup(x));
78 h7.SetBinContent(
i, km3net .getIndexOfRefractionGroup(x));
81 double W[] = { 0.0, 0.0, 0.0 };
83 for (
int i = 1;
i <= h8.GetNbinsX(); ++
i) {
85 const double x = h8.GetBinCenter (
i);
86 const double dx = h8.GetBinWidth (
i);
99 for (
int i = 0;
i !=
sizeof(W)/
sizeof(W[0]); ++
i) {
100 DEBUG(
"W[" <<
i <<
"] = " << W[
i] << endl);
Utility class to parse command line options.
double getScatteringLength(const double lambda)
Get scattering length.
double f4(const double x)
Model specific function to describe light scattering in water (f4).
int main(int argc, char *argv[])
double getScatteringProbability(const double x)
Function to describe light scattering in water.
Properties of Antares PMT and deep-sea water.
double getAbsorptionLength(const double lambda)
Get absorption length.
double getScatteringProbability(const double x)
Function to describe light scattering in water.
Properties of KM3NeT PMT and deep-sea water.
static const JPetzhold petzhold
Function object for measurement of light scattering in water.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
General purpose messaging.
double getIndexOfRefractionPhase()
Get average index of refraction of water corresponding to phase velocity.
double getAbsorptionLength(const double lambda)
Get absorption length.
Utility class to parse command line options.
double p00075(const double x)
Model specific function to describe light scattering in water (p00075).
double getScatteringLength(const double lambda)
Get scattering length.
#define DEBUG(A)
Message macros.