Constructor.
The data type corresponding to the hits should provide for the following policy methods.
Note that the input data should be ordered with increasing z-positions.
72 :
75 {
78
79 const int N =
distance(__begin, __end);
80
82
84
85 for (T q = __begin, p = q++; q != __end; ++p, ++q) {
86
87 const double dz = q->getZ() - p->getZ();
88
89 if (dz != 0.0) {
90
92
93 Q.conjugate();
94 Q.mul(q->getQuaternion());
95 Q.pow(1.0 / dz);
96
97 buffer.push_back(Q);
98 }
99 }
100
103
105
108
109 } else {
111 }
112 }
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.
Exception for accessing a value in a collection that is outside of its range.
T pow(const T &x, const double y)
Power .
std::iterator_traits< T >::value_type getAverage(T __begin, T __end)
Get average.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
double getZ() const
Get z-position.
static const int NUMBER_OF_PARAMETERS
number of parameters of fit per quaternion
Auxiliary data structure for decomposition of quaternion in twist and swing quaternions.
JQuaternion3D twist
rotation around parallel axis