Get quantum efficiency of PMT. 
  295  {
  296    class tuple {
  297    public:
  298      tuple(const double __QE,
  299            const double __l_gel,
  300            const double __l_glass) :
  301        QE     (__QE),
  302        l_gel  (__l_gel),
  303        l_glass(__l_glass)
  304      {}
  305 
  306      double QE;         
  307      double l_gel;      
  308      double l_glass;    
  309    };
  310 
  311    static const tuple ntuple[] = {
  312      tuple(0.000e-2,   0.00,   0.00),
  313      tuple(1.988e-2, 100.81, 148.37),
  314      tuple(2.714e-2,  99.94, 142.87),
  315      tuple(3.496e-2,  99.89, 135.64),
  316      tuple(4.347e-2,  96.90, 134.58),
  317      tuple(5.166e-2,  96.42, 138.27),
  318      tuple(6.004e-2,  94.36, 142.40),
  319      tuple(6.885e-2,  89.09, 147.16),
  320      tuple(8.105e-2,  90.10, 151.80),
  321      tuple(10.13e-2,  86.95, 150.88),
  322      tuple(13.03e-2,  85.88, 145.68),
  323      tuple(15.29e-2,  84.49, 139.70),
  324      tuple(16.37e-2,  81.08, 126.55),
  325      tuple(17.11e-2,  78.18, 118.86),
  326      tuple(17.86e-2,  76.48, 113.90),
  327      tuple(18.95e-2,  74.55, 116.08),
  328      tuple(20.22e-2,  72.31, 109.23),
  329      tuple(21.26e-2,  68.05,  81.63),
  330      tuple(22.10e-2,  66.91,  65.66),
  331      tuple(22.65e-2,  64.48,  77.30),
  332      tuple(23.07e-2,  62.53,  73.02),
  333      tuple(23.14e-2,  59.38,  81.25),
  334      tuple(23.34e-2,  56.64, 128.04),
  335      tuple(22.95e-2,  53.29,  61.84),
  336      tuple(22.95e-2,  48.96,  19.23),
  337      tuple(22.74e-2,  45.71,  27.21),
  338      tuple(23.48e-2,  41.88,  18.09),
  339      tuple(22.59e-2,  37.14,   8.41),
  340      tuple(20.61e-2,  30.49,   3.92),
  341      tuple(17.68e-2,  23.08,   1.82),
  342      tuple(13.18e-2,  15.60,   0.84),
  343      tuple(7.443e-2,   8.00,   0.39),
  344      tuple(2.526e-2,   0.00,   0.17),
  345      tuple(0.000e-2,   0.00,   0.00)
  346    };
  347 
  348    static const double cola    = 0.9;      
  349    static const double x_glass = 1.5;      
  350    static const double x_gel   = 1.0;      
  351 
  352    
  353    static const int    N    = sizeof(ntuple) / sizeof(ntuple[0])  -  1;
  354 
  355    static const double xmax = 620.0;       
 
  356    static const double xmin = 290.0;       
 
  357 
  358    const double x = lambda;
 
  359 
  361 
  362    if (x > xmin && x < xmax) {
  363 
  364      const int i = (int) (N * (x - xmax) / (xmin - xmax));
  365      const int j = (i == N ? i - 1 : i + 1); 
 
  366    
  369 
  370      const double dx = (
x - x1) / (x1 - x2);
 
  371 
  372      const double QE      = ntuple[i].QE       +  (ntuple[i].QE      - ntuple[
j].QE     ) * dx;
 
  373      const double l_gel   = ntuple[i].l_gel    +  (ntuple[i].l_gel   - ntuple[
j].l_gel  ) * dx;
 
  374      const double l_glass = ntuple[i].l_glass  +  (ntuple[i].l_glass - ntuple[
j].l_glass) * dx;
 
  375 
  377 
  378      if (option) {
  379 
  380        if (l_glass > 0.0 && l_gel > 0.0)
  381          y *= exp(-x_glass/l_glass) * exp(-x_gel/l_gel);
 
  382        else
  384      }
  385    } 
  386 
  388  }