1#ifndef __JPHYSICS__JNPETABLE__ 
    2#define __JPHYSICS__JNPETABLE__ 
   38  template<
class JArgument_t, 
 
   56    typedef typename multifunction_t::map_type                            
map_type;
 
   91    template<
class JPDF_t, 
class JPDFMaplist_t, 
class JPDFDistance_t>
 
   99      typedef typename JTransformableMultiFunction_t::transformer_type                                 
transformer_type;
 
  104      for (
typename JTransformableMultiFunction_t::super_const_iterator i = input.super_begin(); i != input.super_end(); ++i) {
 
  106        const JMultiKey_t& key   = (*i).getKey();
 
  107        const JPDF_t&      value = (*i).getValue();
 
  109        const typename transformer_type::array_type array(key);
 
  111        const double        V = getIntegral(value, JTimeRange(input.transformer->putXn(array, range.getLowerLimit()),
 
  112                                                              input.transformer->putXn(array, range.getUpperLimit())));
 
  114        const argument_type z = input.transformer->getXn(array, 1.0) - input.transformer->getXn(array, 0.0);
 
  116        this->insert(key, function_type(z*V));
 
 
  134      for (
super_iterator i = this->super_begin(); i != this->super_end(); ++i) {
 
  138        for (
typename map_type::iterator j = f1.begin(); j != f1.end(); ++j) {
 
  144            const double npe = get_value(input.
evaluate(buffer.
data()));
 
  145            const double W   = this->
transformer->getWeight(buffer);
 
 
  161    template<
class ...Args>
 
  204      for (
super_iterator i = this->super_begin(); i != this->super_end(); ++i) {
 
  208        for (
typename map_type::iterator j = f1.begin(); j != f1.end(); ++j) {
 
 
 
Custom class for integrated values of the PDF of the arrival time of Cherenkov light.
 
multifunction_t::result_type result_type
 
virtual result_type evaluate(const argument_type *pX) const override
Recursive function value evaluation.
 
JNPETable()
Default constructor.
 
multifunction_t::abscissa_type abscissa_type
 
multifunction_t::argument_type argument_type
 
JNPETable(const JTransformableMultiFunction< JPDF_t, JPDFMaplist_t, JPDFDistance_t > &input, const JTimeRange range=JTimeRange())
Constructor.
 
void transform(const transformer_type &transformer)
Application of weight function.
 
multifunction_t::reverse_iterator reverse_iterator
 
JConstantFunction1D< JArgument_t, JResult_t > function_type
 
multifunction_t::map_type map_type
 
multifunction_t::ordinate_type ordinate_type
 
multifunction_t::value_type value_type
 
multifunction_t::iterator iterator
 
multifunction_t::const_reverse_iterator const_reverse_iterator
 
multifunction_t::const_iterator const_iterator
 
multifunction_t::super_iterator super_iterator
 
JMultiFunction< JConstantFunction1D< JArgument_t, JResult_t >, JMaplist_t, JDistance_t > multifunction_t
 
std::shared_ptr< transformer_type > transformer
 
result_type operator()(const Args &...args) const
Get number of photo-electrons.
 
JMultiMapTransformer< NUMBER_OF_DIMENSIONS, argument_type > transformer_type
 
multifunction_t::supervisor_type supervisor_type
 
multifunction_t::super_const_iterator super_const_iterator
 
void add(const JNPETable &input)
Add NPE table.
 
Auxiliary methods for light properties of deep-sea water.
 
JTOOLS::JRange< double > JTimeRange
Type definition for time range (unit [ns]).
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
double getValue(const double x) const
Function value.