ParametricXMLRayleighModel.h
Go to the documentation of this file.
1 
10 #ifndef _atm_ParametricXMLRayleighModel_h_
11 #define _atm_ParametricXMLRayleighModel_h_
12 
13 
14 #include <atm/VRayleighModel.h>
15 #include <vector>
16 
17 namespace atm {
18 
19  class ScatteringResult;
20  class AttenuationResult;
21 
35 
36  public:
37 
39 
41 
43  const utl::Point& xA,
44  const utl::Point& xB,
45  const double angle,
46  const double distance,
47  const std::vector<double>& wLength) const;
48 
50  const utl::Point& xA,
51  const utl::Point& xB,
52  const double angle,
53  const double distance,
54  const atm::AttenuationResult& raylAtt) const;
55 
57  const utl::Point& xInit,
58  const utl::Point& xFinal,
59  const std::vector<double>& wLength) const;
60 
61  double EvaluateRayleighScattering(const utl::Point& xA,
62  const utl::Point& xB,
63  const double angle,
64  const double distance,
65  double wLength) const;
66 
67  double EvaluateRayleighScattering(const utl::Point& xA,
68  const utl::Point& xB,
69  const double angle,
70  const double distance,
71  double wLength,
72  const double raylAtt) const;
73 
74  double EvaluateRayleighAttenuation(const utl::Point& xInit,
75  const utl::Point& xFinal,
76  double wLength) const;
77 
79  double GetAttenuationLength(const utl::Point& p,
80  const double wLength) const;
81 
82  double EvaluateScatteringAngle(const utl::Point& p,
83  const double angle,
84  const double wLength) const;
85 
86  bool HasData() const {return true;};
87 
88  void Init();
89 
90  private:
91 
94 
95  // Depolarisation factor, Buchholtz Applied Optics 34, 2765 (1995)
96  double fRhoN;
97  double GDistance(const utl::Point& xA, const utl::Point& xB) const;
98 
100  };
101 
102 } // atm
103 
104 
105 #endif // _atm_ParametricXMLRayleighModel_h_
106 
Point object.
Definition: Point.h:32
atm::AttenuationResult EvaluateRayleighAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const
Calculate the Rayleigh attenuation between two points for a vector of wavelengths.
atm::ScatteringResult EvaluateRayleighScattering(const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const std::vector< double > &wLength) const
Calculate the fraction of Rayleigh scattering photons in the beam.
Base class for an Rayleigh Model.
bool HasData() const
True if a data source is for the given model.
Class holding the output of the ScatteringResult function.
double EvaluateScatteringAngle(const utl::Point &p, const double angle, const double wLength) const
Parametric model for Rayleigh scattering and attenuation using.
double GetAttenuationLength(const utl::Point &p, const double wLength) const
Attenuation [slant depth]; assumes const Rayleigh X-section vs height.
REGISTER_MODEL(atm::VRayleighModel,"ParametricXML", ParametricXMLRayleighModel)
double GDistance(const utl::Point &xA, const utl::Point &xB) const
Get the distance between two points in massive length.
Class describing the Atmospheric attenuation.

, generated on Tue Sep 26 2023.