CbmRoot
Loading...
Searching...
No Matches
CbmCaParametersHandler.h
Go to the documentation of this file.
1/* Copyright (C) 2024 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergei Zharko [committer] */
4
9/* Copyright (C) 2024 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
10 SPDX-License-Identifier: GPL-3.0-only
11 Authors: Sergei Zharko [committer] */
12
17
18#pragma once
19
20#include "CaParameters.h"
22#include "CbmL1DetectorID.h"
23#include "KfDefs.h"
24
25#include <FairTask.h>
26
27#include <memory>
28#include <string>
29#include <utility>
30#include <vector>
31
32namespace cbm::ca
33{
38 class ParametersHandler : public FairTask {
39 public:
40 using ParametersPtr_t = std::shared_ptr<const cbm::algo::ca::Parameters<double>>;
41
42 // Disable copy and move
47
49 ParametersPtr_t Get() const { return fpParameters; }
50
53
58 void DisableStation(algo::ca::EDetectorID detId, int locId) { fvInactiveIds.emplace_back(detId, locId); }
59
62 void SetMainConfig(const std::string& mainConfig) { fsMainConfig = mainConfig; }
63
66 void SetUserConfig(const std::string& userConfig) { fsUserConfig = userConfig; }
67
70 void SetFieldMode(algo::kf::EFieldMode fldMode) { fFldMode = fldMode; }
71
74 void SetIgnoreHitPresence(bool ignoreHitPresence) { fbIgnoreHitPresence = ignoreHitPresence; }
75
78 void StoreParameters(const std::string& filename) { fsOutFilename = filename; }
79
80
81 protected:
84 InitStatus Init() override;
85
87 InitStatus ReInit() override;
88
89 private:
90 std::string fsMainConfig{};
91 std::string fsUserConfig{};
92 std::string fsOutFilename{};
93 std::vector<std::pair<algo::ca::EDetectorID, int>> fvInactiveIds;
96 bool fbIgnoreHitPresence{false};
97
99 ParametersHandler() = default;
100
103
104 ClassDefOverride(ParametersHandler, 0); // Formally, because it inherits FairTask
105 };
106} // namespace cbm::ca
Implementation of L1DetectorID enum class for CBM.
Common constant definitions for the Kalman Filter library.
Handles an shared pointer of CA parameters in double precision with original magnetic field.
void SetFieldMode(algo::kf::EFieldMode fldMode)
Sets the magnetic field mode.
ParametersHandler & operator=(const ParametersHandler &)=delete
std::string fsMainConfig
Main config.
void SetUserConfig(const std::string &userConfig)
Sets path to the user config.
void SetIgnoreHitPresence(bool ignoreHitPresence)
Sets ignore hit presence.
ParametersHandler(ParametersHandler &&)=delete
ClassDefOverride(ParametersHandler, 0)
ParametersHandler()=default
Default constructor.
InitStatus ReInit() override
Re-initializes the instance.
ParametersPtr_t fpParameters
ca::Parameters instance (double precision)
static ParametersHandler & Instance()
Instance.
ParametersHandler(const ParametersHandler &)=delete
~ParametersHandler()=default
Destructor.
void SetMainConfig(const std::string &mainConfig)
Sets path to the main config.
void StoreParameters(const std::string &filename)
Stores parameters in a file.
void DisableStation(algo::ca::EDetectorID detId, int locId)
Disables tracking station.
InitStatus Init() override
Initializes the instance.
ParametersPtr_t Get() const
Accessor to the parameters shared pointer.
bool fbIgnoreHitPresence
ignores hit presence, when checks active detectors
ParametersHandler & operator=(ParametersHandler &&)=delete
std::shared_ptr< const cbm::algo::ca::Parameters< double > > ParametersPtr_t
std::string fsUserConfig
User config.
std::string fsOutFilename
Parameters output filename.
std::vector< std::pair< algo::ca::EDetectorID, int > > fvInactiveIds
Inactive stations.
algo::kf::EFieldMode fFldMode
magnetic field mode
EDetectorID
Enumeration for the tracking detector subsystems in CBM-CA.
Definition CbmDefs.h:216
EFieldMode
Enumiration for the magnetic field representation variants in the track fitting algorithm.
Definition KfDefs.h:108
@ Original
Original magnetic field function.
Definition KfDefs.h:110