1 #ifndef __JFIT__JSHOWERBRIGHTPOINTREGRESSOR__
2 #define __JFIT__JSHOWERBRIGHTPOINTREGRESSOR__
31 namespace JPP {
using namespace JFIT; }
74 const JPDF_t::JSupervisor supervisor(
new JPDF_t::JDefaultResult(
JMATH::zero));
76 for (
int i = 0;
i != NUMBER_OF_PDFS; ++
i) {
80 const string file_name =
getFilename(fileDescriptor, pdf_t[
i]);
82 NOTICE(
"loading PDF from file " << file_name <<
"... " << flush);
84 pdf[
i].load(file_name.c_str());
88 pdf[
i].setExceptionHandler(supervisor);
96 for (
int i = 1;
i < NUMBER_OF_PDFS;
i += 2) {
98 pdf[
i ].add(pdf[
i-1]);
102 pdf[
i-1].swap(buffer);
106 }
else if (TTS < 0.0) {
107 ERROR(
"Illegal value of TTS [ns]: " << TTS << endl);
129 template<
class JHit_t>
135 JDirection3D U(hit.getDirection());
139 double ct = U.getDot(
D) /
D.getLength();
141 if (ct > +1.0) { ct = +1.0; }
142 if (ct < -1.0) { ct = -1.0; }
146 const double dt = T_ns.constrain(hit.getT() - t);
159 result.chi2 = H1.getChi2() - H0.getChi2();
171 H0.getDerivativeOfChi2()));
185 const double t1)
const
204 const double E)
const
210 for (
int i = 0;
i != NUMBER_OF_PDFS; ++
i) {
212 if (!pdf[
i].empty() && D <= pdf[
i].getXmax()) {
233 ERROR(error << std::endl);
252 for (
int i = 0;
i != NUMBER_OF_PDFS; ++
i) {
254 if (!pdf[
i].empty() && pdf[
i].getXmax() >
xmax) {
255 xmax = pdf[
i].getXmax();
266 static const int NUMBER_OF_PDFS = 2;
JPHYSICS::JPDFTable< JFunction1D_t, JPDFMapList_t > JPDF_t
Template definition of a data regressor of given model.
General purpose data regression method.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
JPDF_t::result_type getH1(const double D, const double ct, const double t, const double E) const
Get signal hypothesis value for bright point emission PDF.
This include file containes various data structures that can be used as specific return types for the...
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
Data structure for vertex fit.
double getE() const
Get energy.
void blur(const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10, const double quantile=0.99)
Blur PDF.
static const JZero zero
Function object to assign zero value.
direct light from bright point
static double Vmax_npe
Maximal integral of PDF [npe].
Definition of zero value for any class.
Numbering scheme for PDF types.
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
JPDF_t::result_type getH0(const double R_Hz, const double t1) const
Get background hypothesis value for time differentiated PDF.
minimiser_type::result_type result_type
Data structure for vector in three dimensions.
Data structure for vertex fit.
double getRmax() const
Get maximal road width of PDF.
JTOOLS::JSplineFunction1S_t JFunction1D_t
const JPosition3D & getPosition() const
Get position.
JRegressor(const std::string &fileDescriptor, const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10)
Parameterized constructor.
General purpose messaging.
scattered light from bright point
JTOOLS::JMAPLIST< JTOOLS::JPolint2FunctionalMap, JTOOLS::JPolint1FunctionalGridMap >::maplist JPDFMapList_t
Fit method based on the Levenberg-Marquardt method.
virtual const char * what() const override
Get error message.
const double getSpeedOfLight()
Get speed of light.
const double getInverseSpeedOfLight()
Get inverse speed of light.
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
Data structure for position in three dimensions.
transformablemultifunction_type::result_type result_type
double getT(const JVector3D &pos) const
Get arrival time of Cherenkov light at given position.
Abstract class for global fit method.
result_type operator()(const JPoint4E &vx, const JHit_t &hit) const
Fit function.
do echo Generating $dir eval D
Maximum likelihood estimator (M-estimators).
JTOOLS::JRange< double > JTimeRange
Type definition for time range (unit [s]).