1 #ifndef __JFIT__JSHOWERBRIGHTPOINTREGRESSOR__ 
    2 #define __JFIT__JSHOWERBRIGHTPOINTREGRESSOR__ 
   31 namespace JPP { 
using namespace JFIT; }
 
   74       const JPDF_t::JSupervisor supervisor(
new JPDF_t::JDefaultResult(
JMATH::zero));
 
   76       for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
 
   80           const string file_name = 
getFilename(fileDescriptor, pdf_t[i]);
 
   82           NOTICE(
"loading PDF from file " << file_name << 
"... " << flush);
 
   84           pdf[i].load(file_name.c_str());
 
   88           pdf[i].setExceptionHandler(supervisor);
 
   96       for (
int i = 1; i < NUMBER_OF_PDFS; i += 2) {
 
   98         pdf[ i ].add(pdf[i-1]); 
 
  102         pdf[i-1].swap(buffer);
 
  106         } 
else if (TTS < 0.0) {
 
  107           ERROR(
"Illegal value of TTS [ns]: " << TTS << endl);
 
  129     template<
class JHit_t>
 
  139       double ct = U.
getDot(D) / length;
 
  141       if (ct > +1.0) { ct = +1.0; }
 
  142       if (ct < -1.0) { ct = -1.0; }
 
  146       const double dt = T_ns.constrain(hit.getT() - t);
 
  163       result.chi2 = HT.getChi2() - H0.getChi2();  
 
  165       double exp_V_HT = exp(-HT.V); 
 
  167       double energy_gradient = -1 / HT_value; 
 
  168       energy_gradient *= (H1_value -  HT_value * v_H1) * (1-exp_V_HT)  -  HT_value * exp_V_HT * V_H1; 
 
  169       energy_gradient /= (1-exp_V_HT); 
 
  181                                                                               H0.getDerivativeOfChi2()));                 
 
  195                               const double t1)
 const 
  212                               const double t)
 const 
  218       for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
 
  220         if (!pdf[i].empty() && D <= pdf[i].getXmax()) {
 
  241             ERROR(error << std::endl);
 
  260       for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
 
  262         if (!pdf[i].empty() && pdf[i].getXmax() > 
xmax) {
 
  263           xmax = pdf[i].getXmax();
 
  274     static const int    NUMBER_OF_PDFS = 2;
 
Maximum likelihood estimator (M-estimators).
 
General purpose messaging.
 
Numbering scheme for PDF types.
 
General purpose data regression method.
 
This include file containes various data structures that can be used as specific return types for the...
 
Definition of zero value for any class.
 
Fit method based on the Levenberg-Marquardt method.
 
Data structure for vertex fit.
 
Data structure for vertex fit.
 
double getE() const
Get energy.
 
Data structure for direction in three dimensions.
 
double getDot(const JAngle3D &angle) const
Get dot product.
 
Data structure for position in three dimensions.
 
const JPosition3D & getPosition() const
Get position.
 
Data structure for vector in three dimensions.
 
double getY() const
Get y position.
 
double getLength() const
Get length.
 
double getZ() const
Get z position.
 
JVector3D & sub(const JVector3D &vector)
Subtract vector.
 
double getX() const
Get x position.
 
double getT(const JVector3D &pos) const
Get arrival time of Cherenkov light at given position.
 
virtual const char * what() const override
Get error message.
 
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.
 
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
 
Auxiliary classes and methods for linear and iterative data regression.
 
static const JZero zero
Function object to assign zero value.
 
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
 
const double getInverseSpeedOfLight()
Get inverse speed of light.
 
@ SCATTERED_LIGHT_FROM_BRIGHT_POINT
scattered light from bright point
 
@ DIRECT_LIGHT_FROM_BRIGHT_POINT
direct light from bright point
 
const double getSpeedOfLight()
Get speed of light.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Abstract class for global fit method.
 
Data structure for return value of fit function.
 
JPDF_t::result_type getH0(const double R_Hz, const double t1) const
Get background hypothesis value for time differentiated PDF.
 
double getRmax() const
Get maximal road width of PDF.
 
static double Vmax_npe
Maximal integral of PDF [npe].
 
result_type operator()(const JPoint4E &vx, const JHit_t &hit) const
Fit function.
 
JPHYSICS::JPDFTable< JFunction1D_t, JPDFMapList_t > JPDF_t
 
JTOOLS::JSplineFunction1S_t JFunction1D_t
 
JRegressor(const std::string &fileDescriptor, const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10)
Parameterized constructor.
 
JPDF_t::result_type getH1(const double D, const double ct, const double t) const
Get signal hypothesis value per 1 GeV for bright point emission PDF.
 
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
 
JTOOLS::JMAPLIST< JTOOLS::JPolint2FunctionalMap, JTOOLS::JPolint1FunctionalGridMap >::maplist JPDFMapList_t
 
Template definition of a data regressor of given model.
 
Auxiliary class to set-up Hit.