49 const double dt)
const
53 static const double sigma = 2.0;
55 const double x =
dt / sigma;
57 return exp(-0.5*x*x) / (sigma*sqrt(2*PI)) / (4*PI);
70 return ANTARES::getAngularAcceptance(x);
98 JParser<> zap(
"Example program to draw PDF from LED beacon.");
114 catch(
const exception &error) {
119 const double theta = dir.first;
120 const double phi = dir.second;
126 const double P_atm = 240.0;
127 const double tmin = -10.0;
128 const double tmax = +10.0;
129 const double A = 440e-4;
130 const double R_Hz = 0.0e3;
138 const double cs = 0.83 * 0.92;
142 const double l_att = l_abs *
lr / (l_abs +
lr);
147 cout <<
"Rayleigh scattering length " <<
lr <<
" m" <<
endl;
148 cout <<
"Mie scattering length " <<
lm <<
" m" <<
endl;
149 cout <<
"Absorption length " << l_abs <<
" m" <<
endl;
187 TH1D h0(
"h0",
NULL, 430, -15.0, +200.0);
188 TH1D h1(
"h1",
NULL, 430, -15.0, +200.0);
189 TH1D h2(
"h2",
NULL, 430, -15.0, +200.0);
197 for (
int i = 1; i <= h1.GetNbinsX(); ++i) {
199 const double t1 = h1.GetBinCenter(i);
201 const double F1 =
pdfMie .getDirectLightFromLED (D, ct, theta, phi, t1);
202 const double F2 =
pdfMie .getScatteredLightFromLED(D, ct, theta, phi, t1);
203 const double F3 =
pdfRayleigh.getScatteredLightFromLED(D, ct, theta, phi, t1);
206 h0.SetBinContent(i,
F1 +
F2 +
F3);
207 h1.SetBinContent(i,
F1);
208 h2.SetBinContent(i,
F2);
209 h3.SetBinContent(i,
F3);
221 for (
int i = 3; i !=
sizeof(f)/
sizeof(f[0]); ++i) {
228 const double lz = l_abs *
ls / (l_abs*(1.0-cs) +
ls);
243 const double Tmin =
ha.GetXaxis()->GetXmin();
244 const double Tmax =
ha.GetXaxis()->GetXmax();
246 const double V = f1.rbegin()->getIntegral() + R_Hz * 1e-9 * (Tmax - Tmin);
248 for (
int i = 1; i <=
ha.GetNbinsX(); ++i) {
250 const double t1 =
ha.GetBinCenter(i);
252 JSplineFunction1S_t::result_type p = f1(t1);
254 double v = p.v + R_Hz * 1e-9 * (t1 - Tmin);
255 double y = p.f + R_Hz * 1e-9;
257 const double W =
exp(-v) * y / (1.0 -
exp(-V));
259 ha.SetBinContent(i,W);
Properties of Antares PMT and deep-sea water.
std::pair< double, double > orientation
int main(int argc, char **argv)
std::istream & operator>>(std::istream &in, orientation &x)
std::ostream & operator<<(std::ostream &out, const orientation &x)
double getAngularAcceptance(const double x)
Angular acceptence of PMT.
General purpose messaging.
#define DEBUG(A)
Message macros.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Properties of KM3NeT PMT and deep-sea water.
Template definition of a multi-dimensional oscillation probability interpolation table.
Utility class to parse command line options.
Interface for emission profile from LED.
Implementation of dispersion for water in deep sea.
Probability Density Functions of the time response of a PMT (C-like interface)
Light yield from LED (number of p.e.
double getLightFromLED(const double ct, const double phi, const double dt) const
Light yield from LED (number of p.e.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure to list files in directory.