14#include <boost/serialization/access.hpp>
27 template<
typename DataT>
30 friend class boost::serialization::access;
47 MeasurementXy(DataT
x, DataT
y, DataT dx2, DataT dy2, DataT dxy, DataT ndfX, DataT ndfY)
62 template<
typename DataTb>
65 CopyBase<DataTb, true, true>(0, m, 0);
74 template<
typename DataTb>
77 CopyBase<DataTb, false, true>(i, m, 0);
84 CopyBase<fvec, false, false>(i, m, im);
93 void SetDx2(DataT dx2) { fDx2 = dx2; }
94 void SetDy2(DataT dy2) { fDy2 = dy2; }
95 void SetDxy(DataT dxy) { fDxy = dxy; }
96 void SetNdfX(DataT ndfX) { fNdfX = ndfX; }
97 void SetNdfY(DataT ndfY) { fNdfY = ndfY; }
98 void SetCov(DataT dx2, DataT dxy, DataT dy2)
105 DataT
X()
const {
return fX; }
106 DataT
Y()
const {
return fY; }
107 DataT
Dx2()
const {
return fDx2; }
108 DataT
Dy2()
const {
return fDy2; }
109 DataT
Dxy()
const {
return fDxy; }
110 DataT
NdfX()
const {
return fNdfX; }
111 DataT
NdfY()
const {
return fNdfY; }
116 DataT&
X() {
return fX; }
117 DataT&
Y() {
return fY; }
118 DataT&
Dx2() {
return fDx2; }
119 DataT&
Dy2() {
return fDy2; }
120 DataT&
Dxy() {
return fDxy; }
121 DataT&
NdfX() {
return fNdfX; }
122 DataT&
NdfY() {
return fNdfY; }
129 std::string
ToString(
int indentLevel = 0)
const;
134 return (utils::IsFinite(X()) && utils::IsFinite(Y()) && utils::IsFinite(Dx2()) && utils::IsFinite(Dy2())
135 && utils::IsFinite(Dxy()) && utils::IsFinite(NdfX()) && utils::IsFinite(NdfY()));
141 return (utils::IsUndefined(X()) || utils::IsUndefined(Y()) || utils::IsUndefined(Dx2())
142 || utils::IsUndefined(Dy2()) || utils::IsUndefined(Dxy()) || utils::IsUndefined(NdfX())
143 || utils::IsUndefined(NdfY()));
147 friend class boost::serialization::access;
148 template<
class Archive>
168 template<
typename TdataB,
bool TDoAllA,
bool TDoAllB>
198 template<
typename TdataA>
199 template<
typename TdataB,
bool TDoAllA,
bool TDoAllB>
202 auto copy = [&](TdataA& a,
const TdataB& b) {
208 copy(fDx2, Tb.
Dx2());
209 copy(fDy2, Tb.
Dy2());
210 copy(fDxy, Tb.
Dxy());
211 copy(fNdfX, Tb.
NdfX());
212 copy(fNdfY, Tb.
NdfY());
std::string ToString(ECbmModuleId modId)
Common constant definitions for the Kalman Filter library.
The class describes a 2D - measurement (x, y) in XY coordinate system.
void Set(const MeasurementXy< DataTb > &m)
MeasurementXy()=default
default constructor
bool IsUndefined() const
Checks, if some fields are undefined.
MeasurementXy(DataT x, DataT y, DataT dx2, DataT dy2, DataT dxy, DataT ndfX, DataT ndfY)
void SetOneEntry(const int i, const MeasurementXy< fvec > &m, const int im)
void SetCov(DataT dx2, DataT dxy, DataT dy2)
void Set(const MeasurementXy< fvec > &m, const int im)
void serialize(Archive &ar, const unsigned int)
void CopyBase(const int ia, const MeasurementXy< TdataB > &Tb, const int ib)
Copies all/one entries from the other class.
bool IsFinite() const
Checks, if all fields are finite.
void SetOneEntry(const int i, const MeasurementXy< DataTb > &m)
Copies all/one SIMD entries from one class to the other class.