44    const JPDFType_t pdf_t[] = { DIRECT_LIGHT_FROM_MUON,
 
   45                                 SCATTERED_LIGHT_FROM_MUON,
 
   46                                 DIRECT_LIGHT_FROM_DELTARAYS,
 
   47                                 SCATTERED_LIGHT_FROM_DELTARAYS,
 
   48                                 DIRECT_LIGHT_FROM_EMSHOWERS,
 
   49                                 SCATTERED_LIGHT_FROM_EMSHOWERS };
 
   51    const  int N = 
sizeof(pdf_t) / 
sizeof(pdf_t[0]);
 
   55                                   double>                          JFunction1D_t;
 
   59    const JNPE_t::JSupervisor supervisor(
new JNPE_t::JDefaultResult(zero));
 
   61    for (
int i = 0; i != N; ++i) {
 
   66      const string     file_name = getFilename(fileDescriptor, type);
 
   68      cout << 
"loading PDF from file " << file_name << 
"... " << flush;
 
   70      pdf.load(file_name.c_str());
 
   74      pdf.setExceptionHandler(supervisor);
 
   76      if      (is_bremsstrahlung(type))
 
   78      else if (is_deltarays(type))
 
   86    cout << 
"adding PDFs... " << flush;
 
   88    Y1[1].add(
Y1[0]); 
Y1.erase(
Y1.begin());
 
   89    YA[1].add(
YA[0]); 
YA.erase(
YA.begin());
 
   90    YB[1].add(
YB[0]); 
YB.erase(
YB.begin());
 
 
  111                   const double phi)
 const 
  115    const double y1 = 
getNPE(
Y1, R, theta, phi);
 
  116    const double yA = 
getNPE(
YA, R, theta, phi);
 
  117    const double yB = 
getNPE(
YB, R, theta, phi);
 
  119    if (E >= MASS_MUON * INDEX_OF_REFRACTION_WATER)
 
  120      return y1  +  getDeltaRaysFromMuon(E) * yA  +  E * yB;
 
 
  149    for (vector<JNPE_t>::const_iterator i = NPE.begin(); i != NPE.end(); ++i) {
 
  151      if (R <= i->getXmax()) {
 
  155          const double y = get_value((*i)(std::max(R, i->getXmin()), theta, phi));
 
  161        catch(
const exception& error) {
 
  162          cerr << error.what() << endl;
 
 
 
  199    const JPDFType_t pdf_t[] = { SCATTERED_LIGHT_FROM_EMSHOWER,
 
  200                                 DIRECT_LIGHT_FROM_EMSHOWER };
 
  202    const  int N = 
sizeof(pdf_t) / 
sizeof(pdf_t[0]);
 
  206                                   double>                          JFunction1D_t;
 
  210    const JNPE_t::JSupervisor supervisor(
new JNPE_t::JDefaultResult(zero));
 
  212    for (
int i = 0; i != N; ++i) {
 
  214      const string file_name = getFilename(fileDescriptor, pdf_t[i]);
 
  216      cout << 
"loading input from file " << file_name << 
"... " << flush;
 
  220      pdf.load(file_name.c_str());
 
  222      pdf.setExceptionHandler(supervisor);
 
  231      cout << 
"OK" << endl;
 
 
  253                   const double phi)
 const 
  266        const double z = geanz.getLength(E, (i + 0.5) / (
double) 
numberOfPoints);
 
  268        const double __D  = sqrt(D*D - 2.0*(D*cd)*z + z*z);
 
  269        const double __cd = (D * cd - z) / __D;
 
  272          Y += W * 
npe (__D, __cd, theta, phi);
 
  274        catch(
const exception& error) {
 
  282        Y = 
npe(D, cd, theta, phi);
 
  284      catch(
const exception& error) {
 
 
 
General purpose class for a collection of sorted elements.
The elements in a collection are sorted according to their abscissa values and a given distance opera...
Longitudinal emission profile EM-shower.
Numbering scheme for PDF types.
Definition of zero value for any class.
Custom class for integrated values of the PDF of the arrival time of Cherenkov light.
void add(const JNPETable &input)
Add NPE table.
Multi-dimensional PDF table for arrival time of Cherenkov light.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
std::vector< JNPE_t > YA
light from delta-rays
std::vector< JNPE_t > YB
light from EM showers
JPP::JNPETable< double, double, JNPEMaplist_t > JNPE_t
double calculate(const double E, const double R, const double theta, const double phi) const
Get PDF.
JPP::JMAPLIST< JPP::JPolint1FunctionalMap, JPP::JPolint1FunctionalGridMap, JPP::JPolint1FunctionalGridMap >::maplist JNPEMaplist_t
static double getNPE(const std::vector< JNPE_t > &NPE, const double R, const double theta, const double phi)
Get number of photo-electrons.
JMuonNPE_t(const std::string &fileDescriptor)
Constructor.
std::vector< JNPE_t > Y1
light from muon
Auxiliary data structure for shower PDF.
JNPE_t npe
PDF for shower.
JNPE_t F[2]
PDF for shower.
JShowerNPE_t(const std::string &fileDescriptor, const int numberOfPoints=0)
Constructor.
JPP::JNPETable< double, double, JNPEMaplist_t > JNPE_t
JPP::JMAPLIST< JPP::JPolint1FunctionalMap, JPP::JPolint1FunctionalMap, JPP::JPolint1FunctionalGridMap, JPP::JPolint1FunctionalGridMap >::maplist JNPEMaplist_t
double calculate(const double E, const double D, const double cd, const double theta, const double phi) const
Get PDF.