73     JParser<> zap(
"Auxiliary program to draw PDF of Cherenkov light from muon.");
 
   81     zap[
'E'] = 
make_field(E,                      
"muon energy at vertex [GeV]")= 1.0;
 
   82     zap[
'R'] = 
make_field(R,                      
"distance of approach [m]");
 
   83     zap[
'z'] = 
make_field(z,                      
"PMT z-position [m]");
 
   84     zap[
'D'] = 
make_field(dir,                    
"(theta, phi) of PMT [rad]");
 
   91   catch(
const exception &error) {
 
   92     FATAL(error.what() << endl);
 
  110   const double E_emission  = 
gWater.
getE(E, z_emission ); 
 
  114     for (
double dt; cin >> dt; ) {
 
  118         cout << setw(2)         << *F             << 
' ' 
  120              << 
FIXED(5,1)      << R              << 
' ' 
  121              << 
FIXED(5,1)      << z              << 
' ' 
  124              << 
FIXED(5,1)      << dt             << 
' ' 
  125              << 
SCIENTIFIC(9,3) << pdf.getLightFromMuon(*F, E_emission, R, dir.
getTheta(), dir.
getPhi(), dt) * E_emission << endl;
 
  135   const double t0   =  0.0;                                   
 
  159     if (z_emission >= 0 && z_emission <= 
gWater(E)) { 
 
  160       for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
 
  162         const double dt = h0.GetBinCenter(i) - t0;
 
  167           value += pdf.getLightFromMuon(*F, E_emission, R, dir.
getTheta(), dir.
getPhi(), dt);
 
  170         h0.SetBinContent(i, value);
 
  177   f1.setExceptionHandler(
new JSplineFunction1S_t::JDefaultResult(
JMATH::zero));
 
  184   const double t1 = quantiles.getX();
 
  185   const double y  = 
f1(t1 + T).v - 
f1(t1 - T).v;
 
  187   DEBUG(
"E     "     << E                       << endl);
 
  188   DEBUG(
"E_emission" << E_emission              << endl);
 
  189   DEBUG(
"R     "     << R                       << endl);
 
  190   DEBUG(
"z     "     << z                       << endl);
 
  193   DEBUG(
"int   "     << quantiles.getIntegral() << endl);
 
  194   DEBUG(
"t1    "     << t1                      << endl);
 
  195   DEBUG(
"max   "     << quantiles.getY()        << endl);
 
  196   DEBUG(
"FWHM  "     << quantiles.getFWHM()     << endl);
 
  197   DEBUG(
"int[] "     << 
y                       << endl);
 
double getAngularAcceptance(const double x)
Angular acceptence of PMT.
 
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
 
Utility class to parse parameter values.
 
Data structure for angles in three dimensions.
 
double getTheta() const
Get theta angle.
 
double getPhi() const
Get phi angle.
 
Utility class to parse command line options.
 
virtual double getE(const double E, const double dx) const override
Get energy of muon after specified distance.
 
Probability Density Functions of the time response of a PMT with an implementation of the JAbstractPM...
 
double getAmbientPressure()
Get ambient pressure.
 
double getScatteringProbability(const double x)
Function to describe light scattering in water.
 
double getPhotocathodeArea()
Get photo-cathode area of PMT.
 
const JPolynome f1(1.0, 2.0, 3.0)
Function.
 
JAbstractHistogram< double > JHistogram_t
Type definition for scan along axis.
 
double getQE(const double R, const double mu)
Get QE for given ratio of hit probabilities and expectation value of the number of photo-electrons.
 
static const JZero zero
Function object to assign zero value.
 
static double MODULE_RADIUS_M
Radius of optical module [m].
 
static const double MASS_MUON
muon mass [GeV]
 
double getMinimalWavelength()
Get minimal wavelength for PDF evaluations.
 
static const JGeaneWater gWater
Function object for energy loss of muon in sea water.
 
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity.
 
@ DIRECT_LIGHT_FROM_MUON
direct light from muon
 
double getMaximalWavelength()
Get maximal wavelength for PDF evaluations.
 
static const double COS_THETA_C_WATER
Average cosine corresponding to the group velocity.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for floating point format specification.
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Auxiliary data structure for floating point format specification.