49int main(
int argc, 
char **argv)
 
   73    JParser<> zap(
"Auxiliary program to draw PDF of Cherenkov light from muon.");
 
   78    zap[
'e'] = 
make_field(epsilon,                
"precision for integration")  = 1.0e-10;
 
   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);
 
   97    pdf(NAMESPACE::getPhotocathodeArea(),
 
   99        NAMESPACE::getAngularAcceptance,
 
  102        NAMESPACE::getScatteringProbability,
 
  103        NAMESPACE::getAmbientPressure(),
 
  104        getMinimalWavelength(),
 
  105        getMaximalWavelength(),
 
  109  const double z_emission = z - R/getTanThetaC(); 
 
  110  const double E_emission  = gWater.getE(E, z_emission ); 
 
  114    for (
double dt; cin >> dt; ) {
 
  116      for (vector<int>::const_iterator F = function.begin(); F != function.end(); ++F) {
 
  118        cout << setw(2)         << *F             << 
' ' 
  120             << 
FIXED(5,1)      << R              << 
' ' 
  121             << 
FIXED(5,1)      << z              << 
' ' 
  124             << 
FIXED(5,1)      << dt             << 
' ' 
  135  const double t0   =  0.0;                                   
 
  139    if (function.size() == 1 && function[0] == DIRECT_LIGHT_FROM_MUON) {
 
  157  if ( E_emission > MASS_MUON* (1/COS_THETA_C_WATER) ) { 
 
  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;
 
  166        for (vector<int>::const_iterator F = function.begin(); F != function.end(); ++F) {
 
  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);
 
  194  DEBUG(
"t1    "     << t1                      << endl);
 
  195  DEBUG(
"max   "     << quantiles.
getY()        << endl);
 
  197  DEBUG(
"int[] "     << y                       << endl);
 
 
Properties of Antares PMT and deep-sea water.
 
int main(int argc, char **argv)
 
double getAbsorptionLength(const double lambda)
 
double getScatteringLength(const double lambda)
 
double absorptionLengthFactor
Scaling of absorption and scattering length.
 
double scatteringLengthFactor
 
The elements in a collection are sorted according to their abscissa values and a given distance opera...
 
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
 
I/O formatting auxiliaries.
 
Utility class to parse parameter values.
 
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
 
Properties of KM3NeT PMT and deep-sea water.
 
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.
 
Probability Density Functions of the time response of a PMT with an implementation of the JAbstractPM...
 
double getLightFromMuon(const int type, const double E_GeV, const double R_m, const double theta, const double phi, const double t_ns) const
Probability density function for light from muon.
 
static const JZero zero
Function object to assign zero value.
 
static double MODULE_RADIUS_M
Radius of optical module [m].
 
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.