VModel.h
Go to the documentation of this file.
1 #ifndef _atm_VModel_h_
2 #define _atm_VModel_h_
3 
4 #include <utl/ObjectRegistrar.h>
5 #include <utl/ObjectFactory.h>
6 #include <utl/ErrorLogger.h>
7 
8 
9 #define REGISTER_MODEL(_baseClass_, _modelName_, _ModelType_) \
10 public: \
11  static std::string GetRegistrationId() { return _modelName_; } \
12  static _baseClass_* Create() { static _ModelType_ model; return &model; } \
13 private: \
14  utl::ObjectRegistrar< \
15  _ModelType_, \
16  utl::ObjectFactory< \
17  _baseClass_*, \
18  std::string \
19  > \
20  > fAutoModelReg
21 
22 
23 namespace atm {
24 
35  class VModel {
36 
37  public:
38  virtual ~VModel() { }
39  virtual void Init() = 0;
40 
42 
49  virtual bool HasData() const = 0;
50 
52  virtual void SetUncertaintyBound(const double nSigma) const;
53 
54  protected:
55  VModel() { }
56 
57  private:
58  // count how often virtual AlterByNSigma is called
59  mutable unsigned int fNSigmaCounter = 0;
60 
61  };
62 
63 }
64 
65 
66 #endif
unsigned int fNSigmaCounter
Definition: VModel.h:59
Base class of atmospheric functions.
Definition: VModel.h:35
virtual void Init()=0
virtual void SetUncertaintyBound(const double nSigma) const
alter Model by nSigma standard deviations
Definition: VModel.cc:11
VModel()
Definition: VModel.h:55
virtual bool HasData() const =0
True if a data source is for the given model.
virtual ~VModel()
Definition: VModel.h:38

, generated on Tue Sep 26 2023.