Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
KM3NET::quantumEfficiency Class Referenceabstract

Quantum efficiency of KM3NeT PMT. More...

#include <KM3NeT.hh>

Inheritance diagram for KM3NET::quantumEfficiency:
JTOOLS::JGridPolint1Function1D_t JTOOLS::JGridPolintFunction1D_t< 1 > JTOOLS::JPolintFunction1D< N, JElement2D< double, double >, JGridCollection, double > JTOOLS::JPolintFunction< N, JElement2D< double, double >, JGridCollection, double, JDistance< typename JElement2D< double, double >::abscissa_type > > JTOOLS::JFunction1D< JElement2D< double, double >::abscissa_type, double > JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type, double >

Public Types

typedef JGridCollection
< JElement2D< double, double >
, JDistance< typename
JElement2D< double, double >
::abscissa_type > > 
collection_type
 
typedef
collection_type::abscissa_type 
abscissa_type
 
typedef
collection_type::ordinate_type 
ordinate_type
 
typedef collection_type::value_type value_type
 
typedef
collection_type::distance_type 
distance_type
 
typedef
collection_type::const_iterator 
const_iterator
 
typedef
collection_type::const_reverse_iterator 
const_reverse_iterator
 
typedef collection_type::iterator iterator
 
typedef
collection_type::reverse_iterator 
reverse_iterator
 
typedef JFunction1D
< abscissa_type, double > 
function_type
 
typedef
function_type::argument_type 
argument_type
 
typedef function_type::result_type result_type
 
typedef
function_type::JExceptionHandler 
exceptionhandler_type
 
enum  
 
typedef JFunctional
< JElement2D< double, double >
::abscissa_type, double > 
functional_type
 
typedef JSupervisor supervisor_type
 

Public Member Functions

 quantumEfficiency (const bool option=true)
 Constructor. More...
 
double operator() (const double lambda) const
 Quantum efficiency of PMT. More...
 
result_type operator() (const argument_type x) const
 Function value evaluation. More...
 
virtual result_type evaluate (const argument_type *pX) const =0
 Recursive function value evaluation. More...
 
JSupervisor getSupervisor () const
 Get supervisor. More...
 
const JExceptionHandler & getExceptionHandler () const
 Get exception handler. More...
 
void setExceptionHandler (const JSupervisor &supervisor)
 Set the supervisor for handling of exceptions. More...
 

Static Public Member Functions

static result_type getValue (const JFunctional &function, const argument_type *pX)
 Recursive function value evaluation. More...
 
static result_type getValue (typename JClass< result_type >::argument_type y, const argument_type *pX)
 Termination of recursive function value evaluation. More...
 

Protected Attributes

JSupervisor supervisor
 

Detailed Description

Quantum efficiency of KM3NeT PMT.

Definition at line 291 of file KM3NeT.hh.

Member Typedef Documentation

typedef JGridCollection <JElement2D< double, double > , JDistance<typename JElement2D< double, double > ::abscissa_type> > JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::collection_type
inherited

Definition at line 863 of file JPolint.hh.

typedef collection_type::abscissa_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::abscissa_type
inherited

Definition at line 865 of file JPolint.hh.

typedef collection_type::ordinate_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::ordinate_type
inherited

Definition at line 866 of file JPolint.hh.

typedef collection_type::value_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::value_type
inherited

Definition at line 867 of file JPolint.hh.

typedef collection_type::distance_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::distance_type
inherited

Definition at line 868 of file JPolint.hh.

typedef collection_type::const_iterator JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::const_iterator
inherited

Definition at line 870 of file JPolint.hh.

Definition at line 871 of file JPolint.hh.

typedef collection_type::iterator JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::iterator
inherited

Definition at line 872 of file JPolint.hh.

typedef collection_type::reverse_iterator JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::reverse_iterator
inherited

Definition at line 873 of file JPolint.hh.

typedef JFunction1D<abscissa_type, double > JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::function_type
inherited

Definition at line 875 of file JPolint.hh.

