REvent/ChannelRecData.h
Go to the documentation of this file.
1 #ifndef _revt_ChannelRecData_h_
2 #define _revt_ChannelRecData_h_
3 
4 #include <fwk/RunController.h>
5 #include <utl/ShadowPtr_fwd.h>
6 #include <utl/ParameterStorage.h>
7 #include <revt/ChannelRRecDataQuantities.h>
8 #include <cmath>
9 
10 
11 namespace revt {
12 
13  class Channel;
14 
15 
24 
25  public:
26  // Parameter Storage
27  typedef ChannelRRecDataQuantities Parameter;
28 
29  double GetParameter(const Parameter i) const
30  { return fChannelQuantities.GetParameter(i, CurrentModule()); }
31 
32  bool GetParameterLockStatus(const Parameter i) const
33  { return fChannelQuantities.GetParameterLockStatus(i, CurrentModule()); }
34 
35  double GetParameterError(const Parameter i) const
36  { return sqrt(fChannelQuantities.GetParameterCovariance(i, i, CurrentModule())); }
37 
38  double GetParameterCovariance(const Parameter i1, const Parameter i2) const
39  { return fChannelQuantities.GetParameterCovariance(i1, i2, CurrentModule()); }
40 
41  bool GetParameterCovarianceLockStatus(const Parameter i1, const Parameter i2) const
42  { return fChannelQuantities.GetParameterCovarianceLockStatus(i1, i2, CurrentModule()); }
43 
44  bool HasParameter(const Parameter i) const
45  { return fChannelQuantities.HasParameter(i); }
46 
47  bool HasParameterError(const Parameter i1) const
48  { return fChannelQuantities.HasParameterCovariance(i1, i1); }
49 
50  bool HasParameterCovariance(const Parameter i1, const Parameter i2) const
51  { return fChannelQuantities.HasParameterCovariance(i1, i2); }
52 
53  void SetParameter(Parameter i, double value, bool lock = true)
54  { fChannelQuantities.SetParameter(i, value, lock, CurrentModule()); }
55 
56  void SetParameterError(Parameter i, double value, bool lock = true)
57  { fChannelQuantities.SetParameterCovariance(i, i, value*value, lock, CurrentModule()); }
58 
59  void SetParameterCovariance(Parameter i1, Parameter i2, double value, bool lock = true)
60  { fChannelQuantities.SetParameterCovariance(i1, i2, value, lock, CurrentModule()); }
61 
62  void DeleteParameter(const Parameter i1)
63  { fChannelQuantities.DeleteParameter(i1, CurrentModule()); }
64 
66  const Parameter i2)
67  { fChannelQuantities.DeleteParameterCovariance(i1, i2, CurrentModule()); }
68 
69  std::vector<Parameter> GetEnumVector() const
70  { return fChannelQuantities.GetEnumVector(); }
71 
72  std::vector<std::pair<Parameter, Parameter>> GetCovarianceEnumVector() const
73  { return fChannelQuantities.GetCovarianceEnumVector(); }
74 
75  private:
76  ChannelRecData() = default;
77  ~ChannelRecData() = default;
78 
79  static const std::string& CurrentModule() { return fwk::RunController::GetInstance().GetCurrentModule(); }
80 
82 
83  friend class revt::Channel;
85 
86  };
87 
88 }
89 
90 
91 #endif
Class to access channel level reconstructed data.
void DeleteParameterCovariance(const Parameter i1, const Parameter i2)
pointer with built-in initialization, deletion, deep copying
Definition: ShadowPtr.h:163
~ChannelRecData()=default
static const std::string & CurrentModule()
double GetParameterError(const Parameter i) const
ChannelRecData()=default
double GetParameterCovariance(const Parameter i1, const Parameter i2) const
bool GetParameterLockStatus(const Parameter i) const
std::vector< Parameter > GetEnumVector() const
void SetParameter(Parameter i, double value, bool lock=true)
double GetParameter(const Parameter i) const
bool HasParameter(const IndexEnum param) const
determine whether a parameter has been set
void DeleteParameter(const Parameter i1)
ChannelRRecDataQuantities Parameter
std::vector< std::pair< Parameter, Parameter > > GetCovarianceEnumVector() const
bool GetParameterCovarianceLockStatus(const Parameter i1, const Parameter i2) const
void SetParameterCovariance(Parameter i1, Parameter i2, double value, bool lock=true)
void SetParameterError(Parameter i, double value, bool lock=true)
bool HasParameterCovariance(const Parameter i1, const Parameter i2) const
bool HasParameterError(const Parameter i1) const
bool HasParameter(const Parameter i) const
utl::ParameterStorage< Parameter > fChannelQuantities
Class that holds the data associated to an individual radio channel.

, generated on Tue Sep 26 2023.