00001
00002 #ifndef astro_EarthCoordinate_H
00003 #define astro_EarthCoordinate_H
00004
00005 #include "astro/JulianDate.h"
00006
00007 #include "CLHEP/Vector/ThreeVector.h"
00008 namespace astro {
00024 class EarthCoordinate {
00025 public:
00026
00028 EarthCoordinate( double latDeg, double lonDeg , double altitude=0);
00029
00031 EarthCoordinate( Hep3Vector position, JulianDate jd);
00032
00033
00035 bool insideSAA()const;
00036
00038 static double earthRadius();
00039
00040 double latitude()const;
00041 double longitude()const;
00042 double altitude()const;
00043
00044
00045 private:
00046
00048 double m_lat, m_lon;
00049 double m_altitude;
00050
00057 static double GetGMST(JulianDate J_D);
00058 static double s_EarthRadius;
00059 };
00060
00061 inline double EarthCoordinate::latitude()const{ return m_lat*180/M_PI;}
00062 inline double EarthCoordinate::longitude()const{ return m_lon*180/M_PI;}
00063 inline double EarthCoordinate::altitude()const{ return m_altitude;}
00064
00065 }
00066 #endif