1 #ifndef __JFIT__JSHOWERBRIGHTPOINTREGRESSOR__
2 #define __JFIT__JSHOWERBRIGHTPOINTREGRESSOR__
30 namespace JPP {
using namespace JFIT; }
68 const double epsilon = 1.0e-10):
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();
170 H0.getDerivativeOfChi2()));
184 const double t1)
const
203 const double E)
const
209 for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
211 if (!pdf[i].empty() && D <= pdf[i].getXmax()) {
232 ERROR(error << std::endl);
251 for (
int i = 0; i != NUMBER_OF_PDFS; ++i) {
253 if (!pdf[i].empty() && pdf[i].getXmax() > xmax) {
254 xmax = pdf[i].getXmax();
265 static const int NUMBER_OF_PDFS = 2;
Template definition of a data regressor of given model.
General purpose data regression method.
JPHYSICS::JPDFTable< JFunction1D_t, JPDFMapList_t > JPDF_t
double getRmax() const
Get maximal road width of 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.
JTOOLS::JRange< double > JTimeRange
Type definition for time range (unit [ns]).
void blur(const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10, const double quantile=0.99)
Blur PDF.
then for HISTOGRAM in h0 h1
static const JZero zero
Function object to assign zero value.
direct light from bright point
double E_GeV
Energy of the shower [GeV].
Definition of zero value for any class.
Numbering scheme for PDF types.
JTOOLS::JSplineFunction1S_t JFunction1D_t
minimiser_type::result_type result_type
JPDF_t::result_type getH0(const double R_Hz, const double t1) const
Get background hypothesis value for time differentiated PDF.
Data structure for vector in three dimensions.
JRegressor(const std::string &fileDescriptor, const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10)
Parameterized constructor.
const JPosition3D & getPosition() const
Get position.
General purpose messaging.
scattered light from bright point
result_type operator()(const JPoint4D &vx, const JHit_t &hit) const
Fit function.
Fit method based on the Levenberg-Marquardt method.
static double Vmax_npe
Maximal integral of PDF [npe].
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.
do echo Generating $dir eval D
Maximum likelihood estimator (M-estimators).
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.
JTOOLS::JMAPLIST< JTOOLS::JPolint2FunctionalMap, JTOOLS::JPolint1FunctionalGridMap >::maplist JPDFMapList_t
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].