23int main(
int argc,
char **argv)
33 JParser<> zap(
"Auxiliary program histogram plot absorption and scattering lengths as well as dispersion.");
40 catch(
const exception &error) {
41 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);
51 TH1D hp(
"pure", NULL, 400, 280.0, 680.0);
52 TH1D hq(
"smith&baker", NULL, 400, 280.0, 680.0);
54 TH1D h4(
"vp[Antares]", NULL, 400, 280.0, 680.0);
55 TH1D h5(
"vp[KM3NeT]", NULL, 400, 280.0, 680.0);
56 TH1D h6(
"vg[Antares]", NULL, 400, 280.0, 680.0);
57 TH1D h7(
"vg[KM3NeT]", NULL, 400, 280.0, 680.0);
59 TH1D h8(
"Ps[Antares]", NULL, 5000, -1.0, +1.0);
60 TH1D h9(
"Ps[KM3NeT]", NULL, 5000, -1.0, +1.0);
61 TH1D ha(
"f4", NULL, 5000, -1.0, +1.0);
62 TH1D hb(
"p00075", NULL, 5000, -1.0, +1.0);
63 TH1D hc(
"petzhold", NULL, 5000, -1.0, +1.0);
68 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
70 const double x = h0.GetBinCenter (i);
72 h0.SetBinContent(i, ANTARES::getAbsorptionLength(x));
73 h1.SetBinContent(i, KM3NET ::getAbsorptionLength(x));
74 h2.SetBinContent(i, ANTARES::getScatteringLength(x));
75 h3.SetBinContent(i, KM3NET ::getScatteringLength(x));
76 hp.SetBinContent(i, getAbsorptionLengthOfPureWater(x));
77 hq.SetBinContent(i, getAbsorptionLengthSmithAndBaker(x));
80 h5.SetBinContent(i, km3net .getIndexOfRefractionPhase(x));
82 h7.SetBinContent(i, km3net .getIndexOfRefractionGroup(x));
85 double W[] = { 0.0, 0.0, 0.0 };
87 for (
int i = 1; i <= h8.GetNbinsX(); ++i) {
89 const double x = h8.GetBinCenter (i);
90 const double dx = h8.GetBinWidth (i);
92 h8.SetBinContent(i, ANTARES ::getScatteringProbability(x));
93 h9.SetBinContent(i, KM3NET ::getScatteringProbability(x));
103 for (
int i = 0; i !=
sizeof(W)/
sizeof(W[0]); ++i) {
104 DEBUG(
"W[" << i <<
"] = " << W[i] << endl);