CbmRoot
Loading...
Searching...
No Matches
KfDefs.h File Reference

Common constant definitions for the Kalman Filter library. More...

#include "KfSimd.h"
#include <array>
#include <functional>
#include <limits>
#include <tuple>
Include dependency graph for KfDefs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cbm::algo::kf::Literal< T >
 Replaces the type T with the Literal::type to handle the constant expressions for different constants. More...
 
struct  cbm::algo::kf::Literal< fvec >
 

Namespaces

namespace  cbm
 
namespace  cbm::algo
 
namespace  cbm::algo::kf
 
namespace  cbm::algo::kf::defs
 
namespace  cbm::algo::kf::defs::dbg
 

Typedefs

template<typename T >
using cbm::algo::kf::Literal_t = typename Literal<T>::type
 
template<class T >
using cbm::algo::kf::GeoVector_t = std::array<T, 3>
 Geometry (spatial) vector.
 
using cbm::algo::kf::FieldFn_t = std::function<std::tuple<double, double, double>(double, double, double)>
 Magnetic field function type Signature: tuple<Bx, By, Bz>(x, y, z);.
 

Enumerations

enum class  cbm::algo::kf::EFieldMode { cbm::algo::kf::Intrpl , cbm::algo::kf::Orig }
 Enumiration for the magnetic field representation variants in the track fitting algorithm. More...
 
enum class  cbm::algo::kf::EFieldType { cbm::algo::kf::Normal , cbm::algo::kf::Null }
 Magnetic field type in different setup regions. More...
 

Variables

constexpr int cbm::algo::kf::defs::MaxNofDetSubsystems = 256
 Max number of detector types (STS, TRD, RICH,...)
 
constexpr int cbm::algo::kf::defs::MaxNofDetComponents = 128
 Max number of detector components (stations, layers, ...)
 
constexpr int cbm::algo::kf::defs::DebugLvl = 0
 Level of debug output.
 
constexpr bool cbm::algo::kf::defs::GetterCheck = true
 Bound check in getters.
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::Pi = Literal_t<T>(3.14159265358979323846L)
 Value of PI, used in ROOT TMath.
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::MuonMass = Literal_t<T>(0.105658375523L)
 Muon mass [GeV/c2].
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::PionMass = Literal_t<T>(0.1395703918L)
 Pion mass [GeV/c2].
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::KaonMass = Literal_t<T>(0.493677L)
 Kaon mass [GeV/c2] (PDG 22.08.2023)
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::ElectronMass = Literal_t<T>(0.0005109989500015L)
 Electron mass [GeV/c2].
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::ProtonMass = Literal_t<T>(0.93827208816L)
 Proton mass [GeV/c2] (PDG 11.08.2022)
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::SpeedOfLight = Literal_t<T>(29.9792458L)
 Speed of light [cm/ns].
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::SpeedOfLightInv = Literal_t<T>(1.L) / SpeedOfLight<T>
 Inverse speed of light [ns/cm].
 
template<class T = double>
constexpr auto cbm::algo::kf::defs::MinField = Literal_t<T>(1.e-4L)
 Minimal (negligible) magnetic field value [kG].
 
template<typename T1 , typename T2 = T1>
constexpr T2 cbm::algo::kf::defs::Undef
 Undefined values.
 
template<>
constexpr int cbm::algo::kf::defs::Undef< int > = std::numeric_limits<int>::min()
 
template<>
constexpr unsigned cbm::algo::kf::defs::Undef< unsigned > = std::numeric_limits<unsigned>::max()
 
template<>
constexpr float cbm::algo::kf::defs::Undef< float > = std::numeric_limits<float>::signaling_NaN()
 
template<>
constexpr double cbm::algo::kf::defs::Undef< double > = std::numeric_limits<double>::signaling_NaN()
 
template<>
constexpr fscal cbm::algo::kf::defs::Undef< fvec > = std::numeric_limits<fscal>::signaling_NaN()
 
constexpr auto cbm::algo::kf::defs::ZeroFieldFn = [](double, double, double) constexpr { return std::make_tuple(0., 0., 0.); }
 Zero magnetic field function.
 

Detailed Description

Common constant definitions for the Kalman Filter library.

Since
28.03.2024
Author
Sergei Zharko s.zha.nosp@m.rko@.nosp@m.gsi.d.nosp@m.e

Definition in file KfDefs.h.