CbmRoot
Loading...
Searching...
No Matches
KfISetupFactory.h
Go to the documentation of this file.
1/* Copyright (C) 2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergei Zharko [committer] */
4
9
10#ifndef KfISetupFactory_h
11#define KfISetupFactory_h 1
12
13#include "KfDefs.h"
14
15namespace cbm::algo::kf
16{
17 template<typename Float>
18 class Setup;
19
23 public:
25 virtual ~ISetupFactory() = default;
26
30 virtual Setup<double> Create(FloatTag<double> floatTag, EFieldMode fldMode) const = 0;
31
35 virtual Setup<float> Create(FloatTag<float> floatTag, EFieldMode fldMode) const = 0;
36
40 virtual Setup<fvec> Create(FloatTag<fvec> floatTag, EFieldMode fldMode) const = 0;
41
43 virtual const FieldFn_t& GetFieldFunction() const = 0;
44 };
45} // namespace cbm::algo::kf
46
47#endif // KfISetupFactory_h
Common constant definitions for the Kalman Filter library.
Abstract factory for different setups.
virtual Setup< float > Create(FloatTag< float > floatTag, EFieldMode fldMode) const =0
Method to create a setup with single-precision floating point type.
virtual Setup< double > Create(FloatTag< double > floatTag, EFieldMode fldMode) const =0
Method to create a setup with double-precision floating point type.
virtual const FieldFn_t & GetFieldFunction() const =0
Returns a field function.
virtual Setup< fvec > Create(FloatTag< fvec > floatTag, EFieldMode fldMode) const =0
Method to create a setup with vectorized floating point type.
virtual ~ISetupFactory()=default
Destructor.
KF-framework representation of the detector setup.
Definition KfSetup.h:37
EFieldMode
Enumiration for the magnetic field representation variants in the track fitting algorithm.
Definition KfDefs.h:108
std::function< std::tuple< double, double, double >(double, double, double)> FieldFn_t
Magnetic field function type Signature: tuple<Bx, By, Bz>(x, y, z);.
Definition KfDefs.h:169
A floating-point tag for tag dispatching.
Definition KfDefs.h:117