46 int main(
int argc, 
char **argv)
 
   51   typedef JAbstractHistogram<double> JHistogram_t;
 
   61   JHistogram_t  histogram;
 
   66     JParser<> zap(
"Auxiliary program to draw PDF of Cherenkov light from EM-shower or scattered light from muon.");
 
   73     zap[
'E'] = 
make_field(
E,                      
"shower energy [GeV]")        = 1.0;
 
   75     zap[
'c'] = 
make_field(cd,                     
"cosine emission angle");
 
   76     zap[
'D'] = 
make_field(dir,                    
"(theta, phi) of PMT [rad]");
 
   78     zap[
'H'] = 
make_field(histogram,              
"histogram binning")          = JHistogram_t();
 
   83   catch(
const exception &error) {
 
   84     FATAL(error.what() << endl);
 
  104     for (
double dt; cin >> dt; ) {
 
  108         cout << setw(2)         << *
F             << 
' ' 
  111              << 
FIXED(5,2)      << cd             << 
' ' 
  112              << 
FIXED(5,2)      << dir.getTheta() << 
' ' 
  113              << 
FIXED(5,2)      << dir.getPhi()   << 
' ' 
  114              << 
FIXED(5,1)      << dt             << 
' ' 
  115              << 
SCIENTIFIC(9,3) << pdf.getLightFromEMshower(*
F, 
E, 
D, cd, dir.getTheta(), dir.getPhi(), dt) * 
E << endl;
 
  126   const double t0   =  0.0;                                   
 
  128   if (!histogram.is_valid()) {
 
  132       histogram = JHistogram_t(t0 - 20.0, t0 + 50.0);
 
  134       histogram.setBinWidth(0.1);
 
  138       histogram = JHistogram_t(t0 - 20.0, t0 + 1000.0);
 
  140       histogram.setBinWidth(0.5);
 
  144   TH1D h0(
"h0", NULL, histogram.getNumberOfBins(), histogram.getLowerLimit(), histogram.getUpperLimit());
 
  146   JSplineFunction1S_t 
f1;
 
  148   for (
int i = 1; 
i <= h0.GetNbinsX(); ++
i) {
 
  150     const double dt = h0.GetBinCenter(
i) - t0;
 
  156         value += pdf.getScatteredLightFromMuon(
D, cd, dir.getTheta(), dir.getPhi(), dt);
 
  158         value += pdf.getLightFromEMshower(*
F, 
D, cd, dir.getTheta(), dir.getPhi(), dt) * 
E;
 
  161     h0.SetBinContent(
i, value);
 
  166   f1.setExceptionHandler(
new JSplineFunction1S_t::JDefaultResult(
JMATH::zero));
 
  169   JQuantiles quantiles(
f1);
 
  171   DEBUG(
"int  " << quantiles.getIntegral() << endl);
 
  172   DEBUG(
"x    " << quantiles.getX()        << endl);
 
  173   DEBUG(
"y    " << quantiles.getY()        << endl);
 
  174   DEBUG(
"FWHM " << quantiles.getFWHM()     << endl);
 
Utility class to parse command line options. 
 
int main(int argc, char *argv[])
 
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
 
scattered light from muon 
 
Properties of Antares PMT and deep-sea water. 
 
double absorptionLengthFactor
Scaling of absorption and scattering length. 
 
double getScatteringProbability(const double x)
Function to describe light scattering in water. 
 
static const JZero zero
Function object to assign zero value. 
 
double getMinimalWavelength()
Get minimal wavelength for PDF evaluations. 
 
Auxiliary data structure for floating point format specification. 
 
const JPolynome f1(1.0, 2.0, 3.0)
Function. 
 
Properties of KM3NeT PMT and deep-sea water. 
 
double getMaximalWavelength()
Get maximal wavelength for PDF evaluations. 
 
I/O formatting auxiliaries. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
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...
 
double getAmbientPressure()
Get ambient pressure. 
 
double getPhotocathodeArea()
Get photo-cathode area of PMT. 
 
General purpose messaging. 
 
double getAbsorptionLength(const double lambda)
Get absorption length. 
 
Utility class to parse command line options. 
 
double getScatteringLength(const double lambda)
Get scattering length. 
 
double scatteringLengthFactor
 
Auxiliary data structure for floating point format specification. 
 
do echo Generating $dir eval D
 
#define DEBUG(A)
Message macros. 
 
double getAngularAcceptance(const double x)
Angular acceptence of PMT.