Jpp - the software that should make you happy
 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::JFunction< 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 JClass< result_type >
::argument_type 
getValue (typename JClass< result_type >::argument_type value, 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 369 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 972 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 974 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 975 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 976 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 977 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 979 of file JPolint.hh.

Definition at line 980 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 981 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 982 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 984 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 986 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 987 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 988 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 89 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 378 of file KM3NeT.hh.

378  :
380  {
381  if (!option) {
382  (*this)[270.0] = 0;
383  (*this)[275.0] = 0;
384  (*this)[280.0] = 0.5;
385  (*this)[285.0] = 1.3;
386  (*this)[290.0] = 2.7;
387  (*this)[295.0] = 5.1;
388  (*this)[300.0] = 7.8;
389  (*this)[305.0] = 10.8;
390  (*this)[310.0] = 13.7;
391  (*this)[315.0] = 16.2;
392  (*this)[320.0] = 18.4;
393  (*this)[325.0] = 20.5;
394  (*this)[330.0] = 22.1;
395  (*this)[335.0] = 23.3;
396  (*this)[340.0] = 24;
397  (*this)[345.0] = 24.5;
398  (*this)[350.0] = 24.7;
399  (*this)[355.0] = 24.9;
400  (*this)[360.0] = 25.2;
401  (*this)[365.0] = 25.6;
402  (*this)[370.0] = 26.2;
403  (*this)[375.0] = 26.7;
404  (*this)[380.0] = 26.9;
405  (*this)[385.0] = 26.9;
406  (*this)[390.0] = 26.9;
407  (*this)[395.0] = 27;
408  (*this)[400.0] = 26.7;
409  (*this)[405.0] = 26.4;
410  (*this)[410.0] = 26.3;
411  (*this)[415.0] = 26;
412  (*this)[420.0] = 25.8;
413  (*this)[425.0] = 25.6;
414  (*this)[430.0] = 25.3;
415  (*this)[435.0] = 25;
416  (*this)[440.0] = 24.7;
417  (*this)[445.0] = 24.3;
418  (*this)[450.0] = 23.8;
419  (*this)[455.0] = 23.3;
420  (*this)[460.0] = 22.7;
421  (*this)[465.0] = 21.9;
422  (*this)[470.0] = 21.1;
423  (*this)[475.0] = 20.3;
424  (*this)[480.0] = 19.7;
425  (*this)[485.0] = 19;
426  (*this)[490.0] = 18.5;
427  (*this)[495.0] = 18.1;
428  (*this)[500.0] = 17.7;
429  (*this)[505.0] = 17.3;
430  (*this)[510.0] = 16.8;
431  (*this)[515.0] = 16.2;
432  (*this)[520.0] = 15.4;
433  (*this)[525.0] = 14.2;
434  (*this)[530.0] = 12.8;
435  (*this)[535.0] = 11.5;
436  (*this)[540.0] = 10.2;
437  (*this)[545.0] = 9.2;
438  (*this)[550.0] = 8.5;
439  (*this)[555.0] = 7.8;
440  (*this)[560.0] = 7.3;
441  (*this)[565.0] = 6.9;
442  (*this)[570.0] = 6.5;
443  (*this)[575.0] = 6.2;
444  (*this)[580.0] = 5.9;
445  (*this)[585.0] = 5.6;
446  (*this)[590.0] = 5.3;
447  (*this)[595.0] = 5;
448  (*this)[600.0] = 4.7;
449  (*this)[605.0] = 4.5;
450  (*this)[610.0] = 4.2;
451  (*this)[615.0] = 4;
452  (*this)[620.0] = 3.7;
453  (*this)[625.0] = 3.5;
454  (*this)[630.0] = 3.3;
455  (*this)[635.0] = 3.1;
456  (*this)[640.0] = 2.9;
457  (*this)[645.0] = 2.7;
458  (*this)[650.0] = 2.5;
459  (*this)[655.0] = 2.3;
460  (*this)[660.0] = 2.3;
461  (*this)[665.0] = 2.1;
462  (*this)[670.0] = 1.8;
463  (*this)[675.0] = 1.6;
464  (*this)[680.0] = 1.3;
465  (*this)[685.0] = 1.1;
466  (*this)[690.0] = 1;
467  (*this)[695.0] = 0.9;
468  (*this)[700.0] = 0.9;
469  (*this)[705.0] = 0.4;
470  (*this)[710.0] = 0;
471  } else {
472  (*this)[270.0] = 0;
473  (*this)[275.0] = 0;
474  (*this)[280.0] = 0;
475  (*this)[285.0] = 0;
476  (*this)[290.0] = 0;
477  (*this)[295.0] = 0;
478  (*this)[300.0] = 0;
479  (*this)[305.0] = 0.15;
480  (*this)[310.0] = 0.39;
481  (*this)[315.0] = 1.73;
482  (*this)[320.0] = 3.41;
483  (*this)[325.0] = 6.62;
484  (*this)[330.0] = 10.17;
485  (*this)[335.0] = 13.45;
486  (*this)[340.0] = 16.65;
487  (*this)[345.0] = 18.79;
488  (*this)[350.0] = 20.74;
489  (*this)[355.0] = 21.92;
490  (*this)[360.0] = 23.21;
491  (*this)[365.0] = 23.91;
492  (*this)[370.0] = 24.81;
493  (*this)[375.0] = 25.42;
494  (*this)[380.0] = 25.75;
495  (*this)[385.0] = 25.97;
496  (*this)[390.0] = 26.19;
497  (*this)[395.0] = 26.42;
498  (*this)[400.0] = 26.25;
499  (*this)[405.0] = 25.91;
500  (*this)[410.0] = 25.76;
501  (*this)[415.0] = 25.42;
502  (*this)[420.0] = 25.17;
503  (*this)[425.0] = 25.05;
504  (*this)[430.0] = 24.84;
505  (*this)[435.0] = 24.49;
506  (*this)[440.0] = 24.14;
507  (*this)[445.0] = 23.78;
508  (*this)[450.0] = 23.32;
509  (*this)[455.0] = 22.87;
510  (*this)[460.0] = 22.31;
511  (*this)[465.0] = 21.56;
512  (*this)[470.0] = 20.8;
513  (*this)[475.0] = 20;
514  (*this)[480.0] = 19.4;
515  (*this)[485.0] = 18.75;
516  (*this)[490.0] = 18.3;
517  (*this)[495.0] = 17.9;
518  (*this)[500.0] = 17.49;
519  (*this)[505.0] = 17.14;
520  (*this)[510.0] = 16.69;
521  (*this)[515.0] = 16.08;
522  (*this)[520.0] = 15.27;
523  (*this)[525.0] = 14.06;
524  (*this)[530.0] = 12.66;
525  (*this)[535.0] = 11.36;
526  (*this)[540.0] = 10.06;
527  (*this)[545.0] = 9.06;
528  (*this)[550.0] = 8.36;
529  (*this)[555.0] = 7.74;
530  (*this)[560.0] = 7.3;
531  (*this)[565.0] = 6.9;
532  (*this)[570.0] = 6.5;
533  (*this)[575.0] = 6.2;
534  (*this)[580.0] = 5.9;
535  (*this)[585.0] = 5.6;
536  (*this)[590.0] = 5.3;
537  (*this)[595.0] = 5;
538  (*this)[600.0] = 4.7;
539  (*this)[605.0] = 4.5;
540  (*this)[610.0] = 4.2;
541  (*this)[615.0] = 4;
542  (*this)[620.0] = 3.7;
543  (*this)[625.0] = 3.5;
544  (*this)[630.0] = 3.3;
545  (*this)[635.0] = 3.1;
546  (*this)[640.0] = 2.9;
547  (*this)[645.0] = 2.7;
548  (*this)[650.0] = 2.5;
549  (*this)[655.0] = 2.3;
550  (*this)[660.0] = 2.3;
551  (*this)[665.0] = 2.1;
552  (*this)[670.0] = 1.8;
553  (*this)[675.0] = 1.6;
554  (*this)[680.0] = 1.3;
555  (*this)[685.0] = 1.1;
556  (*this)[690.0] = 1;
557  (*this)[695.0] = 0.9;
558  (*this)[700.0] = 0.9;
559  (*this)[705.0] = 0.4;
560  (*this)[710.0] = 0;
561  }
562 
563  // if (option) {
564  // (*this)[260.0] = 0;
565  // (*this)[270.0] = 0;
566  // (*this)[280.0] = 0;
567  // (*this)[290.0] = 0;
568  // (*this)[300.0] = 0;
569  // (*this)[310.0] = 0.5;
570  // (*this)[320.0] = 4.3;
571  // (*this)[330.0] = 12.2;
572  // (*this)[340.0] = 19.5;
573  // (*this)[350.0] = 23.6;
574  // (*this)[360.0] = 26.8;
575  // (*this)[370.0] = 28.5;
576  // (*this)[380.0] = 28.1;
577  // (*this)[390.0] = 29.3;
578  // (*this)[400.0] = 29.4;
579  // (*this)[410.0] = 28.7;
580  // (*this)[420.0] = 27.9;
581  // (*this)[430.0] = 27.0;
582  // (*this)[440.0] = 25.9;
583  // (*this)[450.0] = 24.5;
584  // (*this)[460.0] = 22.8;
585  // (*this)[470.0] = 20.8;
586  // (*this)[480.0] = 19.3;
587  // (*this)[490.0] = 18.3;
588  // (*this)[500.0] = 17.0;
589  // (*this)[510.0] = 15.3;
590  // (*this)[520.0] = 12.0;
591  // (*this)[530.0] = 9.2;
592  // (*this)[540.0] = 7.1;
593  // (*this)[550.0] = 6.1;
594  // (*this)[560.0] = 4.6;
595  // (*this)[570.0] = 3.6;
596  // (*this)[580.0] = 2.8;
597  // (*this)[590.0] = 2.0;
598  // (*this)[600.0] = 1.3;
599  // (*this)[610.0] = 0.8;
600  // (*this)[620.0] = 0;
601  // (*this)[630.0] = 0;
602  // (*this)[640.0] = 0;
603  // (*this)[650.0] = 0;
604  // } else {
605  // (*this)[260.0] = 0;
606  // (*this)[270.0] = 0;
607  // (*this)[280.0] = 0.5;
608  // (*this)[290.0] = 3.1;
609  // (*this)[300.0] = 9.8;
610  // (*this)[310.0] = 17.5;
611  // (*this)[320.0] = 23.2;
612  // (*this)[330.0] = 26.5;
613  // (*this)[340.0] = 28.1;
614  // (*this)[350.0] = 28.1;
615  // (*this)[360.0] = 29.1;
616  // (*this)[370.0] = 30.1;
617  // (*this)[380.0] = 30.4;
618  // (*this)[390.0] = 30.1;
619  // (*this)[400.0] = 29.9;
620  // (*this)[410.0] = 29.3;
621  // (*this)[420.0] = 28.6;
622  // (*this)[430.0] = 27.5;
623  // (*this)[440.0] = 26.5;
624  // (*this)[450.0] = 25.0;
625  // (*this)[460.0] = 23.2;
626  // (*this)[470.0] = 21.1;
627  // (*this)[480.0] = 19.6;
628  // (*this)[490.0] = 18.5;
629  // (*this)[500.0] = 17.2;
630  // (*this)[510.0] = 15.4;
631  // (*this)[520.0] = 12.1;
632  // (*this)[530.0] = 9.3;
633  // (*this)[540.0] = 7.2;
634  // (*this)[550.0] = 6.2;
635  // (*this)[560.0] = 4.6;
636  // (*this)[570.0] = 3.6;
637  // (*this)[580.0] = 2.8;
638  // (*this)[590.0] = 2.1;
639  // (*this)[600.0] = 1.3;
640  // (*this)[610.0] = 0.8;
641  // (*this)[620.0] = 0.5;
642  // (*this)[630.0] = 0.3;
643  // (*this)[640.0] = 0;
644  // (*this)[650.0] = 0;
645  // }
646 
647  compile();
648 
649  setExceptionHandler(new JGridPolint1Function1D_t::JDefaultResult(0.0));
650  }
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:288

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 659 of file KM3NeT.hh.

660  {
661  return JGridPolint1Function1D_t::operator()(lambda) * 0.01;
662  }
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 107 of file JFunctional.hh.

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

Termination of recursive function value evaluation.

Parameters
valueresult
pXpointer to abscissa values

Definition at line 121 of file JFunctional.hh.

123  {
124  return value;
125  }
JSupervisor JTOOLS::JFunctional< JElement2D< double, double >::abscissa_type , double >::getSupervisor ( ) const
inlineinherited

Get supervisor.

Returns
supervisor

Definition at line 266 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 277 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 288 of file JFunctional.hh.

Member Data Documentation

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

Definition at line 295 of file JFunctional.hh.


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