typedef function_type::argument_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::argument_type
inherited

Definition at line 877 of file JPolint.hh.

typedef function_type::result_type JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::result_type
inherited

Definition at line 878 of file JPolint.hh.

typedef function_type::JExceptionHandler JTOOLS::JPolintFunction1D< N, JElement2D< double, double > , JGridCollection , double , JDistance<typename JElement2D< double, double > ::abscissa_type> >::exceptionhandler_type
inherited

Definition at line 879 of file JPolint.hh.

typedef JFunctional<JElement2D< double, double >::abscissa_type , double > JTOOLS::JFunction1D< JElement2D< double, double >::abscissa_type , double >::functional_type
inherited

Definition at line 322 of file JFunctional.hh.

typedef JSupervisor JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::supervisor_type
inherited

Definition at line 88 of file JFunctional.hh.

Member Enumeration Documentation

anonymous enum
inherited

Constructor & Destructor Documentation

KM3NET::quantumEfficiency::quantumEfficiency ( const bool  option = true)
inline

Constructor.

Parameters
optioninclude absorption in glass and gel (if true, otherwise not)

Definition at line 300 of file KM3NeT.hh.

300  :
302  {
303  if (!option) {
304  (*this)[270.0] = 0;
305  (*this)[275.0] = 0;
306  (*this)[280.0] = 0.5;
307  (*this)[285.0] = 1.3;
308  (*this)[290.0] = 2.7;
309  (*this)[295.0] = 5.1;
310  (*this)[300.0] = 7.8;
311  (*this)[305.0] = 10.8;
312  (*this)[310.0] = 13.7;
313  (*this)[315.0] = 16.2;
314  (*this)[320.0] = 18.4;
315  (*this)[325.0] = 20.5;
316  (*this)[330.0] = 22.1;
317  (*this)[335.0] = 23.3;
318  (*this)[340.0] = 24;
319  (*this)[345.0] = 24.5;
320  (*this)[350.0] = 24.7;
321  (*this)[355.0] = 24.9;
322  (*this)[360.0] = 25.2;
323  (*this)[365.0] = 25.6;
324  (*this)[370.0] = 26.2;
325  (*this)[375.0] = 26.7;
326  (*this)[380.0] = 26.9;
327  (*this)[385.0] = 26.9;
328  (*this)[390.0] = 26.9;
329  (*this)[395.0] = 27;
330  (*this)[400.0] = 26.7;
331  (*this)[405.0] = 26.4;
332  (*this)[410.0] = 26.3;
333  (*this)[415.0] = 26;
334  (*this)[420.0] = 25.8;
335  (*this)[425.0] = 25.6;
336  (*this)[430.0] = 25.3;
337  (*this)[435.0] = 25;
338  (*this)[440.0] = 24.7;
339  (*this)[445.0] = 24.3;
340  (*this)[450.0] = 23.8;
341  (*this)[455.0] = 23.3;
342  (*this)[460.0] = 22.7;
343  (*this)[465.0] = 21.9;
344  (*this)[470.0] = 21.1;
345  (*this)[475.0] = 20.3;
346  (*this)[480.0] = 19.7;
347  (*this)[485.0] = 19;
348  (*this)[490.0] = 18.5;
349  (*this)[495.0] = 18.1;
350  (*this)[500.0] = 17.7;
351  (*this)[505.0] = 17.3;
352  (*this)[510.0] = 16.8;
353  (*this)[515.0] = 16.2;
354  (*this)[520.0] = 15.4;
355  (*this)[525.0] = 14.2;
356  (*this)[530.0] = 12.8;
357  (*this)[535.0] = 11.5;
358  (*this)[540.0] = 10.2;
359  (*this)[545.0] = 9.2;
360  (*this)[550.0] = 8.5;
361  (*this)[555.0] = 7.8;
362  (*this)[560.0] = 7.3;
363  (*this)[565.0] = 6.9;
364  (*this)[570.0] = 6.5;
365  (*this)[575.0] = 6.2;
366  (*this)[580.0] = 5.9;
367  (*this)[585.0] = 5.6;
368  (*this)[590.0] = 5.3;
369  (*this)[595.0] = 5;
370  (*this)[600.0] = 4.7;
371  (*this)[605.0] = 4.5;
372  (*this)[610.0] = 4.2;
373  (*this)[615.0] = 4;
374  (*this)[620.0] = 3.7;
375  (*this)[625.0] = 3.5;
376  (*this)[630.0] = 3.3;
377  (*this)[635.0] = 3.1;
378  (*this)[640.0] = 2.9;
379  (*this)[645.0] = 2.7;
380  (*this)[650.0] = 2.5;
381  (*this)[655.0] = 2.3;
382  (*this)[660.0] = 2.3;
383  (*this)[665.0] = 2.1;
384  (*this)[670.0] = 1.8;
385  (*this)[675.0] = 1.6;
386  (*this)[680.0] = 1.3;
387  (*this)[685.0] = 1.1;
388  (*this)[690.0] = 1;
389  (*this)[695.0] = 0.9;
390  (*this)[700.0] = 0.9;
391  (*this)[705.0] = 0.4;
392  (*this)[710.0] = 0;
393  } else {
394  (*this)[270.0] = 0;
395  (*this)[275.0] = 0;
396  (*this)[280.0] = 0;
397  (*this)[285.0] = 0;
398  (*this)[290.0] = 0;
399  (*this)[295.0] = 0;
400  (*this)[300.0] = 0;
401  (*this)[305.0] = 0.15;
402  (*this)[310.0] = 0.39;
403  (*this)[315.0] = 1.73;
404  (*this)[320.0] = 3.41;
405  (*this)[325.0] = 6.62;
406  (*this)[330.0] = 10.17;
407  (*this)[335.0] = 13.45;
408  (*this)[340.0] = 16.65;
409  (*this)[345.0] = 18.79;
410  (*this)[350.0] = 20.74;
411  (*this)[355.0] = 21.92;
412  (*this)[360.0] = 23.21;
413  (*this)[365.0] = 23.91;
414  (*this)[370.0] = 24.81;
415  (*this)[375.0] = 25.42;
416  (*this)[380.0] = 25.75;
417  (*this)[385.0] = 25.97;
418  (*this)[390.0] = 26.19;
419  (*this)[395.0] = 26.42;
420  (*this)[400.0] = 26.25;
421  (*this)[405.0] = 25.91;
422  (*this)[410.0] = 25.76;
423  (*this)[415.0] = 25.42;
424  (*this)[420.0] = 25.17;
425  (*this)[425.0] = 25.05;
426  (*this)[430.0] = 24.84;
427  (*this)[435.0] = 24.49;
428  (*this)[440.0] = 24.14;
429  (*this)[445.0] = 23.78;
430  (*this)[450.0] = 23.32;
431  (*this)[455.0] = 22.87;
432  (*this)[460.0] = 22.31;
433  (*this)[465.0] = 21.56;
434  (*this)[470.0] = 20.8;
435  (*this)[475.0] = 20;
436  (*this)[480.0] = 19.4;
437  (*this)[485.0] = 18.75;
438  (*this)[490.0] = 18.3;
439  (*this)[495.0] = 17.9;
440  (*this)[500.0] = 17.49;
441  (*this)[505.0] = 17.14;
442  (*this)[510.0] = 16.69;
443  (*this)[515.0] = 16.08;
444  (*this)[520.0] = 15.27;
445  (*this)[525.0] = 14.06;
446  (*this)[530.0] = 12.66;
447  (*this)[535.0] = 11.36;
448  (*this)[540.0] = 10.06;
449  (*this)[545.0] = 9.06;
450  (*this)[550.0] = 8.36;
451  (*this)[555.0] = 7.74;
452  (*this)[560.0] = 7.3;
453  (*this)[565.0] = 6.9;
454  (*this)[570.0] = 6.5;
455  (*this)[575.0] = 6.2;
456  (*this)[580.0] = 5.9;
457  (*this)[585.0] = 5.6;
458  (*this)[590.0] = 5.3;
459  (*this)[595.0] = 5;
460  (*this)[600.0] = 4.7;
461  (*this)[605.0] = 4.5;
462  (*this)[610.0] = 4.2;
463  (*this)[615.0] = 4;
464  (*this)[620.0] = 3.7;
465  (*this)[625.0] = 3.5;
466  (*this)[630.0] = 3.3;
467  (*this)[635.0] = 3.1;
468  (*this)[640.0] = 2.9;
469  (*this)[645.0] = 2.7;
470  (*this)[650.0] = 2.5;
471  (*this)[655.0] = 2.3;
472  (*this)[660.0] = 2.3;
473  (*this)[665.0] = 2.1;
474  (*this)[670.0] = 1.8;
475  (*this)[675.0] = 1.6;
476  (*this)[680.0] = 1.3;
477  (*this)[685.0] = 1.1;
478  (*this)[690.0] = 1;
479  (*this)[695.0] = 0.9;
480  (*this)[700.0] = 0.9;
481  (*this)[705.0] = 0.4;
482  (*this)[710.0] = 0;
483  }
484 
485  // if (option) {
486  // (*this)[260.0] = 0;
487  // (*this)[270.0] = 0;
488  // (*this)[280.0] = 0;
489  // (*this)[290.0] = 0;
490  // (*this)[300.0] = 0;
491  // (*this)[310.0] = 0.5;
492  // (*this)[320.0] = 4.3;
493  // (*this)[330.0] = 12.2;
494  // (*this)[340.0] = 19.5;
495  // (*this)[350.0] = 23.6;
496  // (*this)[360.0] = 26.8;
497  // (*this)[370.0] = 28.5;
498  // (*this)[380.0] = 28.1;
499  // (*this)[390.0] = 29.3;
500  // (*this)[400.0] = 29.4;
501  // (*this)[410.0] = 28.7;
502  // (*this)[420.0] = 27.9;
503  // (*this)[430.0] = 27.0;
504  // (*this)[440.0] = 25.9;
505  // (*this)[450.0] = 24.5;
506  // (*this)[460.0] = 22.8;
507  // (*this)[470.0] = 20.8;
508  // (*this)[480.0] = 19.3;
509  // (*this)[490.0] = 18.3;
510  // (*this)[500.0] = 17.0;
511  // (*this)[510.0] = 15.3;
512  // (*this)[520.0] = 12.0;
513  // (*this)[530.0] = 9.2;
514  // (*this)[540.0] = 7.1;
515  // (*this)[550.0] = 6.1;
516  // (*this)[560.0] = 4.6;
517  // (*this)[570.0] = 3.6;
518  // (*this)[580.0] = 2.8;
519  // (*this)[590.0] = 2.0;
520  // (*this)[600.0] = 1.3;
521  // (*this)[610.0] = 0.8;
522  // (*this)[620.0] = 0;
523  // (*this)[630.0] = 0;
524  // (*this)[640.0] = 0;
525  // (*this)[650.0] = 0;
526  // } else {
527  // (*this)[260.0] = 0;
528  // (*this)[270.0] = 0;
529  // (*this)[280.0] = 0.5;
530  // (*this)[290.0] = 3.1;
531  // (*this)[300.0] = 9.8;
532  // (*this)[310.0] = 17.5;
533  // (*this)[320.0] = 23.2;
534  // (*this)[330.0] = 26.5;
535  // (*this)[340.0] = 28.1;
536  // (*this)[350.0] = 28.1;
537  // (*this)[360.0] = 29.1;
538  // (*this)[370.0] = 30.1;
539  // (*this)[380.0] = 30.4;
540  // (*this)[390.0] = 30.1;
541  // (*this)[400.0] = 29.9;
542  // (*this)[410.0] = 29.3;
543  // (*this)[420.0] = 28.6;
544  // (*this)[430.0] = 27.5;
545  // (*this)[440.0] = 26.5;
546  // (*this)[450.0] = 25.0;
547  // (*this)[460.0] = 23.2;
548  // (*this)[470.0] = 21.1;
549  // (*this)[480.0] = 19.6;
550  // (*this)[490.0] = 18.5;
551  // (*this)[500.0] = 17.2;
552  // (*this)[510.0] = 15.4;
553  // (*this)[520.0] = 12.1;
554  // (*this)[530.0] = 9.3;
555  // (*this)[540.0] = 7.2;
556  // (*this)[550.0] = 6.2;
557  // (*this)[560.0] = 4.6;
558  // (*this)[570.0] = 3.6;
559  // (*this)[580.0] = 2.8;
560  // (*this)[590.0] = 2.1;
561  // (*this)[600.0] = 1.3;
562  // (*this)[610.0] = 0.8;
563  // (*this)[620.0] = 0.5;
564  // (*this)[630.0] = 0.3;
565  // (*this)[640.0] = 0;
566  // (*this)[650.0] = 0;
567  // }
568 
569  compile();
570 
571  setExceptionHandler(new JGridPolint1Function1D_t::JDefaultResult(0.0));
572  }
Type definition of a 1st degree polynomial interpolation based on a JGridCollection with result type ...
void setExceptionHandler(const JSupervisor &supervisor)
Set the supervisor for handling of exceptions.
Definition: JFunctional.hh:286

