// ESAF : Euso Simulation and Analysis Framework // $Id: MSISE_00AtmosphereData.hh,v 1.11 2005/11/14 14:08:08 moreggia Exp $ // Sylvain Moreggia created Dec, 12 2003 #ifndef __MSISE_00ATMOSPHEREDATA_HH_ #define __MSISE_00ATMOSPHEREDATA_HH_ #include "euso.hh" #include "AtmosphereData.hh" #include "MSISEtool.hh" #include "EsafMsgSource.hh" /******************************************************************************* * * MSISE_00AtmosphereData : class description * * Handle data storage for MSISE_00Atmosphere * ******************************************************************************/ class MSISE_00AtmosphereData : public AtmosphereData { public: // ctor MSISE_00AtmosphereData(); // dtor virtual ~MSISE_00AtmosphereData(); // Get Members inline int NumberOfElements() const {return fNb;} inline Double_t LayerSize() const {return fStep;} inline Double_t GetLatitude() const {return fInput.g_lat;} inline Double_t GetLongitude() const {return fInput.g_long;} inline Double_t GetDate() const {if(fInput.doy == 0) return fInput.sec; else return (fInput.doy - 1)*3600*24 + fInput.sec;} EsafConfigClass(Atmosphere,MSISE_00AtmosphereData) private: // Set tables using MSISEtool virtual void SetTables(); // Initialize msise parameters to work out tables calculations void Init(); MSISEtool* fTool; // holds a set of methods using msise C-code struct nrlmsise_input fInput; // input of MSISE (date,location..) struct nrlmsise_flags fTuning; // set particular requirements for msise Int_t fNb; // number of table elements Double_t fStep; // size of a layer ClassDef(MSISE_00AtmosphereData,0) }; #endif /* __MSISE_00ATMOSPHEREDATA_HH_ */