// $Id: LowtranAtmosphere.hh,v 1.11 2005/04/20 10:11:42 moreggia Exp $ // Corinne Berat created Apr, 2 2004 #ifndef __LOWTRANATMOSPHERE_HH_ #define __LOWTRANATMOSPHERE_HH_ /***************************************************************************** * ESAF: Euso Simulation and Analysis Framework * * * * Id: LowtranAtmosphere * * Package: atmosphere * * Coordinator: S. Moreggia, C. Berat * * * *****************************************************************************/ ////////////////////////////////////////////////////////////////////////////// // // // LowtranAtmosphere // // // // Atmosphere drawn from Lowtran // // // ////////////////////////////////////////////////////////////////////////////// #include "euso.hh" #include "Atmosphere.hh" #include "AtmosphereFactory.hh" #include "EsafMsgSource.hh" class LowtranAtmosphereData; class LowtranAtmosphere : public Atmosphere { public: // create the single atmosphere instance as a LowtranAtmosphere object static void CreateInstance(); // To get specific parameters of children atmosphere virtual Double_t GetValue(const string& parname) const {return 0;} // get date and geographic atmosphere parameters virtual Double_t GetLatitude() const {return HUGE;} // from -90 (south) to 90 (north) virtual Double_t GetLongitude() const {return HUGE;} // from 0 to 360 (east) virtual Double_t GetDate() const {return HUGE;} // in sec UT, from 1st Jan 00:00:00 (year not taken into account) // Following methods give relevant densities virtual Double_t Pressure(Double_t h) const; virtual Double_t Temperature(Double_t h) const; virtual Double_t AbsoluteHumidity(Double_t h) const {return 0;} virtual Double_t Air_Density(Double_t h) const; virtual Double_t O_Density(Double_t h) const; virtual Double_t O2_Density(Double_t h) const; virtual Double_t O3_Density(Double_t h) const; virtual Double_t N2_Density(Double_t h) const; virtual Double_t Aerosols_Density(string& type,Double_t h) const {return 0;} // Index as a function of altitude // virtual Double_t Index(Double_t h) const {return 0;} EsafConfigClass(Atmosphere,LowtranAtmosphere) private: // default ctor (not used) LowtranAtmosphere() {} // ctor LowtranAtmosphere(string); // dtor virtual ~LowtranAtmosphere(); // Build atmosphere according to config parameters virtual void Build(); // Calculate interpolations Double_t Interpolate(string&,string&,Double_t) const; LowtranAtmosphereData* fData; // mutable struct lowtran_input fInput; ClassDef(LowtranAtmosphere,0) }; #endif /* __LOWTRANATMOSPHERE_HH_ */