CbmRoot
Loading...
Searching...
No Matches
KfMeasurementTime.h
Go to the documentation of this file.
1/* Copyright (C) 2007-2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergey Gorbunov [committer], 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{
27 template<typename DataT>
28 class alignas(VcMemAlign) MeasurementTime {
29
30 public:
31 friend class boost::serialization::access;
32
34 MeasurementTime() = default;
35
42 MeasurementTime(DataT t, DataT dt2, DataT ndfT) : fT(t), fDt2(dt2), fNdfT(ndfT) {}
43
46
47 void SetT(DataT t) { fT = t; }
48 void SetDt2(DataT dt2) { fDt2 = dt2; }
49 void SetNdfT(DataT ndfT) { fNdfT = ndfT; }
50
51 DataT T() const { return fT; }
52 DataT Dt2() const { return fDt2; }
53 DataT NdfT() const { return fNdfT; }
54
55
58
61 std::string ToString(int indentLevel = 0) const;
62
64 bool IsFinite() const { return (utils::IsFinite(T()) && utils::IsFinite(Dt2()) && utils::IsFinite(NdfT())); }
65
67 bool IsUndefined() const
68 {
69 return (utils::IsUndefined(T()) || utils::IsUndefined(Dt2()) || utils::IsUndefined(NdfT()));
70 }
71
73 friend class boost::serialization::access;
74 template<class Archive>
75 void serialize(Archive& ar, const unsigned int)
76 {
77 ar& fT;
78 ar& fDt2;
79 ar& fNdfT;
80 }
81
82 private:
85
86 DataT fT{0};
87 DataT fDt2{1.};
88
92
93 DataT fNdfT{0};
94
96
97} // namespace cbm::algo::kf
std::string ToString(ECbmModuleId modId)
Definition CbmDefs.cxx:70
Common constant definitions for the Kalman Filter library.
#define _fvecalignment
The class describes a time measurement.
MeasurementTime(DataT t, DataT dt2, DataT ndfT)
MeasurementTime()=default
default constructor
bool IsFinite() const
Checks, if all fields are finite.
void serialize(Archive &ar, const unsigned int)
bool IsUndefined() const
Checks, if some fields are undefined.