// ESAF : Euso Simulation and Analysis Framework // $Id: AtmosphereData.hh,v 1.13 2005/05/02 16:51:53 moreggia Exp $ // Sylvain Moreggia created Dec, 1 2003 #ifndef __ATMOSPHEREDATA_HH_ #define __ATMOSPHEREDATA_HH_ #include "euso.hh" #include "Config.hh" #include "EsafConfigurable.hh" #include "EsafMsgSource.hh" #include "EConst.hh" /******************************************************************************* * * AtmosphereData : class description * * Interface for atmospheric data storage * Every atmosphere holds its own version of AtmosphereData * ******************************************************************************/ class AtmosphereData : public EsafConfigurable, public EsafMsgSource{ public: // ctor AtmosphereData(); // dtor virtual ~AtmosphereData(); // Following methods return relevant tables inline const Double_t* GetAltitudeTable() const {return fAltitudeTable;} inline const Double_t* GetPressureTable() const {return fPressureTable;} inline const Double_t* GetTemperatureTable() const {return fTemperatureTable;} inline const Double_t* GetAir_DensityTable() const {return fAir_DensityTable;} inline const Double_t* GetO_DensityTable() const {return fO_DensityTable;} inline const Double_t* GetO2_DensityTable() const {return fO2_DensityTable;} inline const Double_t* GetO3_DensityTable() const {return fO3_DensityTable;} inline const Double_t* GetN2_DensityTable() const {return fN2_DensityTable;} inline const Double_t* GetAerosol_DensityTable(string& type) const {return fAerosols[type];} inline const Double_t* GetIndexTable() const {return fIndexTable;} EsafConfigClass(Atmosphere,AtmosphereData) protected: // Set tables virtual void SetTables() = 0; // fill missing data with default values void GetDefault(string&, Int_t); // fill Lwtrn_Tape5 with atmospheric values, used by lowtran calculations void WriteUserModelFile(Int_t); // Plot the implemented tables void DebugPlots(Int_t) const; Double_t Smooth(string& , Int_t, Double_t) const; Double_t* fAltitudeTable; // tables ->.. Double_t* fPressureTable; Double_t* fTemperatureTable; Double_t* fAir_DensityTable; Double_t* fO_DensityTable; Double_t* fO2_DensityTable; Double_t* fO3_DensityTable; Double_t* fN2_DensityTable; Double_t* fCO2_DensityTable; Double_t* fH2O_DensityTable; mutable map fAerosols; Double_t* fIndexTable; // ..<- tables ClassDef(AtmosphereData,0) }; #endif /* __ATMOSPHEREDATA_HH_ */