CbmRoot
Loading...
Searching...
No Matches
KfMeasurementU.h
Go to the documentation of this file.
1/* Copyright (C) 2007-2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergey Gorbunov [committer], Igor Kulakov, Sergei Zharko */
4
7
8#pragma once // include this header only once per compilation unit
9
10
11#include "KfDefs.h"
12#include "KfUtils.h"
13
14#include <boost/serialization/access.hpp>
15
16#include <string>
17
18namespace cbm::algo::kf
19{
34 template<typename DataT>
35 class alignas(VcMemAlign) MeasurementU {
36
37 public:
38 friend class boost::serialization::access;
39
41 MeasurementU() = default;
42
51 MeasurementU(DataT cosPhi, DataT sinPhi, DataT u, DataT du2, DataT ndf)
52 : fCosPhi(cosPhi)
53 , fSinPhi(sinPhi)
54 , fU(u)
55 , fDu2(du2)
56 , fNdf(ndf)
57 {
58 }
59
62
63 void SetCosPhi(DataT cosPhi) { fCosPhi = cosPhi; }
64 void SetSinPhi(DataT sinPhi) { fSinPhi = sinPhi; }
65 void SetU(DataT u) { fU = u; }
66 void SetDu2(DataT du2) { fDu2 = du2; }
67 void SetNdf(DataT ndf) { fNdf = ndf; }
68
69 DataT CosPhi() const { return fCosPhi; }
70 DataT SinPhi() const { return fSinPhi; }
71 DataT U() const { return fU; }
72 DataT Du2() const { return fDu2; }
73 DataT Ndf() const { return fNdf; }
74
77
80 std::string ToString(int indentLevel = 0) const;
81
83 bool IsFinite() const
84 {
86 && utils::IsFinite(Ndf()));
87 }
88
95
97 friend class boost::serialization::access;
98 template<class Archive>
99 void serialize(Archive& ar, const unsigned int)
100 {
101 ar& fCosPhi;
102 ar& fSinPhi;
103 ar& fU;
104 ar& fDu2;
105 ar& fNdf;
106 }
107
108 private:
111
116
122
123} // namespace cbm::algo::kf
std::string ToString(CbmCutId id)
Convert CbmCutId to a string representation.
Definition CbmCutId.cxx:7
Common constant definitions for the Kalman Filter library.
DataT fDu2
rms^2 of the measurement
MeasurementU(DataT cosPhi, DataT sinPhi, DataT u, DataT du2, DataT ndf)
bool IsFinite() const
Checks, if all fields are finite.
void SetSinPhi(DataT sinPhi)
MeasurementU()=default
default constructor
void serialize(Archive &ar, const unsigned int)
bool IsUndefined() const
Checks, if some fields are undefined.
void SetCosPhi(DataT cosPhi)
DataT fU
measurement, u = x * cos(phi) + y * sin(phi)
DataT fNdf
number of degrees of freedom (used for chi2 calculation) if ndf == 1, the measurement is used in the ...
constexpr T2 Undef
Undefined values.
Definition KfDefs.h:218
bool IsFinite(const T &val)
Checks whether a variable of a particular type is finite.
Definition KfUtils.h:100
bool IsUndefined(const T &val)
Checks whether a variable of a particular type defined.
Definition KfUtils.h:78
class cbm::algo::kf::MeasurementTime _fvecalignment