Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

Atmosphere

#include "Atmosphere.hh"

Atmosphere


class description - source file - inheritance tree (.pdf)

class Atmosphere : public EsafConfigurable, public EsafMsgSource

Inheritance Chart:
EsafConfigurable
EsafMsgSource
<-
Atmosphere
<-
LinsleyAtmosphere
LowtranAtmosphere
MSISE_00Atmosphere
 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.


    protected:
virtual ~Atmosphere() public:
virtual Double_t AbsoluteHumidity(Double_t h) const Double_t AbsoluteHumidity(const EarthVector& v) const virtual Double_t Aerosols_Density(string& type, Double_t h) const Double_t Aerosols_Density(string& type, const EarthVector& v) const virtual Double_t Air_Density(Double_t h) const Double_t Air_Density(const EarthVector& v) const virtual void Build() static TClass* Class() virtual const char* ClassName() const virtual const char* ClassType() const Double_t Depth(const Double_t, const Double_t Theta) const static const Atmosphere* Get() const const Clouds* GetClouds() const virtual Double_t GetDate() const Double_t GetDepthCalculationPrecision() virtual Double_t GetLatitude() const virtual Double_t GetLongitude() const string GetType() const virtual Double_t GetValue(const string& parname) const Double_t Grammage(const EarthVector& pos1, const EarthVector& V2, string opt = pos, Double_t maxalt = 100*sou::km) const EarthVector ImpactASL(const EarthVector&, const EarthVector&) const EarthVector ImpactAtTOA(const EarthVector&, const EarthVector&, Double_t TOA_alt = 100.*sou::km) const long double Index(Double_t h, Double_t wl = 350*sou::nm) const long double Index(const EarthVector& v, Double_t wl = 350*sou::nm) const Double_t Index_Minus1(Double_t h, Double_t wl = 350*sou::nm) const Int_t InvertGrammage(const EarthVector& pos1, const EarthVector& dir, Double_t depth, EarthVector& rtn, Double_t maxtof = -1.) const virtual TClass* IsA() const virtual Double_t N2_Density(Double_t h) const Double_t N2_Density(const EarthVector& v) const virtual Double_t O2_Density(Double_t h) const Double_t O2_Density(const EarthVector& v) const virtual Double_t O3_Density(Double_t h) const Double_t O3_Density(const EarthVector& v) const virtual Double_t O_Density(Double_t h) const Double_t O_Density(const EarthVector& v) const virtual Double_t Pressure(Double_t h) const Double_t Pressure(const EarthVector& v) const static void Reset() void ResetClouds() const void SetDepthCalculationPrecision(Double_t t = 1.e-5) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual Double_t Temperature(Double_t h) const Double_t Temperature(const EarthVector& v) const Double_t WaterVaporPartialPressure(Double_t h) const Double_t WaterVaporPartialPressure(const EarthVector& v) const

Data Members


    protected:
string fType type of atmosphere static Atmosphere* fChild contains the configured atmosphere object Clouds* fClouds clouds object (mutable for reset) Double_t fDepthCalculationPrecision Precision for the Root Integration used to compute the atmosphere depth

Class Description

 Atmosphere

 <extensive class description>

   Config file parameters
   ======================

   <parameter name>: <parameter description>
   -Valid options: <available options>


~Atmosphere()
 dtor


const Atmosphere* Get()
 Static method to get the right atmosphere singleton from anywhere in the code


void Reset()
 Static method to delete atmosphere


Double_t Index_Minus1(Double_t h, Double_t wl) const
 Returns (n-1) at a given altitude
 By default, it is taken CONSTANT with wavelength (lambda=350nm)
 (formula drawn from Reinhard Beer, Hanbook of Optics, Chap.2)


Double_t Grammage(const EarthVector& V1, const EarthVector& V2, string opt, Double_t maxalt) const
 Calculate grammage
 - opt = pos : between two positions V1, V2 in the atmosphere
 - opt = dir : from a point V1 until atmosphere top, along a track of given angles (V2 thus used for direction)


Int_t InvertGrammage(const EarthVector& pos1, const EarthVector& direc, Double_t depth, EarthVector& rtn, Double_t maxtof) const
 calculate final position for given pos1,direc and air depth

 it returns : -1 if pos1 is under sea level or if none impact (latter should not occur)
               0 if position found
               1 if TOF cut
               2 if TOA reached before
               3 if sea level reached before


EarthVector ImpactASL(const EarthVector& pos, const EarthVector& dir) const
 returns impact at sea level of a track defined by starting position and direction


EarthVector ImpactAtTOA(const EarthVector& pos, const EarthVector& dir, Double_t TOA_alt) const
 returns impact at Top Of Atmosphere of a track defined by starting position and direction
 TOA set at 100km altitude by default, but can also be set by dvper (cf. InvertGrammage() method)


Double_t Depth(const Double_t H, const Double_t Theta) const
 Compute the atmosphere depth between the given point with (h,theta) coordinates and infinity




Inline Functions


                 void Build()
                 void ResetClouds() const
               string GetType() const
             Double_t GetValue(const string& parname) const
             Double_t GetLatitude() const
             Double_t GetLongitude() const
             Double_t GetDate() const
             Double_t Pressure(Double_t h) const
             Double_t Pressure(const EarthVector& v) const
             Double_t WaterVaporPartialPressure(Double_t h) const
             Double_t WaterVaporPartialPressure(const EarthVector& v) const
             Double_t Temperature(Double_t h) const
             Double_t Temperature(const EarthVector& v) const
             Double_t AbsoluteHumidity(Double_t h) const
             Double_t AbsoluteHumidity(const EarthVector& v) const
             Double_t Air_Density(Double_t h) const
             Double_t Air_Density(const EarthVector& v) const
             Double_t O_Density(Double_t h) const
             Double_t O_Density(const EarthVector& v) const
             Double_t O2_Density(Double_t h) const
             Double_t O2_Density(const EarthVector& v) const
             Double_t O3_Density(Double_t h) const
             Double_t O3_Density(const EarthVector& v) const
             Double_t N2_Density(Double_t h) const
             Double_t N2_Density(const EarthVector& v) const
             Double_t Aerosols_Density(string& type, Double_t h) const
             Double_t Aerosols_Density(string& type, const EarthVector& v) const
          long double Index(Double_t h, Double_t wl = 350*sou::nm) const
          long double Index(const EarthVector& v, Double_t wl = 350*sou::nm) const
                 void SetDepthCalculationPrecision(Double_t t = 1.e-5)
             Double_t GetDepthCalculationPrecision()
        const Clouds* GetClouds() const
          const char* ClassType() const
          const char* ClassName() const
              TClass* Class()
              TClass* IsA() const
                 void ShowMembers(TMemberInspector& insp, char* parent)
                 void Streamer(TBuffer& b)
                 void StreamerNVirtual(TBuffer& b)
About Us | EUSO Official Website | Web pages created by Roberto Pesce and Alessandro Thea - Last Update Wed Nov 16 16:23:40 2005