Go to the documentation of this file. 1 #ifndef __JFIT__JSHOWER3EZREGRESSOR__
2 #define __JFIT__JSHOWER3EZREGRESSOR__
83 const JPDF_t::JSupervisor supervisor(
new JPDF_t::JDefaultResult(
JMATH::zero));
85 for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
89 const string file_name =
getFilename(fileDescriptor, pdf_t[i]);
91 NOTICE(
"loading PDF from file " << file_name <<
"... " << flush);
93 pdf[i].load(file_name.c_str());
97 pdf[i].setExceptionHandler(supervisor);
106 for (
int i = 0; i < NUMBER_OF_PDFS; i++) {
107 npe[ i ] =
JNPE_t(pdf[i]);
132 const double z = D.
getDot(shower_dir);
133 const double x = D.getX() - z * shower.
getDX();
134 const double y = D.getY() - z * shower.
getDY();
135 const double cosDelta = z/D.getLength();
139 const double theta = U.getTheta();
140 const double phi = fabs(U.getPhi());
145 if (H1.f >= Vmax_npe) {
146 H1 *= Vmax_npe / H1.f;
151 const bool hit = pmt.
getN() != 0;
152 const double u = H1.getChi2(hit);
154 return estimator->getRho(
u);
179 const double cosDelta,
182 const double E)
const
186 for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
188 if (!npe[i].empty() && D <= npe[i].getXmax()) {
200 ERROR(error << std::endl);
218 for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
220 if (!pdf[i].empty() && pdf[i].getXmax() > xmax) {
221 xmax = pdf[i].getXmax();
233 static const int NUMBER_OF_PDFS = 1;
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
JNPE_t::result_type getH1(const double D, const double cosDelta, const double theta, const double phi, const double E) const
Get signal hypothesis value for time integrated PDF.
JPHYSICS::JNPETable< double, double, JNPEMaplist_t > JNPE_t
Abstract class for global fit method.
Auxiliary classes and methods for linear and iterative data regression.
JTOOLS::JMapList< JTOOLS::JPolint1FunctionalMap, JTOOLS::JMapList< JTOOLS::JPolint1FunctionalMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalGridMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalGridMap > > > > JPDFMaplist_t
Data structure for fit of straight line in positive z-direction with energy.
double getE() const
Get energy.
multifunction_t::result_type result_type
double getR() const
Get rate.
JTOOLS::JSplineFunction1S_t JFunction1D_t
const JDirection3D & getDirection() const
Get direction.
JRegressor()
Default constructor.
Simple fit method based on Powell's algorithm, see reference: Numerical Recipes in C++,...
JTOOLS::JMapList< JTOOLS::JPolint1FunctionalMapH, JTOOLS::JMapList< JTOOLS::JPolint1FunctionalMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalGridMap, JTOOLS::JMapList< JTOOLS::JPolint0FunctionalGridMap > > > > JNPEMaplist_t
direct light from EM shower
Auxiliary classes and methods for calculation of PDF and muon energy loss.
Data structure for direction in three dimensions.
Data structure for normalised vector in three dimensions.
Auxiliary class for handling PMT geometry, rate and response.
double operator()(const JShower3EZ &shower, const JPMTW0 &pmt) const
Fit function.
int getN() const
Get number of hits.
static double Vmax_npe
Maximal integral of PDF [npe].
Data structure for position in three dimensions.
double getDot(const JVersor3D &versor) const
Get dot product.
scattered light from EM shower
Template definition of a data regressor of given model.
std::string getFilename(const std::string &file_name)
Get file name part, i.e.
JLANG::JSharedPointer< JMEstimator > estimator
M-Estimator function.
JNPE_t::result_type getH0(const double R_Hz) const
Get background hypothesis value for time integrated PDF.
const JPosition3D & getPosition() const
Get position.
double getDY() const
Get y direction.
Auxiliary classes and methods for 3D geometrical objects and operations.
virtual const char * what() const
Get error message.
static const JZero zero
Function object to assign zero value.
double getRmax() const
Get maximal road width of PDF.
const JVersor3Z & getDirection() const
Get direction.
JPHYSICS::JPDFTable< JFunction1D_t, JPDFMaplist_t > JPDF_t
JRegressor(const std::string &fileDescriptor)
Parameterized constructor.
double getDX() const
Get x direction.
The template JSharedPointer class can be used to share a pointer to an object.