Regressor function object for JShower3EZ fit using JSimplex minimiser.  
 More...
#include <JShowerEnergyRegressor.hh>
 | 
|   | JRegressor (const std::string &fileDescriptor) | 
|   | Parameterized constructor.  More...
  | 
|   | 
| double  | operator() (const JEnergy &x, const JShowerNPEHit &npe) const | 
|   | Fit function.  More...
  | 
|   | 
| JShowerNPE  | getNPE (const JAxis3D &axis, const double R_Hz) const | 
|   | Create data structure for handling light yields for PMT.  More...
  | 
|   | 
| result_type  | operator() (const JEnergy &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 50 of file JShowerEnergyRegressor.hh.
 
◆ JFunction1D_t
◆ JMapList_t
◆ JPDF_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<JEnergy, JSimplex>::pdf_t.
- Parameters
 - 
  
    | fileDescriptor | PDF file descriptor  | 
  
   
Definition at line 71 of file JShowerEnergyRegressor.hh.
   78       const JPDF_t::JSupervisor supervisor(
new JPDF_t::JDefaultResult(
JMATH::zero));
 
   88           NOTICE(
"loading PDF from file " << file_name << 
"... " << flush);
 
   90           pdf.load(file_name.c_str());
 
   94           pdf.setExceptionHandler(supervisor);
 
virtual const char * what() const override
Get error message.
 
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).
 
static const int NUMBER_OF_PDFS
 
static const JPDFType_t pdf_t[NUMBER_OF_PDFS]
PDF types.
 
JPHYSICS::JNPETable< double, double, JMapList_t > JNPE_t
 
JPHYSICS::JPDFTable< JFunction1D_t, JMapList_t > JPDF_t
 
std::vector< JNPE_t > Y
light from EM showers
 
JLANG::JSharedPointer< JMEstimator > estimator
M-Estimator function.
 
 
 
 
◆ operator()() [1/4]
Fit function. 
This method is used to determine the chi2 of given PMT with respect to shower hypothesis.
- Parameters
 - 
  
    | x | energy  | 
    | npe | number of photoelectrons  | 
  
   
- Returns
 - chi2 
 
Definition at line 120 of file JShowerEnergyRegressor.hh.
  124       const double E = 
x.getE();
 
double getChi2(const double E_GeV) const
Get chi2.
 
 
 
 
◆ getNPE() [1/2]
Create data structure for handling light yields for PMT. 
- Parameters
 - 
  
    | axis | PMT axis  | 
    | R_Hz | singles rate [Hz]  | 
  
   
- Returns
 - light yields 
 
Definition at line 137 of file JShowerEnergyRegressor.hh.
  145       const double U_length = std::sqrt(U.getDX()*U.getDX() + 
 
  146                                         U.getDY()*U.getDY() + 
 
  147                                         U.getDZ()*U.getDZ());
 
  149       const double ct = U.getDot(D) / (D.getLength()*U_length);
 
  151       const double y = 
getNPE(
Y, D.getLength(), ct);
 
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.
 
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
 
JShowerNPE getNPE(const JAxis3D &axis, const double R_Hz) const
Create data structure for handling light yields for PMT.
 
Auxiliary class for handling EM shower light yield.
 
 
 
 
◆ getNPE() [2/2]
Get number of photo-electrons. 
- Parameters
 - 
  
    | NPE | NPE tables  | 
    | D | PMT distance from shower [m]  | 
    | cd | cosine of the PMT angle wrt the photon direction  | 
  
   
- Returns
 - number of photo-electrons 
 
Definition at line 165 of file JShowerEnergyRegressor.hh.
  173          if (D <= i->getXmax()) {
 
  177              const double y = 
get_value((*i)(std::max(D, i->getXmin()), cd));
 
  184              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< JEnergy > minimiser_type
 
JRegressor< JEnergy, 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
◆ Vmax_npe
◆ NUMBER_OF_PDFS
◆ pdf_t
Initial value:
@ SCATTERED_LIGHT_FROM_BRIGHT_POINT
scattered light from bright point
 
@ DIRECT_LIGHT_FROM_BRIGHT_POINT
direct light from bright point
 
 
PDF types. 
Definition at line 198 of file JShowerEnergyRegressor.hh.
 
 
◆ 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: