1 #ifndef __JFIT__JENERGYREGRESSOR__ 
    2 #define __JFIT__JENERGYREGRESSOR__ 
   32 namespace JPP { 
using namespace JFIT; }
 
   73       using namespace JTOOLS;
 
   74       using namespace JPHYSICS;
 
   79       const JPDF_t::JSupervisor supervisor(
new JPDF_t::JDefaultResult(
JMATH::zero));
 
   81       for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
 
   87           const string file_name = 
getFilename(fileDescriptor, pdf_t[i]);
 
   89           NOTICE(
"loading PDF from file " << file_name << 
"... " << flush);
 
   91           pdf.load(file_name.c_str());
 
   95           pdf.setExceptionHandler(supervisor);
 
  100             YB.push_back(
JNPE_t(pdf));
 
  109       if (Y1.size() == 2) { Y1[1].add(Y1[0]); Y1.erase(Y1.begin()); }
 
  110       if (YB.size() == 2) { YB[1].add(YB[0]); YB.erase(YB.begin()); }
 
  124       const double E = x.
getE();
 
  125       const double u = npe.
getChi2(E);
 
  127       return estimator->getRho(u);
 
  141                        const double R_Hz)
 const 
  143       using namespace JTOOLS;
 
  145       const double x  = pmt.
getX();
 
  146       const double y  = pmt.
getY();
 
  147       const double R  = sqrt(x*x + y*y);
 
  150       const double theta = pmt.
getTheta();
 
  151       const double phi   = fabs(pmt.
getPhi());
 
  153       const double yA = 
getNPE(Y1, R, theta, phi);
 
  154       const double yB = 
getNPE(YB, R, theta, phi);
 
  156       return JNPE(
JK40(T_ns, R_Hz), yA, yB, z);
 
  172       using namespace JTOOLS;
 
  174       const double x  = module.
getX();
 
  175       const double y  = module.
getY();
 
  176       const double R  = sqrt(x*x + y*y);
 
  182       for (JModule::const_iterator pmt = module.begin(); pmt != module.end(); ++pmt) {
 
  190       return JNPE(
JK40(T_ns, module.size(), rates_Hz), yA, yB, z);
 
  201       return std::max(getRmax(Y1),
 
  212     static const int NUMBER_OF_PDFS = 4;
 
  231         if (!i->empty() && i->getXmax() > xmax) {
 
  260         if (R <= i->getXmax()) {
 
  264             const double y = 
get_value((*i)(std::max(R, i->getXmin()), theta, phi));
 
  271             ERROR(error << std::endl);
 
Template definition of a data regressor of given model. 
 
JPHYSICS::JNPETable< double, double, JNPEMaplist_t > JNPE_t
 
double getE() const 
Get energy. 
 
General purpose data regression method. 
 
Data structure for a composite optical module. 
 
double getSinglesRate() const 
Get singles rate. 
 
static double getNPE(const std::vector< JNPE_t > &NPE, const double R, const double theta, const double phi)
Get number of photo-electrons. 
 
JNPE getNPE(const JModule &module, const JK40Rates &rates_Hz) const 
Create data structure for handling light yields for module. 
 
double getYB() const 
Get light yield due to bremsstrahlung. 
 
direct light from EM showers 
 
static const JZero zero
Function object to assign zero value. 
 
Auxiliary class for converting various rates to expectation values of the number of hits within a giv...
 
double getChi2(const double E_GeV) const 
Get chi2. 
 
double getPhi() const 
Get phi angle. 
 
Various implementations of functional maps. 
 
double getYA() const 
Get light yield due to muon itself. 
 
Numbering scheme for PDF types. 
 
The template JSinglePointer class can be used to hold a pointer to an object. 
 
bool is_bremsstrahlung(const int pdf)
Test if given PDF type corresponds to Cherenkov light from Bremsstrahlung. 
 
scattered light from muon 
 
JLANG::JSinglePointer< JMEstimator > estimator
M-Estimator function. 
 
JRegressor(const std::string &fileDescriptor)
Constructor. 
 
Multi-dimensional PDF table for arrival time of Cherenkov light. 
 
JNPE getNPE(const JPMT &pmt, const double R_Hz) const 
Create data structure for handling light yields for PMT. 
 
std::vector< JNPE_t > Y1
light from muon 
 
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns]. 
 
double operator()(const JEnergy &x, const JNPEHit &npe) const 
Fit function. 
 
double getTheta() const 
Get theta angle. 
 
Data structure for PMT geometry and calibration. 
 
Auxiliary class for handling various light yields. 
 
Auxiliary class for simultaneously handling light yields and response of PMT. 
 
scattered light from EM showers 
 
double getY() const 
Get y position. 
 
General purpose messaging. 
 
double getRmax() const 
Get maximal road width of NPE. 
 
static double getRmax(const std::vector< JNPE_t > &NPE)
Get maximal road width of PDF. 
 
Data structure for PMT geometry and calibration. 
 
JTOOLS::JMAPLIST< JTOOLS::JPolint1FunctionalMap, JTOOLS::JPolint1FunctionalGridMap, JTOOLS::JPolint1FunctionalGridMap >::maplist JNPEMaplist_t
 
double getX() const 
Get x position. 
 
std::string getFilename(const std::string &file_name)
Get file name part, i.e. 
 
Data structure for fit of energy. 
 
double getNPE(const Hit &hit)
Get true charge of hit. 
 
virtual const char * what() const 
Get error message. 
 
Abstract class for global fit method. 
 
double getZ() const 
Get z position. 
 
Maximum likelihood estimator (M-estimators). 
 
Auxiliary class for handling debug parameter within a class. 
 
Data structure for a composite optical module. 
 
std::vector< JNPE_t > YB
light from EM showers 
 
Auxiliary class for K40 rates.