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

Model for Rayleigh scattering and attenuation in a humid atmosphere. More...

#include <HumidAirRayleighModel.h>

Inheritance diagram for atm::HumidAirRayleighModel:
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
 Calculate the Rayleigh attenuation between two points at a given wavelength. Integrate the Rayleigh volume scattering coefficient over the path between the points. More...
 
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 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, const double raylAtt, double wLength) 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 in units of length [1/scattering coefficient]. More...
 
bool HasData () const
 True if a data source is for the given model. More...
 
 HumidAirRayleighModel ()
 
void Init ()
 
virtual void SetUncertaintyBound (const double nSigma) const
 alter Model by nSigma standard deviations More...
 
virtual ~HumidAirRayleighModel ()
 

Private Member Functions

double KingFactor (const double wl, const double pressure, const double vaporPressure) const
 
double RayleighCrossSection (const double wl, const double refIndex, const double temperature, const double pressure, const double vaporPressure) const
 
 REGISTER_MODEL (atm::VRayleighModel,"HumidAir", HumidAirRayleighModel)
 

Private Attributes

double fIntegrationStepWidth
 

Detailed Description

Model for Rayleigh scattering and attenuation in a humid atmosphere.

  "atm/HumidAirRayleighModel.h"
Date
25 Mar 2009

Definition at line 32 of file HumidAirRayleighModel.h.

Constructor & Destructor Documentation

HumidAirRayleighModel::HumidAirRayleighModel ( )

Definition at line 42 of file HumidAirRayleighModel.cc.

virtual atm::HumidAirRayleighModel::~HumidAirRayleighModel ( )
inlinevirtual

Definition at line 38 of file HumidAirRayleighModel.h.

Member Function Documentation

AttenuationResult HumidAirRayleighModel::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.

Implements atm::VRayleighModel.

Definition at line 140 of file HumidAirRayleighModel.cc.

References utl::TabulatedFunctionErrors::PushBack().

Referenced by EvaluateRayleighScattering().

double HumidAirRayleighModel::EvaluateRayleighAttenuation ( const utl::Point xInit,
const utl::Point xFinal,
double  wLength 
) const
virtual
ScatteringResult HumidAirRayleighModel::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.

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 69 of file HumidAirRayleighModel.cc.

References EvaluateRayleighAttenuation().

Referenced by EvaluateRayleighScattering().

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

References EvaluateScatteringAngle().

double HumidAirRayleighModel::EvaluateScatteringAngle ( const utl::Point p,
const double  angle,
const double  wLength 
) const
virtual
const utl::VRandomSampler & atm::VRayleighModel::EvaluateScatteringAngleDistribution ( const utl::Point p,
const double  wLength 
) const
virtualinherited
double HumidAirRayleighModel::GetAttenuationLength ( const utl::Point p,
const double  wLength 
) const
virtual
bool atm::HumidAirRayleighModel::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 84 of file HumidAirRayleighModel.h.

void HumidAirRayleighModel::Init ( void  )
virtual
double HumidAirRayleighModel::KingFactor ( const double  wl,
const double  pressure,
const double  vaporPressure 
) const
private
double HumidAirRayleighModel::RayleighCrossSection ( const double  wl,
const double  refIndex,
const double  temperature,
const double  pressure,
const double  vaporPressure 
) const
private
atm::HumidAirRayleighModel::REGISTER_MODEL ( atm::VRayleighModel  ,
"HumidAir"  ,
HumidAirRayleighModel   
)
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

double atm::HumidAirRayleighModel::fIntegrationStepWidth
private

Definition at line 92 of file HumidAirRayleighModel.h.

Referenced by EvaluateRayleighAttenuation(), and Init().


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

, generated on Tue Sep 26 2023.