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();
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);
170 const double u =
j->getX();
171 const double v =
j->getY() / sqrt(
PI);
185 f1.setExceptionHandler(supervisor);
198 for (
super_iterator i = this->super_begin(); i != this->super_end(); ++i) {
203 typename function_type::iterator p =
f1.lower_bound(range.
getLowerLimit());
204 typename function_type::iterator q =
f1.lower_bound(range.
getUpperLimit());
206 for (++q; p != q; ++p) {
257 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.
transformablemultifunction_type::argument_type argument_type
void compress(const JRange< typename function_type::abscissa_type > &range)
Compresses PDF to given abscissa range.
transformablemultifunction_type::result_type result_type
transformablemultifunction_type::transformer_type transformer_type
JPDFTable()
Default constructor.
JPDFTable(const JTransformableMultiFunction< __JFunction_t, __JMaplist_t, __JDistance_t > &input)
Constructor.
transformablemultifunction_type::value_type value_type
transformablemultifunction_type::super_iterator super_iterator
virtual JWriter & write(JWriter &out) const override
Write from input.
void blur(const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10, const double quantile=0.99)
Blur PDF.
JTransformableMultiFunction< JFunction1D_t, JMaplist_t, JDistance_t > transformablemultifunction_type
JPDFTable(const JTransformableMultiHistogram< JHistogram_t, __JMaplist_t, __JDistance_t > &input)
Constructor.
virtual JReader & read(JReader &in) override
Read from input.
transformablemultifunction_type::multimap_type multimap_type
transformablemultifunction_type::function_type function_type
transformablemultifunction_type::super_const_iterator super_const_iterator
const JPolynome f1(1.0, 2.0, 3.0)
Function.
double Gauss(const double x, const double sigma)
Normalised Gauss function.
static const double PI
Mathematical constants.
double gauss(const double x, const double sigma)
Gauss function (normalised to 1 at x = 0).
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.