1#ifndef __JFIT__JMESTIMATOR__ 
    2#define __JFIT__JMESTIMATOR__ 
   14namespace JPP { 
using namespace JFIT; }
 
   37    virtual double getRho(
const double z) 
const = 0;
 
   46    virtual double getPsi(
const double z) 
const = 0;
 
 
   58    virtual double getRho(
const double z)
 const { 
return 0.5*z*z; }
 
   59    virtual double getPsi(
const double z)
 const { 
return z; }
 
 
   71    virtual double getRho(
const double z)
 const { 
return log (1.0 + 0.5*z*z); }
 
   72    virtual double getPsi(
const double z)
 const { 
return z / (1.0 + 0.5*z*z); }
 
 
   84    virtual double getRho(
const double z)
 const { 
return sqrt(1.0 + 0.5*z*z) - 1.0; }
 
   85    virtual double getPsi(
const double z)
 const { 
return 0.5 * z / sqrt(1.0 + 0.5*z*z); }
 
 
   98    virtual double getRho(
const double z)
 const { 
return z; }
 
   99    virtual double getPsi(
const double z)
 const { 
return 1.0; }
 
 
  120    virtual double getRho(
const double z)
 const override  
  122      const double w = 0.5 * 
k*
k / 3.0;
 
  126        const double u = z/
k;
 
  127        const double v = 1.0 - u*u;
 
  129        return w * (1.0 - v*v*v);
 
 
  135    virtual double getPsi(
const double z)
 const override  
  139        const double u = z/
k;
 
  140        const double v = 1.0 - u*u;
 
 
 
  167    virtual double getRho(
const double z)
 const override  
  169      const double w = exp(-0.5*z*z);
 
 
  174    virtual double getPsi(
const double z)
 const override  
  176      const double w = exp(-0.5*z*z);
 
  178      return z * w / (w + 
p);
 
 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
Exception for accessing an invalid pointer.
 
Auxiliary classes and methods for linear and iterative data regression.
 
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
 
JMEstimator_t
Definition of the various M-Estimators available to use.
 
@ EM_NORMALWITHBACKGROUND
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
virtual double getRho(const double z) const
Get maximum likelihood estimate.
 
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
 
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
 
virtual double getRho(const double z) const
Get maximum likelihood estimate.
 
Normal M-estimator with background.
 
virtual double getRho(const double z) const override
Get maximum likelihood estimate.
 
virtual double getPsi(const double z) const override
Get derivative of maximum likelihood estimate.
 
JMEstimatorNormalWithBackground(const double p)
Constructor.
 
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
 
virtual double getRho(const double z) const
Get maximum likelihood estimate.
 
virtual double getRho(const double z) const
Get maximum likelihood estimate.
 
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
 
Tukey's biweight M-estimator.
 
virtual double getRho(const double z) const override
Get maximum likelihood estimate.
 
virtual double getPsi(const double z) const override
Get derivative of maximum likelihood estimate.
 
JMEstimatorTukey(const double k)
Constructor.
 
Interface for maximum likelihood estimator (M-estimator).
 
virtual double getRho(const double z) const =0
Get maximum likelihood estimate.
 
virtual double getPsi(const double z) const =0
Get derivative of maximum likelihood estimate.
 
virtual ~JMEstimator()
Virtual destructor.