1 #ifndef __JPOINT4DREGRESSOR__
2 #define __JPOINT4DREGRESSOR__
51 template<
class JHit_t>
56 const double dt = hit.getT() - vx.
getT(hit.getPosition());
58 const double u = dt /
sigma;
60 return estimator->getRho(
u) * hit.getW();
88 template<
class JHit_t>
93 const double dt = hit.getT() - vx.
getT(hit.getPosition());
95 const double u = dt /
sigma;
97 result.chi2 = estimator->getRho(
u) * hit.getW();
105 result.gradient.mul(0.5 * estimator->getPsi(
u));
Template definition of a data regressor of given model.
JRegressor(double sigma)
Constructor.
General purpose data regression method.
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
Data structure for vertex fit.
JLANG::JSharedPointer< JMEstimator > estimator
M-Estimator function.
double operator()(const JPoint4D &vx, const JHit_t &hit) const
minimiser_type::result_type result_type
The template JSharedPointer class can be used to share a pointer to an object.
Data structure for vector in three dimensions.
double sigma
Time resolution [ns].
JLANG::JSharedPointer< JMEstimator > estimator
M-Estimator function.
const JPosition3D & getPosition() const
Get position.
General purpose messaging.
double sigma
Time resolution [ns].
result_type operator()(const JPoint4D &vx, const JHit_t &hit) const
Fit method based on the Levenberg-Marquardt method.
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Simple fit method based on Powell's algorithm, see reference: Numerical Recipes in C++...
const double getInverseSpeedOfLight()
Get inverse speed of light.
JRegressor(double sigma)
Constructor.
double getT(const JVector3D &pos) const
Get arrival time of Cherenkov light at given position.
Abstract class for global fit method.
Maximum likelihood estimator (M-estimators).