#ifndef __JPP_TRACK_PDF__ #define __JPP_TRACK_PDF__ #include "JTools/JFunction1D_t.hh" #include "JTools/JFunctionalMap_t.hh" #include "JTools/JTransformableMultiFunction.hh" #include "JPhysics/JPDFTransformer.hh" #include "JPhysics/JPDFTable.hh" #include "JPhysics/JCDFTable.hh" #include "Hit.hh" #include "Trk.hh" #include "Det.hh" #include "util.hh" #ifdef __ROOTCLING__ typedef int JTrackPdf_t; // all (containers of) these types will be useless in root. #else using namespace JPP; typedef JPolintFunction1D<1, JPolintElement2S, JCollection, JResultPDF > Function1D_t; typedef JMAPLIST::maplist JMapList3d_t; typedef JPDFTable JTrackPdf_t; #endif struct JppTrackPdf { vector pdfs; bool verbose; Det detector; double _k40_rate; JppTrackPdf(string muon_direct_pdf = "/pbs/throng/km3net/src/Jpp/trunk/data/J1p.dat", string muon_scattered_pdf = "/pbs/throng/km3net/src/Jpp/trunk/data/J2p.dat", string em_direct_pdf = "/pbs/throng/km3net/src/Jpp/trunk/data/J3p.dat", string em_scattered_pdf = "/pbs/throng/km3net/src/Jpp/trunk/data/J4p.dat", string delta_direct_pdf = "/pbs/throng/km3net/src/Jpp/trunk/data/J5p.dat", string delta_scattered_pdf= "/pbs/throng/km3net/src/Jpp/trunk/data/J6p.dat" , const double blur = 4.5, // blurring of the PDF const double time_window_start = -100, const double time_window_end = 900, const double k40_rate = 7e3, bool v = false); ~JppTrackPdf(){} //! Expected number of p.e. from t=-inf to dt double npe(const double E, const double R, const double theta, const double phi) ; //! Expected number of p.e. from t=-inf to dt double npe(const double E, const double R, const double theta, const double phi, const double dt) ; //! Expected number of p.e. per ns at time residual dt double dnpe_dt(const double E, const double R, const double theta, const double phi, const double dt); //! Derivative of dnpe_dt double d2npe_dt2(const double E, const double R, const double theta, const double phi, const double dt) ; //Vector return version of functions above vector npes(const double E, const double R, const double theta, const double phi) const; vector npes(const double E, const double R, const double theta, const double phi, const double dt) const; vector dnpes_dt(const double E, const double R, const double theta, const double phi, const double dt) const; //ClassDefNV( JppTrackPdf,1 ); }; #endif