55 int main(
int argc, 
char **argv)
 
   69     JParser<> zap(
"Program to create interpolation tables of the PDF of the arrival time of the Cherenkov light from a shower.");
 
   73     zap[
'e'] = 
make_field(epsilon,                
"precision for integration")  = 1.0e-10;
 
   87   catch(
const exception &error) {
 
   88     FATAL(error.what() << endl);
 
   93   typedef double (
JPDF::*fcn)(
const double,
 
  121   typedef JSplineFunction1D_t                                     JFunction1D_t;
 
  122   typedef JMAPLIST<JPolint1FunctionalMap,
 
  123                    JPolint1FunctionalMap,
 
  124                    JPolint1FunctionalGridMap,
 
  125                    JPolint1FunctionalGridMap>::maplist            JMapList_t;
 
  126   typedef JPDFTable<JFunction1D_t, JMapList_t>                    JPDF_t;
 
  128   typedef JPDFTransformer<4, JFunction1D_t::argument_type>        JFunction4DTransformer_t;
 
  129   typedef JArray<4, JFunction1D_t::argument_type>                 JArray_t;
 
  134   NOTICE(
"building multi-dimensional function object <" << 
function << 
">... " << flush);
 
  136   const double ng[] = { pdf_c.getIndexOfRefractionGroup(wmax),
 
  137                         pdf_c.getIndexOfRefractionGroup(wmin) };
 
  145   if (zmap.find(
function) == zmap.end()) {
 
  146     FATAL(
"illegal function specifier" << endl);
 
  149   fcn                      
f           = zmap[
function].first;    
 
  150   JFunction4DTransformer_t transformer = zmap[
function].second;   
 
  182   JQuadrature qeant(-1.0, +1.0, 60, 
geanx);
 
  184   for (JQuadrature::const_iterator i = qeant.begin(); i != qeant.end(); ++i)
 
  195     for (
double buffer[] = { 0.0, 0.005, 0.01, 0.015, -1 }, *
x = buffer; *
x >= 0; ++
x) {
 
  200     for (
double x = 0.02; 
x < 0.99; 
x += 0.01)
 
  275   const double grid  =  7.0;                                      
 
  277   const double alpha = 2.0 * sqrt(1.0 - cos(grid * 
PI / 180.0));  
 
  282     const double D_m = *
d;
 
  286       const double cd  = *
c;
 
  288       const unsigned int number_of_theta_points = max(2
u, (
unsigned int) (180.0/(1.4 * grid)));
 
  290       for (
double theta = 0.0; theta <= 
PI + epsilon; theta += 
PI/number_of_theta_points) {
 
  292         const unsigned int number_of_phi_points = max(2
u, (
unsigned int) (
PI * sin(theta) / alpha));
 
  294         for (
double phi = 0.0; phi <= 
PI + epsilon; phi += 
PI/number_of_phi_points) {
 
  296           JFunction1D_t& f1 = pdf[D_m][cd][theta][phi];
 
  298           const JArray_t array(D_m, cd, theta, phi);
 
  300           double t_old = transformer.getXn(array, *
X.begin());
 
  305             const double t = transformer.getXn(array, *
x);
 
  306             const double y = (pdf_c.*
f)(D_m, cd, theta, phi, t);
 
  311                 WARNING(
"dt < 0 " << *
x << 
' ' << D_m << 
' ' << t << 
' ' << y << endl);
 
  335   pdf.transform(transformer);
 
  348   catch(
const JException& error) {
 
  349     FATAL(error.what() << endl);
 
Utility class to parse command line options. 
 
int main(int argc, char *argv[])
 
scattered light from muon 
 
scattered light from EM shower 
 
o $QUALITY_ROOT d $DEBUG!JPlot1D f
 
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. 
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
double getMinimalWavelength()
Get minimal wavelength for PDF evaluations. 
 
Various implementations of functional maps. 
 
static const double C
Physics constants. 
 
Properties of KM3NeT PMT and deep-sea water. 
 
double getMaximalWavelength()
Get maximal wavelength for PDF evaluations. 
 
#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. 
 
then break fi done getCenter read X Y Z let X
 
direct light from EM shower 
 
static const double PI
Mathematical constants. 
 
double getPhotocathodeArea()
Get photo-cathode area of PMT. 
 
General purpose messaging. 
 
Empty structure for specification of parser element that is not initialised (i.e. does require input)...
 
Auxiliary classes for numerical integration. 
 
double getAbsorptionLength(const double lambda)
Get absorption length. 
 
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
 
Utility class to parse command line options. 
 
double getScatteringLength(const double lambda)
Get scattering length. 
 
static const JGeanx geanx(0.35,-5.40)
Function object for the number of photons from EM-shower as a function of emission angle...
 
double scatteringLengthFactor
 
$WORKDIR ev_configure_domsimulator txt echo process $DOM_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DOM_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
 
do echo Generating $dir eval D
 
double getAngularAcceptance(const double x)
Angular acceptence of PMT. 
 
Auxiliary data structure for muon PDF.