Regressor function object for JShower3EZ fit using JSimplex minimiser.  
 More...
#include <JShower3EZRegressor.hh>
 | 
| typedef JTOOLS::JSplineFunction1S_t  | JFunction1D_t | 
|   | 
| typedef JTOOLS::JMapList< JTOOLS::JPolint0FunctionalMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalGridMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalGridMap > > > >  | JPDFMaplist_t | 
|   | 
| typedef JPHYSICS::JPDFTable< JFunction1D_t, JPDFMaplist_t >  | JPDF_t | 
|   | 
| typedef JTOOLS::JMapList< JTOOLS::JPolint0FunctionalMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalGridMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalGridMap > > > >  | JNPEMaplist_t | 
|   | 
| typedef JPHYSICS::JNPETable< double, double, JNPEMaplist_t >  | JNPE_t | 
|   | 
| typedef JSimplex< JShower3EZ >  | minimiser_type | 
|   | 
| typedef JRegressor< JShower3EZ, JSimplex >  | regressor_type | 
|   | 
| typedef minimiser_type::result_type  | result_type | 
|   | 
 | 
|   | JRegressor (const std::string &fileDescriptor) | 
|   | Parameterized constructor.  More...
  | 
|   | 
| double  | operator() (const JShower3EZ &shower, const JPMTW0 &pmt) const | 
|   | Fit function.  More...
  | 
|   | 
| JNPE_t::result_type  | getH0 (const double R_Hz) const | 
|   | Get background hypothesis value for time integrated PDF.  More...
  | 
|   | 
| JNPE_t::result_type  | getH1 (const double D, const double cd, const double theta, const double phi, const double E) const | 
|   | Get signal hypothesis value for time integrated PDF.  More...
  | 
|   | 
| result_type  | operator() (const JShower3EZ &value, T __begin, T __end) | 
|   | Global fit.  More...
  | 
|   | 
| template<class JFunction_t , class T >  | 
| double  | operator() (const JFunction_t &fit, T __begin, T __end) | 
|   | Multi-dimensional fit.  More...
  | 
|   | 
| template<class JFunction_t , class T >  | 
| double  | operator() (const JFunction_t &fit, T __begin, T __end, const JModel_t &step) | 
|   | 1D fit.  More...
  | 
|   | 
 | 
| template<class JFunction_t , class T >  | 
| double  | evaluate (const JFunction_t &fit, T __begin, T __end) const | 
|   | Evaluate chi2 for given data set.  More...
  | 
|   | 
Regressor function object for JShower3EZ fit using JSimplex minimiser. 
Definition at line 92 of file JShower3EZRegressor.hh.
 
◆ JFunction1D_t
◆ JPDFMaplist_t
◆ JPDF_t
◆ JNPEMaplist_t
◆ JNPE_t
◆ minimiser_type
◆ regressor_type
◆ result_type
◆ JRegressor()
Parameterized constructor. 
The PDF file descriptor should contain the wild card character JPHYSICS::WILDCARD which will be replaced by the corresponding PDF types listed in JRegressor<JShower3Z, JGandalf>::pdf_t.
- Parameters
 - 
  
    | fileDescriptor | PDF file descriptor  | 
  
   
Definition at line 119 of file JShower3EZRegressor.hh.
  125       const JPDF_t::JSupervisor supervisor(
new JPDF_t::JDefaultResult(
JMATH::zero));
 
  135           NOTICE(
"loading PDF from file " << file_name << 
"... " << flush);
 
  137           pdf.load(file_name.c_str());
 
  141           pdf.setExceptionHandler(supervisor);
 
  157         npe[i-1].swap(buffer);
 
virtual const char * what() const override
Get error message.
 
void add(const JNPETable &input)
Add NPE table.
 
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
 
static const JZero zero
Function object to assign zero value.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
JNPE_t npe[NUMBER_OF_PDFS]
PDF.
 
JLANG::JSharedPointer< JMEstimator > estimator
M-Estimator function.
 
JPHYSICS::JPDFTable< JFunction1D_t, JPDFMaplist_t > JPDF_t
 
static const JPDFType_t pdf_t[NUMBER_OF_PDFS]
PDF types.
 
