1#ifndef __JCOMPASS_JMODEL__
2#define __JCOMPASS_JMODEL__
80 const int N =
distance(__begin, __end);
86 for (T q = __begin, p = q++; q != __end; ++p, ++q) {
88 const double dz = q->getZ() - p->getZ();
95 Q.
mul(q->getQuaternion());
102 Q1 = getAverage(buffer.begin(), buffer.end());
105 const double z1 = getAverage(make_array(__begin, __end, &
JHit::getZ));
142 Q0 *= model.Q0.getConjugate();
143 Q1 *= model.Q1.getConjugate();
177 return pow(
Q1, z) *
Q0;
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Maximum likelihood estimator (M-estimators).
Base class for data structures with artithmetic capabilities.
Data structure for unit quaternion in three dimensions.
const JQuaternion3D & getQuaternion() const
Get quaternion.
JQuaternion3D & normalise()
Normalise quaternion.
JQuaternion3D & conjugate()
Conjugate quaternion.
JQuaternion3D & mul(const double factor)
Scale quaternion.
JQuaternion3D & pow(const double y)
Raise quaternion to given power.
Exception for accessing a value in a collection that is outside of its range.
Auxiliary classes and methods for orientation calibration based on compasses.
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for chi2 evaluation.
double operator()(const JModel &model, const JHit &hit) const
Fit function.
JChi2(const int type)
Constructor.
std::shared_ptr< JMEstimator > estimator
M-Estimator function.
double getSigma() const
Get resolution.
double getZ() const
Get z-position.
JModel & sub(const JModel &model)
Subtract model.
JModel & add(const JModel &model)
Add model.
JQuaternion3D operator()(const double z) const
Get quaternion at given z-position.
JModel(T __begin, T __end)
Constructor.
static const int NUMBER_OF_PARAMETERS
number of parameters of fit per quaternion
JModel & mul(const double factor)
Scale model.
JModel()
Default constructor.
JModel(const JQuaternion3D &Q0, const JQuaternion3D &Q1)
Constructor.
Interface for maximum likelihood estimator (M-estimator).
Auxiliary data structure for decomposition of quaternion in twist and swing quaternions.
JQuaternion3D twist
rotation around parallel axis
Auxiliary base class for aritmetic operations of derived class types.