1#ifndef __JPHYSICS__JPDFTABLE__ 
    2#define __JPHYSICS__JPDFTABLE__ 
   37  template<
class JFunction1D_t,
 
   43    public JObjectBinaryIO< JPDFTable<JFunction1D_t, JMaplist_t, JDistance_t> >
 
   78    template<
class __JFunction_t, 
class __JMaplist_t, 
class __JDistance_t>    
 
   89    template<
class JHistogram_t, 
class __JMaplist_t, 
class __JDistance_t>
 
  113              const double epsilon        = 1.0e-10,
 
  114              const double quantile       = 0.99)
 
  123      for (
super_iterator i = this->super_begin(); i != this->super_end(); ++i) {
 
  130          const typename function_type::supervisor_type supervisor = f1.getSupervisor();  
 
  144          for (JGaussHermite::const_iterator j = engine.begin(); j != engine.end(); ++j) {
 
  145            X.insert(Q.
getX() + TTS*sqrt(2.0)*j->getX());
 
  148          for (
typename function_type::const_iterator j = f1.begin(); j != f1.end(); ++j) {
 
  150            if (j->getX() - TTS < X.
getXmin()) {
 
  151              X.insert(j->getX() - TTS);
 
  154            if (j->getX() + TTS > X.
getXmax()) {
 
  155              X.insert(j->getX() + TTS);
 
  168            for (JGaussHermite::const_iterator j = engine.begin(); j != engine.end(); ++j) {
 
  170              const double u = j->getX();
 
  171              const double v = j->getY() / sqrt(PI);
 
  172              const double w = get_value(f1(*x + u*TTS*sqrt(2.0)));
 
  177            buffer[*x]  =  W * Q.
getIntegral() * Gauss(*x - Q.
getX(), TTS)  +  (1.0 - W) * y;
 
  180          buffer.transform(put);
 
  185          f1.setExceptionHandler(supervisor);
 
 
  199      static_cast<typename transformablemultifunction_type::container_type*
>(
this)->erase(this->lower_bound(Xmax), this->end());
 
  201      for (
super_iterator i = this->super_begin(); i != this->super_end(); ++i) {
 
  206        typename function_type::iterator p = f1.lower_bound(range.
getLowerLimit());
 
  207        typename function_type::iterator q = f1.lower_bound(range.
getUpperLimit());
 
  209        for (++q; p != q; ++p) {
 
 
  234        if (buffer.read(in)) {
 
 
  260      out << static_cast<const transformablemultifunction_type&>(*
this);
 
 
 
Auxiliary methods for mathematics.
 
Auxiliary class to define a range between two values.
 
Interface for binary input.
 
virtual void clear()
Clear status of reader.
 
Forward declaration of binary output.
 
Interface for binary output.
 
Multi-dimensional PDF table for arrival time of Cherenkov light.
 
virtual JWriter & write(JWriter &out) const override
Write from input.
 
transformablemultifunction_type::function_type function_type
 
transformablemultifunction_type::value_type value_type
 
JTransformableMultiFunction< JFunction1D_t, JMaplist_t, JDistance_t > transformablemultifunction_type
 
void compress(const double Xmax, const JRange< typename function_type::abscissa_type > &range)
Compresses PDF to given abscissa range.
 
JPDFTable()
Default constructor.
 
transformablemultifunction_type::multimap_type multimap_type
 
transformablemultifunction_type::super_const_iterator super_const_iterator
 
transformablemultifunction_type::transformer_type transformer_type
 
transformablemultifunction_type::super_iterator super_iterator
 
JPDFTable(const JTransformableMultiFunction< __JFunction_t, __JMaplist_t, __JDistance_t > &input)
Constructor.
 
virtual JReader & read(JReader &in) override
Read from input.
 
transformablemultifunction_type::result_type result_type
 
void blur(const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10, const double quantile=0.99)
Blur PDF.
 
JPDFTable(const JTransformableMultiHistogram< JHistogram_t, __JMaplist_t, __JDistance_t > &input)
Constructor.
 
transformablemultifunction_type::argument_type argument_type
 
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,...
 
double getValue(const double x) const
Function value.