JPHYSICS::JNPETable< double, double, JNPEMaplist_t > JNPE_t
 
static const int NUMBER_OF_PDFS
 
 
 
 
◆ operator()() [1/4]
Fit function. 
This method is used to determine the chi2 of given PMT with respect to shower hypothesis.
- Parameters
 - 
  
  
 
- Returns
 - chi2 
 
Definition at line 169 of file JShower3EZRegressor.hh.
  179       const double x  = D.getX();
 
  180       const double y  = D.getY();
 
  181       const double cd = z/D.getLength();                   
 
  188       JNPE_t::result_type H0 = 
getH0(pmt.
getR());  
 
  189       JNPE_t::result_type H1 = 
getH1(D.getLength(), cd, theta, phi, shower.
getE());  
 
  197       const bool hit = pmt.
getN() != 0;
 
double getE() const
Get E.
 
const JVersor3Z & getDirection() const
Get direction.
 
Data structure for direction in three dimensions.
 
const JDirection3D & getDirection() const
Get direction.
 
Data structure for position in three dimensions.
 
const JPosition3D & getPosition() const
Get position.
 
double getPMTAngle(const double angle)
Constrain PMT angle to [0,pi].
 
double getChi2(const double P)
Get chi2 corresponding to given probability.
 
int getN() const
Get number of hits.
 
double getR() const
Get rate.
 
static double Vmax_npe
Maximal integral of PDF [npe].
 
JNPE_t::result_type getH0(const double R_Hz) const
Get background hypothesis value for time integrated PDF.
 
JNPE_t::result_type getH1(const double D, const double cd, const double theta, const double phi, const double E) const
Get signal hypothesis value for time integrated PDF.
 
 
 
 
◆ getH0()
Get background hypothesis value for time integrated PDF. 
- Parameters
 - 
  
  
 
- Returns
 - hypothesis value 
 
Definition at line 209 of file JShower3EZRegressor.hh.
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
 
 
 
 
◆ getH1()
Get signal hypothesis value for time integrated PDF. 
- Parameters
 - 
  
    | D | PMT distance from shower [m]  | 
    | cd | cosine angle between shower direction and PMT position  | 
    | theta | PMT zenith angle [deg]  | 
    | phi | PMT azimuth angle [deg]  | 
    | E | shower energy [GeV]  | 
  
   
- Returns
 - hypothesis value 
 