Member Function Documentation

double KM3NET::quantumEfficiency::operator() ( const double  lambda) const
inline

Quantum efficiency of PMT.

Parameters
lambdawavelength of photon [nm]
Returns
probability

Definition at line 581 of file KM3NeT.hh.

582  {
583  return JGridPolint1Function1D_t::operator()(lambda) * 0.01;
584  }
result_type operator()(const argument_type x) const
Function value evaluation.
Definition: JFunctional.hh:333
result_type JTOOLS::JFunction1D< JElement2D< double, double >::abscissa_type , double >::operator() ( const argument_type  x) const
inlineinherited

Function value evaluation.

Parameters
xargument value
Returns
function value

Definition at line 333 of file JFunctional.hh.

334  {
335  return this->evaluate(&x);
336  }
virtual result_type evaluate(const argument_type *pX) const =0
Recursive function value evaluation.
virtual result_type JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::evaluate ( const argument_type pX) const
pure virtualinherited

Recursive function value evaluation.

Parameters
pXpointer to abscissa values
Returns
function value
static result_type JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::getValue ( const JFunctional< JElement2D< double, double >::abscissa_type, double > &  function,
const argument_type pX 
)
inlinestaticinherited

Recursive function value evaluation.

Parameters
functionfunction
pXpointer to abscissa values

Definition at line 106 of file JFunctional.hh.

108  {
109  return function.evaluate(pX);
110  }
static result_type JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::getValue ( typename JClass< result_type >::argument_type  y,
const argument_type pX 
)
inlinestaticinherited

Termination of recursive function value evaluation.

Parameters
yresult
pXpointer to abscissa values

Definition at line 119 of file JFunctional.hh.

121  {
122  return y;
123  }
JSupervisor JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::getSupervisor ( ) const
inlineinherited

Get supervisor.

Returns
supervisor

Definition at line 264 of file JFunctional.hh.

const JExceptionHandler& JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::getExceptionHandler ( ) const
inlineinherited

Get exception handler.

Returns
exception handler

Definition at line 275 of file JFunctional.hh.

void JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::setExceptionHandler ( const JSupervisor &  supervisor)
inlineinherited

Set the supervisor for handling of exceptions.

Parameters
supervisorsupervisor

Definition at line 286 of file JFunctional.hh.

Member Data Documentation

JSupervisor JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::supervisor
protectedinherited

Definition at line 293 of file JFunctional.hh.


The documentation for this class was generated from the following file: