1 #ifndef __JPHYSICS__JPDFTABLE__
2 #define __JPHYSICS__JPDFTABLE__
19 namespace JPP {
using namespace JPHYSICS; }
34 template<
class JFunction1D_t,
40 public JObjectBinaryIO< JPDFTable<JFunction1D_t, JMaplist_t, JDistance_t> >
75 template<
class JPDF_t,
class JPDFMaplist_t,
class JPDFDistance_t>
86 template<
class JHistogram1D_t,
class JHistogramMaplist_t,
class JHistogramDistance_t>
110 const double epsilon = 1.0e-10,
111 const double quantile = 0.99)
114 using namespace JTOOLS;
120 for (
super_iterator i = this->super_begin(); i != this->super_end(); ++i) {
127 const typename function_type::supervisor_type& supervisor = f1.getSupervisor();
142 X.insert(Q.
getX() + TTS*sqrt(2.0)*j->getX());
145 for (
typename function_type::const_iterator j = f1.begin(); j != f1.end(); ++j) {
147 if (j->getX() - TTS < X.
getXmin()) {
148 X.insert(j->getX() - TTS);
151 if (j->getX() + TTS > X.
getXmax()) {
152 X.insert(j->getX() + TTS);
167 const double u = j->getX();
168 const double v = j->getY() / sqrt(
PI);
169 const double w =
get_value(f1(*x + u*TTS*sqrt(2.0)));
177 buffer.transform(put);
182 f1.setExceptionHandler(supervisor);
196 if (in >> static_cast<transformablemultifunction_t&>(*
this)) {
202 if (buffer.read(in)) {
228 out << static_cast<const transformablemultifunction_t&>(*this);
243 static double gauss(
const double x,
const double sigma)
245 const double u = x / sigma;
248 return exp(-0.5*u*u);
261 static double Gauss(
const double x,
const double sigma)
275 static double Gauss(
const double x,
const double x0,
const double sigma)
277 return Gauss(x - x0, sigma);
transformablemultifunction_t::value_type value_type
Interface for binary output.
transformablemultifunction_t::super_iterator super_iterator
transformablemultifunction_t::result_type result_type
Auxiliary base class for storing and loading a single object to and from a binary file...
transformablemultifunction_t::multimap_type multimap_type
void blur(const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10, const double quantile=0.99)
Blur PDF.
transformablemultifunction_t::argument_type argument_type
virtual JWriter & write(JWriter &out) const
Write from input.
virtual JReader & read(JReader &in)
Read from input.
JTransformableMultiFunction< JFunction1D_t, JMaplist_t, JDistance_t > transformablemultifunction_t
transformablemultifunction_t::super_const_iterator super_const_iterator
static double Gauss(const double x, const double sigma)
Normalised Gauss function.
Forward declaration of binary output.
JPDFTable(const JTransformableMultiFunction< JPDF_t, JPDFMaplist_t, JPDFDistance_t > &input)
Constructor.
JPDFTable(const JTransformableMultiHistogram< JHistogram1D_t, JHistogramMaplist_t, JHistogramDistance_t > &input)
Constructor.
Multi-dimensional PDF table for arrival time of Cherenkov light.
JPDFTable()
Default constructor.
static double Gauss(const double x, const double x0, const double sigma)
Normalised Gauss function.
Interface for binary input.
transformablemultifunction_t::transformer_type transformer_type
virtual void clear()
Clear status of reader.
static double gauss(const double x, const double sigma)
Gauss function (normalised to 1 at x = 0).
transformablemultifunction_t::function_type function_type