Definition at line 224 of file JShower3EZRegressor.hh.
  234         if (!
npe[i].empty() && D <= 
npe[i].getXmax()) {
 
  238             JNPE_t::result_type y1 = E * 
npe[i](std::max(D, 
npe[i].getXmin()), cd, theta, phi);
 
  250             ERROR(error << std::endl);
 
 
 
 
◆ operator()() [2/4]
Global fit. 
- Parameters
 - 
  
    | value | start value  | 
    | __begin | begin of data set  | 
    | __end | end of data set  | 
  
   
- Returns
 - chi2 
 
Definition at line 94 of file JRegressor.hh.
JSimplex< JShower3EZ > minimiser_type
 
JRegressor< JShower3EZ, JSimplex > regressor_type
 
 
 
 
◆ operator()() [3/4]
template<class JModel_t > 
template<class JFunction_t , class T > 
 
Multi-dimensional fit. 
The given fit function should return the equivalent of chi2 for the current value of the given model and a given data point.
- Parameters
 - 
  
    | fit | fit function  | 
    | __begin | begin of data  | 
    | __end | end of data  | 
  
   
- Returns
 - chi2 
 
Definition at line 71 of file JSimplex.hh.
   76       double chi2_old = 
evaluate(fit, __begin, __end);
 
   78       const int N = 
step.size();
 
   92           DEBUG(
"old: " << 
FIXED(12,5) << chi2_old << endl);
 
   96           for (
int i = 0; i != N; ++i) {
 
  100             chi2[i] = (*this)(fit, __begin, __end, 
step[i]);
 
  108           const double chi2_new = (*this)(fit, __begin, __end, 
wall);
 
  110           DEBUG(
"new: " << 
FIXED(12,5) << chi2_new << endl);
 
  113           if (fabs(chi2_old - chi2_new) < 
EPSILON*fabs(chi2_old)) {
 
  123           const double fe = 
evaluate(fit, __begin, __end);
 
  128           for (
int i = N-1; i != 0; --i) {
 
  129             chi2[i] = chi2[i-1] - chi2[i];
 
  132           chi2[0] = chi2_old - chi2[0];
 
  137           for (
int i = 0; i != N; ++i) {
 
  143           const double fn = chi2_new;
 
  144           const double f0 = chi2_old;
 
  145           const double ff = f0 - fn - df;
 
  149           if (fe < f0 && 2.0*(f0 - 2.0*fn + fe)*ff*ff < (f0-fe)*(f0-fe)*df) {
 
  151             for (
int i = 0; i != N - 1; ++i) {
 
#define DEBUG(A)
Message macros.
 
static int MAXIMUM_ITERATIONS
maximal number of iterations
 
std::vector< JModel_t > step
 
static double EPSILON
maximal distance to minimum
 
double evaluate(const JFunction_t &fit, T __begin, T __end) const
Evaluate chi2 for given data set.
 
Auxiliary data structure for floating point format specification.
 
 
 
 
◆ operator()() [4/4]
template<class JModel_t > 
template<class JFunction_t , class T > 
 
1D fit. 
The given fit function should return the equivalent of chi2 for the current value of the given model and a given data point.
- Parameters
 - 
  
    | fit | fit function  | 
    | __begin | begin of data  | 
    | __end | end of data  | 
    | step | step direction  | 
  
   
Definition at line 178 of file JSimplex.hh.
  186       double chi2_old = 
evaluate(fit, __begin, __end);
 
  194         const double chi2_new = 
evaluate(fit, __begin, __end);
 
  196         DEBUG(
"step: " << setw(3) << i << 
' ' << 
FIXED(12,5) << chi2_old << 
' ' << 
FIXED(12,5) << chi2_new << 
' ' << 
FIXED(5,2) << lambda << endl);
 
  198         if (fabs(chi2_old - chi2_new) < 
EPSILON*fabs(chi2_old)) {
 
  200           if (chi2_new > chi2_old) {
 
  214         if (chi2_new < chi2_old) {
 
  230         lambda = factor * lambda;
 
 
 
 
◆ evaluate()
template<class JModel_t > 
template<class JFunction_t , class T > 
 
Evaluate chi2 for given data set. 
- Parameters
 - 
  
    | fit | fit function  | 
    | __begin | begin of data  | 
    | __end | end of data  | 
  
   
Definition at line 253 of file JSimplex.hh.
  257       for (T hit = __begin; hit != __end; ++hit) {
 
  258         chi2 += fit(
value, *hit);
 
 
 
 
◆ T_ns
Time window with respect to Cherenkov hypothesis [ns]. 
Default values. 
Definition at line 259 of file JShower3EZRegressor.hh.
 
 
◆ Vmax_npe
◆ NUMBER_OF_PDFS
◆ pdf_t
Initial value:
@ SCATTERED_LIGHT_FROM_EMSHOWER
scattered light from EM shower
 
@ DIRECT_LIGHT_FROM_EMSHOWER
direct light from EM shower
 
 
PDF types. 
Definition at line 264 of file JShower3EZRegressor.hh.
 
 
◆ npe
◆ estimator
◆ MAXIMUM_ITERATIONS
template<class JModel_t > 
 
maximal number of iterations 
maximal number of iterations. 
Definition at line 237 of file JSimplex.hh.
 
 
◆ EPSILON
template<class JModel_t > 
 
maximal distance to minimum 
maximal distance to minimum. 
Definition at line 238 of file JSimplex.hh.
 
 
◆ value
template<class JModel_t > 
 
 
◆ step
template<class JModel_t > 
 
 
◆ numberOfIterations
template<class JModel_t > 
 
 
◆ p0
template<class JModel_t > 
 
 
◆ p1
template<class JModel_t > 
 
 
◆ wall
template<class JModel_t > 
 
 
◆ debug
debug level (default is off). 
Definition at line 45 of file JMessage.hh.
 
 
The documentation for this struct was generated from the following file: