1#ifndef __JCOMPASS_JMODEL__
2#define __JCOMPASS_JMODEL__
79 const int N =
distance(__begin, __end);
85 for (T q = __begin, p = q++; q != __end; ++p, ++q) {
87 const double dz = q->getZ() - p->getZ();
94 Q.
mul(q->getQuaternion());
101 Q1 = getAverage(buffer.begin(), buffer.end());
104 const double z1 = getAverage(make_array(__begin, __end, &
JHit::getZ));
141 Q0 *= model.Q0.getConjugate();
142 Q1 *= model.Q1.getConjugate();
176 return pow(
Q1, z) *
Q0;
Maximum likelihood estimator (M-estimators).
Base class for data structures with artithmetic capabilities.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
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.
The template JSharedPointer class can be used to share a pointer to an object.
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.
JLANG::JSharedPointer< 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.