1#ifndef __JPHYSICS__JCDFTABLE__
2#define __JPHYSICS__JCDFTABLE__
51 template<
class JFunction1D_t,
56 public JObjectBinaryIO< JCDFTable<JFunction1D_t, JMaplist_t, JDistance_t> >,
93 template<
class __JFunction_t,
class __JMaplist_t,
class __JDistance_t>
95 const typename __JFunction_t::ordinate_type eps =
JMATH::zero) :
100 for (
auto i = input.super_begin(); i != input.super_end(); ++i) {
101 this->insert((*i).getKey(), (*i).getValue(), eps);
114 template<
class JHistogram_t,
class __JMaplist_t,
class __JDistance_t>
116 const typename JHistogram_t::ordinate_type eps =
JMATH::zero) :
132 template<
class JFunctionTransformer_t>
140 const double W1 = this->transformer->getWeight(array);
159 template<
class ...Args>
165 const double npe =
intensity.evaluate(buffer.data());
177 template<
class ...Args>
253 template<
class JValue_t>
255 const JValue_t& value,
256 const typename JValue_t::ordinate_type eps)
264 JFunction1D_t buffer;
285 template<
unsigned int N,
288 template<
class,
class,
class>
class __JMap_t,
292 const __JContents_t eps)
294 if (value.getSize() > 1) {
296 for (
auto j = value.begin(), i = j++; j != value.end(); ++i, ++j) {
298 const __JAbscissa_t x = 0.5 * (i->first + j->first);
Definition of zero value for any class.
Interface for binary input.
Forward declaration of binary output.
Interface for binary output.
Multi-dimensional CDF table for arrival time of Cherenkov light.
virtual JWriter & write(JWriter &out) const override
Write CDF to output.
JTransformableMultiFunction< JFunction1D_t, JMaplist_t, JDistance_t > transformablemultifunction_t
virtual void do_compile() override
Function compilation.
void insert(const multikey_type &key, const JValue_t &value, const typename JValue_t::ordinate_type eps)
Insert value at given multidimensional key.
void transform(const JFunctionTransformer_t &transformer)
Application of weight function.
double getTime(const Args &...args) const
Generate arrival time.
JCDFTable()
Default constructor.
JTOOLS::JMultiFunction< JFunction1D_t, JMaplist_t, JDistance_t > JMultiFunction_t
JCDFTable(const JTransformableMultiHistogram< JHistogram_t, __JMaplist_t, __JDistance_t > &input, const typename JHistogram_t::ordinate_type eps=JMATH::zero)
Constructor.
JFunction1D_t::value_type value_type
JFunction1D_t::result_type result_type
transformablemultifunction_t::transformer_type transformer_type
JTOOLS::JConstantFunction1D< double, argument_type > JConstantFunction1D_t
void insert(const JMultiKey< N, argument_type > &key, const JHistogramMap< __JAbscissa_t, __JContents_t, __JMap_t, __JDistance_t > &value, const __JContents_t eps)
Insert multi-dimensional histogram at multi-dimensional key.
virtual JReader & read(JReader &in) override
Read CDF from input.
JFunction1D_t::argument_type argument_type
transformablemultifunction_t::multimap_type multimap_type
JMultiKey< NUMBER_OF_DIMENSIONS - 1, argument_type > multikey_type
JMultiFunction_t function
std::shared_ptr< transformer_type > transformer
JTOOLS::JMultiFunction< JConstantFunction1D_t, JMaplist_t, JDistance_t > JMultiQuantile_t
JMultiQuantile_t intensity
JCDFTable(const JTransformableMultiFunction< __JFunction_t, __JMaplist_t, __JDistance_t > &input, const typename __JFunction_t::ordinate_type eps=JMATH::zero)
Constructor.
double getNPE(const Args &...args) const
Get number of photo-electrons.
static const JZero zero
Function object to assign zero value.
Auxiliary methods for light properties of deep-sea water.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary base class for storing and loading a single object to and from a binary file,...