SimShowerProfileModel.h
Go to the documentation of this file.
1 #ifndef _atm_SimShowerProfileModel_h_
2 #define _atm_SimShowerProfileModel_h_
3 
4 #include <atm/VProfileModel.h>
5 #include <utl/AugerUnits.h>
6 
7 #include <string>
8 
9 
10 namespace atm {
11 
12  class ProfileResult;
13 
14 
46  public:
47  SimShowerProfileModel() = default;
48  virtual ~SimShowerProfileModel() = default;
49 
50  void Init() override;
51 
53  const atm::ProfileResult& EvaluateDepthVsHeight() const override;
54 
56  const atm::ProfileResult& EvaluateHeightVsDepth() const override;
57 
59  const atm::ProfileResult& EvaluatePressureVsHeight() const override;
60 
62  const ProfileResult& EvaluateVaporPressureVsHeight() const override;
63 
65  const atm::ProfileResult& EvaluateTemperatureVsHeight() const override;
66 
68  const atm::ProfileResult& EvaluateDensityVsHeight() const override;
69 
72 
73  bool HasData() const override { return true; }
74 
75  private:
76  void LazyInit() const;
77 
78  double GetDensityAtHeight(const double height) const;
79  double GetDepthAtHeight(const double height) const;
80 
81  mutable std::string fCurrentEvent;
82  mutable bool fInitialized = false;
83  mutable std::vector<double> fHlay;
84  mutable std::vector<double> fAatm;
85  mutable std::vector<double> fBatm;
86  mutable std::vector<double> fCatm;
87 
89  };
90 
91 }
92 
93 
94 #endif
const ProfileResult & EvaluateVaporPressureVsHeight() const override
Table of H2O vapor pressure as a function of height.
double GetDepthAtHeight(const double height) const
double GetDensityAtHeight(const double height) const
const atm::ProfileResult & EvaluateDepthVsHeight() const override
Table of depth as a function of height.
const atm::ProfileResult & EvaluateTemperatureVsHeight() const override
Table of temperature as a function of height.
Class describing the Atmospheric profile.
Definition: ProfileResult.h:25
bool HasData() const override
True if a data source is for the given model.
const atm::ProfileResult & EvaluateHeightVsDepth() const override
Table of height as a function of depth.
Molecular profile using a parametric model stored in a shower file.
REGISTER_MODEL(atm::VProfileModel,"SimShower", SimShowerProfileModel)
const atm::ProfileResult & EvaluateRefractionIndexVsHeight() const override
Table of refraction index as a function of height.
const atm::ProfileResult & EvaluatePressureVsHeight() const override
Table of air pressure as a function of height.
const atm::ProfileResult & EvaluateDensityVsHeight() const override
Table of density as a function of height.
virtual ~SimShowerProfileModel()=default
Base class for a Profile Model.
Definition: VProfileModel.h:26

, generated on Tue Sep 26 2023.