List of all members | Public Member Functions | Private Attributes
atm::VRayleighModel Class Referenceabstract

Base class for an Rayleigh Model. More...

#include <VRayleighModel.h>

Inheritance diagram for atm::VRayleighModel:
Inheritance graph
[legend]

Public Member Functions

virtual AttenuationResult EvaluateRayleighAttenuation (const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const =0
 
virtual double EvaluateRayleighAttenuation (const utl::Point &xInit, const utl::Point &xFinal, const double wLength) const =0
 
virtual ScatteringResult EvaluateRayleighScattering (const utl::Point &x1, const utl::Point &x2, const double angle, const double distance, const std::vector< double > &wLength) const =0
 
virtual ScatteringResult EvaluateRayleighScattering (const utl::Point &x1, const utl::Point &x2, const double angle, const double distance, const AttenuationResult &raylAtten) const =0
 
virtual double EvaluateRayleighScattering (const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const double wLength, const double raylAtten) const =0
 
virtual double EvaluateRayleighScattering (const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const double wLength) const =0
 
virtual double EvaluateScatteringAngle (const utl::Point &p, const double angle, const double wLength) const =0
 
virtual const utl::VRandomSamplerEvaluateScatteringAngleDistribution (const utl::Point &p, const double wLength) const
 
virtual double GetAttenuationLength (const utl::Point &p, const double wLength) const =0
 
virtual bool HasData () const =0
 True if a data source is for the given model. More...
 
virtual void Init ()=0
 
virtual void SetUncertaintyBound (const double nSigma) const
 alter Model by nSigma standard deviations More...
 
 VRayleighModel ()
 
virtual ~VRayleighModel ()
 

Private Attributes

utl::VRandomSamplerfAngularDistribution = nullptr
 

Detailed Description

Base class for an Rayleigh Model.

Author
Luis Prado Jr
Date
23 Sep 2003

Definition at line 29 of file VRayleighModel.h.

Constructor & Destructor Documentation

atm::VRayleighModel::VRayleighModel ( )
inline

Definition at line 32 of file VRayleighModel.h.

atm::VRayleighModel::~VRayleighModel ( )
virtual

Definition at line 22 of file VRayleighModel.cc.

Member Function Documentation

virtual AttenuationResult atm::VRayleighModel::EvaluateRayleighAttenuation ( const utl::Point xInit,
const utl::Point xFinal,
const std::vector< double > &  wLength 
) const
pure virtual
virtual double atm::VRayleighModel::EvaluateRayleighAttenuation ( const utl::Point xInit,
const utl::Point xFinal,
const double  wLength 
) const
pure virtual
virtual ScatteringResult atm::VRayleighModel::EvaluateRayleighScattering ( const utl::Point x1,
const utl::Point x2,
const double  angle,
const double  distance,
const std::vector< double > &  wLength 
) const
pure virtual
virtual ScatteringResult atm::VRayleighModel::EvaluateRayleighScattering ( const utl::Point x1,
const utl::Point x2,
const double  angle,
const double  distance,
const AttenuationResult raylAtten 
) const
pure virtual

Additionally takes a precomputed Rayleigh AttenuationResult. Warning: Make sure it's compatible with the other parameters!

Implemented in atm::ParametricXMLRayleighModel, atm::HumidAirRayleighModel, and atm::RayleighModelOff.

virtual double atm::VRayleighModel::EvaluateRayleighScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
const double  wLength,
const double  raylAtten 
) const
pure virtual

Additionally takes a precomputed Rayleigh attenuation. Warning: Make sure it's compatible with the other parameters!

Implemented in atm::ParametricXMLRayleighModel, atm::HumidAirRayleighModel, and atm::RayleighModelOff.

virtual double atm::VRayleighModel::EvaluateRayleighScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
const double  wLength 
) const
pure virtual
virtual double atm::VRayleighModel::EvaluateScatteringAngle ( const utl::Point p,
const double  angle,
const double  wLength 
) const
pure virtual
const utl::VRandomSampler & atm::VRayleighModel::EvaluateScatteringAngleDistribution ( const utl::Point p,
const double  wLength 
) const
virtual
virtual double atm::VRayleighModel::GetAttenuationLength ( const utl::Point p,
const double  wLength 
) const
pure virtual
virtual bool atm::VModel::HasData ( ) const
pure virtualinherited

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

Implemented in atm::SuperMieModel, atm::MeasuredDBMieModel, atm::MieModelOff, atm::RayleighModelOff, atm::LidarCloudDBModel, atm::ParametricXMLMieModel, atm::ParametricXMLRayleighModel, atm::HumidAirRayleighModel, atm::AnalyticalCherenkovModel, atm::SimShowerProfileModel, atm::NonParametricXMLMieModel, atm::GDASProfileModel, atm::RadiosondeDBProfileModel, atm::SuperProfileModel, atm::ParametricXMLProfileModel, atm::MonthlyAvgDBProfileModel, atm::AirflyFluorescenceModel, atm::Kakimoto1996FluorescenceModel, atm::Nagano2004FluorescenceModel, atm::USStdADBProfileModel, atm::ConstantFluorescenceModel, atm::Keilhauer2008FluorescenceModel, and atm::AirFluorescenceModel.

virtual void atm::VModel::Init ( )
pure virtualinherited
void VModel::SetUncertaintyBound ( const double  nSigma) const
virtualinherited

alter Model by nSigma standard deviations

Reimplemented in atm::MeasuredDBMieModel, and atm::SuperMieModel.

Definition at line 11 of file VModel.cc.

References ERROR.

Member Data Documentation

utl::VRandomSampler* atm::VRayleighModel::fAngularDistribution = nullptr
mutableprivate

Definition at line 102 of file VRayleighModel.h.


The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.