Parametric model for Rayleigh scattering and attenuation using. More...
#include <ParametricXMLRayleighModel.h>
Public Member Functions | |
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. More... | |
double | EvaluateRayleighAttenuation (const utl::Point &xInit, const utl::Point &xFinal, double wLength) const |
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. More... | |
atm::ScatteringResult | EvaluateRayleighScattering (const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const atm::AttenuationResult &raylAtt) const |
double | EvaluateRayleighScattering (const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, double wLength) const |
double | EvaluateRayleighScattering (const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, double wLength, const double raylAtt) const |
double | EvaluateScatteringAngle (const utl::Point &p, const double angle, const double wLength) const |
virtual const utl::VRandomSampler & | EvaluateScatteringAngleDistribution (const utl::Point &p, const double wLength) const |
double | GetAttenuationLength (const utl::Point &p, const double wLength) const |
Attenuation [slant depth]; assumes const Rayleigh X-section vs height. More... | |
bool | HasData () const |
True if a data source is for the given model. More... | |
void | Init () |
ParametricXMLRayleighModel () | |
virtual void | SetUncertaintyBound (const double nSigma) const |
alter Model by nSigma standard deviations More... | |
virtual | ~ParametricXMLRayleighModel () |
Private Member Functions | |
double | GDistance (const utl::Point &xA, const utl::Point &xB) const |
Get the distance between two points in massive length. More... | |
REGISTER_MODEL (atm::VRayleighModel,"ParametricXML", ParametricXMLRayleighModel) | |
Private Attributes | |
bool | fIntegratedGDistance |
double | fIntegrationStepWidth |
double | fRhoN |
Parametric model for Rayleigh scattering and attenuation using.
"atm/ParametricXMLRayleighModel.h"
The data used in this model are stored in an XML file.
Definition at line 34 of file ParametricXMLRayleighModel.h.
ParametricXMLRayleighModel::ParametricXMLRayleighModel | ( | ) |
Definition at line 59 of file ParametricXMLRayleighModel.cc.
|
inlinevirtual |
Definition at line 40 of file ParametricXMLRayleighModel.h.
|
virtual |
Calculate the Rayleigh attenuation between two points for a vector of wavelengths.
New version 13/01/06 BRD. See GAP-2006-007 From A. Bucholtz, Applied Optics 34, 2765 (1995). To retrieve the classic parametrization (eg as in Sokolsky's book) set fRhoN=0.0 in xml file.
The formula from Sokolsky's book is used
Implements atm::VRayleighModel.
Definition at line 183 of file ParametricXMLRayleighModel.cc.
References GDistance(), GetAttenuationLength(), and utl::TabulatedFunctionErrors::PushBack().
Referenced by EvaluateRayleighScattering().
|
virtual |
Implements atm::VRayleighModel.
Definition at line 205 of file ParametricXMLRayleighModel.cc.
References GDistance(), and GetAttenuationLength().
|
virtual |
Calculate the fraction of Rayleigh scattering photons in the beam.
New version 13/01/06 BRD. See GAP-2006-007 From A. Bucholtz, Applied Optics 34, 2765 (1995). To retrieve the classic parametrization (eg as in Sokolsky's book) set fRhoN=0.0 in xml file.
xA,: | position of the first point |
xB,: | position of the second point |
angle,: | scattering angle to reach the target |
distance,: | distance between mean of xA and xB and the target |
wLength,: | wavelengths to calculate the scattering |
Implements atm::VRayleighModel.
Definition at line 103 of file ParametricXMLRayleighModel.cc.
References EvaluateRayleighAttenuation().
Referenced by EvaluateRayleighScattering().
|
virtual |
Additionally takes a precomputed Rayleigh AttenuationResult. Warning: Make sure it's compatible with the other parameters!
Implements atm::VRayleighModel.
Definition at line 116 of file ParametricXMLRayleighModel.cc.
References EvaluateRayleighScattering(), utl::TabulatedFunction::GetNPoints(), atm::AttenuationResult::GetTransmissionFactor(), utl::TabulatedFunction::GetX(), utl::TabulatedFunction::GetY(), and utl::TabulatedFunctionErrors::PushBack().
|
virtual |
Implements atm::VRayleighModel.
Definition at line 156 of file ParametricXMLRayleighModel.cc.
References EvaluateRayleighAttenuation(), and EvaluateRayleighScattering().
|
virtual |
Additionally takes a precomputed Rayleigh attenuation. Warning: Make sure it's compatible with the other parameters!
Implements atm::VRayleighModel.
Definition at line 141 of file ParametricXMLRayleighModel.cc.
References EvaluateScatteringAngle().
|
virtual |
Implements atm::VRayleighModel.
Definition at line 294 of file ParametricXMLRayleighModel.cc.
References fRhoN, utl::kPi, and std::pow().
Referenced by EvaluateRayleighScattering().
|
virtualinherited |
Definition at line 29 of file VRayleighModel.cc.
References utl::deg, utl::RandomSamplerFromPDF::eLinear, and utl::TabulatedFunction::PushBack().
|
private |
Get the distance between two points in massive length.
Definition at line 221 of file ParametricXMLRayleighModel.cc.
References utl::abs(), utl::atmosphere, atm::Atmosphere::EvaluateDepthVsHeight(), fIntegratedGDistance, fIntegrationStepWidth, fwk::CoordinateSystemRegistry::Get(), det::Detector::GetAtmosphere(), atm::Atmosphere::IntegratedGrammage(), km, utl::m, atm::ProfileResult::MaxX(), atm::ProfileResult::MinX(), utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight(), and atm::ProfileResult::Y().
Referenced by EvaluateRayleighAttenuation().
|
virtual |
Attenuation [slant depth]; assumes const Rayleigh X-section vs height.
Implements atm::VRayleighModel.
Definition at line 273 of file ParametricXMLRayleighModel.cc.
References utl::cm3, fRhoN, utl::kAvogadro, utl::kDryAirMolarMass, utl::kPi, std::pow(), and RefractiveIndex().
Referenced by EvaluateRayleighAttenuation().
|
inlinevirtual |
True if a data source is for the given model.
This method is meant to be checked to determine whether the given model is able to find valid data to evaluate. Typically it will always be true for parametric models which rely on an XML file, and will be true or false for database-based models, depending on whether or not relevant data are found in the DB for the current detector time
Implements atm::VModel.
Definition at line 86 of file ParametricXMLRayleighModel.h.
|
virtual |
Implements atm::VModel.
Definition at line 66 of file ParametricXMLRayleighModel.cc.
References fIntegratedGDistance, fIntegrationStepWidth, fRhoN, utl::Branch::GetChild(), utl::Branch::GetData(), fwk::CentralConfig::GetTopBranch(), INFO, and utl::m.
|
private |
|
virtualinherited |
alter Model by nSigma standard deviations
Reimplemented in atm::MeasuredDBMieModel, and atm::SuperMieModel.
Definition at line 11 of file VModel.cc.
References ERROR.
|
private |
Definition at line 92 of file ParametricXMLRayleighModel.h.
Referenced by GDistance(), and Init().
|
private |
Definition at line 93 of file ParametricXMLRayleighModel.h.
Referenced by GDistance(), and Init().
|
private |
Definition at line 96 of file ParametricXMLRayleighModel.h.
Referenced by EvaluateScatteringAngle(), GetAttenuationLength(), and Init().