List of all members | Public Member Functions | Private Member Functions | Private Attributes
atm::ParametricXMLRayleighModel Class Reference

Parametric model for Rayleigh scattering and attenuation using. More...

#include <ParametricXMLRayleighModel.h>

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

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::VRandomSamplerEvaluateScatteringAngleDistribution (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
 

Detailed Description

Parametric model for Rayleigh scattering and attenuation using.

  "atm/ParametricXMLRayleighModel.h"

The data used in this model are stored in an XML file.

Author
Luis Prado Jr
Date
23 Sep 2003

Definition at line 34 of file ParametricXMLRayleighModel.h.

Constructor & Destructor Documentation

ParametricXMLRayleighModel::ParametricXMLRayleighModel ( )

Definition at line 59 of file ParametricXMLRayleighModel.cc.

virtual atm::ParametricXMLRayleighModel::~ParametricXMLRayleighModel ( )
inlinevirtual

Definition at line 40 of file ParametricXMLRayleighModel.h.

Member Function Documentation

AttenuationResult ParametricXMLRayleighModel::EvaluateRayleighAttenuation ( const utl::Point xInit,
const utl::Point xFinal,
const std::vector< double > &  wLength 
) const
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

Todo:
Calculate the error propagation of xRayleigh

Implements atm::VRayleighModel.

Definition at line 183 of file ParametricXMLRayleighModel.cc.

References GDistance(), GetAttenuationLength(), and utl::TabulatedFunctionErrors::PushBack().

Referenced by EvaluateRayleighScattering().

double ParametricXMLRayleighModel::EvaluateRayleighAttenuation ( const utl::Point xInit,
const utl::Point xFinal,
double  wLength 
) const
virtual

Implements atm::VRayleighModel.

Definition at line 205 of file ParametricXMLRayleighModel.cc.

References GDistance(), and GetAttenuationLength().

ScatteringResult ParametricXMLRayleighModel::EvaluateRayleighScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
const std::vector< double > &  wLength 
) const
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.

Todo:
Add error calculation
Parameters
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().

ScatteringResult ParametricXMLRayleighModel::EvaluateRayleighScattering ( const utl::Point x1,
const utl::Point x2,
const double  angle,
const double  distance,
const atm::AttenuationResult raylAtten 
) const
virtual
double ParametricXMLRayleighModel::EvaluateRayleighScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
double  wLength 
) const
virtual
double ParametricXMLRayleighModel::EvaluateRayleighScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
double  wLength,
const double  raylAtten 
) const
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().

double ParametricXMLRayleighModel::EvaluateScatteringAngle ( const utl::Point p,
const double  angle,
const double  wLength 
) const
virtual

Implements atm::VRayleighModel.

Definition at line 294 of file ParametricXMLRayleighModel.cc.

References fRhoN, utl::kPi, and std::pow().

Referenced by EvaluateRayleighScattering().

const utl::VRandomSampler & atm::VRayleighModel::EvaluateScatteringAngleDistribution ( const utl::Point p,
const double  wLength 
) const
virtualinherited
double ParametricXMLRayleighModel::GDistance ( const utl::Point xA,
const utl::Point xB 
) const
private
double ParametricXMLRayleighModel::GetAttenuationLength ( const utl::Point p,
const double  wLength 
) const
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().

bool atm::ParametricXMLRayleighModel::HasData ( ) const
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.

void ParametricXMLRayleighModel::Init ( void  )
virtual
atm::ParametricXMLRayleighModel::REGISTER_MODEL ( atm::VRayleighModel  ,
"ParametricXML"  ,
ParametricXMLRayleighModel   
)
private
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

bool atm::ParametricXMLRayleighModel::fIntegratedGDistance
private

Definition at line 92 of file ParametricXMLRayleighModel.h.

Referenced by GDistance(), and Init().

double atm::ParametricXMLRayleighModel::fIntegrationStepWidth
private

Definition at line 93 of file ParametricXMLRayleighModel.h.

Referenced by GDistance(), and Init().

double atm::ParametricXMLRayleighModel::fRhoN
private

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

, generated on Tue Sep 26 2023.