54int main(
int argc, 
char **argv)
 
   68    JParser<> zap(
"Program to create interpolation tables of the PDF of the arrival time of the Cherenkov light from a bright point.");
 
   72    zap[
'e'] = 
make_field(epsilon,                
"precision for integration")  = 1.0e-10;
 
   76      DIRECT_LIGHT_FROM_BRIGHT_POINT,
 
   77      SCATTERED_LIGHT_FROM_BRIGHT_POINT;
 
   85  catch(
const exception &error) {
 
   86    FATAL(error.what() << endl);
 
   90  typedef double (
JPDF::*fcn)(
const double,
 
   97  const double P_atm = NAMESPACE::getAmbientPressure();
 
   98  const double wmin  = getMinimalWavelength();
 
   99  const double wmax  = getMaximalWavelength();
 
  103    pdf_c(NAMESPACE::getPhotocathodeArea(),
 
  105          NAMESPACE::getAngularAcceptance,
 
  108          NAMESPACE::getScatteringProbability,
 
  127  NOTICE(
"building multi-dimensional function object <" << function << 
">... " << flush);
 
  134  zmap[DIRECT_LIGHT_FROM_BRIGHT_POINT]    = make_pair((fcn) &JPDF::getDirectLightFromBrightPoint,    JFunction2DTransformer_t(21.5, 2, ng[0], ng[1]));
 
  135  zmap[SCATTERED_LIGHT_FROM_BRIGHT_POINT] = make_pair((fcn) &JPDF::getScatteredLightFromBrightPoint, JFunction2DTransformer_t(21.5, 2, ng[0], 0.0));
 
  137  if (zmap.find(function) == zmap.end()) {
 
  138    FATAL(
"illegal function specifier" << endl);
 
  141  fcn                      f           = zmap[function].first;    
 
  142  JFunction2DTransformer_t transformer = zmap[function].second;   
 
  164  if (function == DIRECT_LIGHT_FROM_BRIGHT_POINT) {
 
  166    for (
double buffer[] = { 0.0, 0.005, 0.01, 0.015, -1 }, *x = buffer; *x >= 0; ++x) {
 
  171    for (
double x = 0.02; x < 0.99; x += 0.01)
 
  237    const double D_m = *d;
 
  239    for (
double dc = 0.1, ct = -1.0; ct < +1.0 + 0.5*dc; ct += dc) {
 
  241      JFunction1D_t& f1 = pdf[D_m][ct];
 
  243      const JArray_t 
array(D_m, ct);
 
  245      double t_old = transformer.getXn(
array, *X.begin());
 
  250        const double t = transformer.getXn(
array, *x);
 
  251        const double y = (pdf_c.*f)(D_m, ct, t);
 
  256            WARNING(
"dt < 0 " << *x << 
' ' << D_m << 
' ' << t << 
' ' << y << endl);
 
  278  pdf.transform(transformer);
 
  292    FATAL(error.what() << endl);