49                          const double dt)
 const 
   53     static const double sigma = 2.0;
 
   55     const double x = dt / 
sigma;
 
   80 int main(
int argc, 
char **argv)
 
   92   double      absorptionLength;
 
   93   double      scatteringLength;
 
   98     JParser<> zap(
"Example program to draw PDF from LED beacon.");
 
  104     zap[
'A'] = 
make_field(absorptionLength) = 50.0;
 
  105     zap[
'S'] = 
make_field(scatteringLength) = 50.0;
 
  114   catch(
const exception &error) {
 
  115     FATAL(error.what() << endl);
 
  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;      
 
  135   const double lm    = scatteringLength / 0.83;
 
  136   const double lr    = scatteringLength / 0.17;
 
  138   const double cs    = 0.83 * 0.92;  
 
  140   const double l_abs = absorptionLength;
 
  141   const double ls    = scatteringLength;
 
  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);
 
  190   TH1D h3(
"h3", NULL, 430, -15.0, +200.0);
 
  191   TH1D ha(
"ha", NULL, 430, -15.0, +200.0);
 
  197   for (
int i = 1; i <= h1.GetNbinsX(); ++i) {
 
  199     const double t1 = h1.GetBinCenter(i);
 
  206     h0.SetBinContent(i, 
F1 + F2 + F3);
 
  207     h1.SetBinContent(i, 
F1);
 
  208     h2.SetBinContent(i, F2);
 
  209     h3.SetBinContent(i, F3);
 
  214     f[3][t1] = 
F1 + F2 + F3;
 
  216     f1[t1] = 
F1 + F2 + 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);
 
  232     DEBUG(
"D     " << D                       << endl);
 
  233     DEBUG(
"ct    " << ct                      << endl);
 
  234     DEBUG(
"theta " << theta                   << endl);
 
  235     DEBUG(
"phi   " << phi                     << endl);
 
  237     DEBUG(
"t1    " << quantiles.
getX()        << endl);
 
  238     DEBUG(
"max   " << quantiles.
getY()        << endl);
 
  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)
 
double getAngularAcceptance(const double x)
Angular acceptence of PMT.
 
std::ostream & operator<<(std::ostream &out, const orientation &x)
 
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.
 
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)
 
double getDirectLightFromLED(const double D_m, const double cd, const double theta, const double phi, const double t_ns) const
Probability density function for direct light from LED.
 
double getScatteredLightFromLED(const double D_m, const double cd, const double theta, const double phi, const double t_ns) const
Probability density function for scattered light from LED.
 
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.
 
double getAngularAcceptance(const double x)
Get angular acceptance of PMT.
 
double getQE(const double lambda, const bool option)
Get quantum efficiency of PMT.
 
const JPolynome F1
Integral.
 
const JPolynome f1(1.0, 2.0, 3.0)
Function.
 
static const double PI
Mathematical constants.
 
double henyey_greenstein(const double g, const double x)
Auxiliary method to describe light scattering in water (Henyey-Greenstein).
 
double rayleigh(const double a, const double x)
Auxiliary method to describe light scattering in water (Rayleigh).
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
double getIntegral(const double x) const
Integral value.
 
Auxiliary data structure to list files in directory.