#ifndef STATION_H #define STATION_H #include #include #include #include #include #include #include #include #include #include #include "Geocen.h" using namespace std ; using namespace CCfits ; /** * */ class Station : public Geocen { public: /** * Stations sorted acc to * \latexonly * \cite{vlt150002764}, * \endlatexonly * \htmlonly * VLT-TRE-ESO-15000-2764 * \endhtmlonly * not * \latexonly * \cite{vlt150001918} * \endlatexonly * \htmlonly * VLT-TRE-ESO-15000-1918 * \endhtmlonly */ const static string posN[] ; /** * the number of known stations, including the UT's and the anonymous at index 0 */ const static int statNo = 35 ; /** * Stations in the same order, geographicel longitudes (rad) */ const static double posLo[] ; const static double posLa[] ; /** * Standard station id A0 to J6 etc */ string id ; /** * Distance to earth center [m] */ double geoRadius ; /** * Telescope aperture diameter [m] */ double aperture ; Station(const double lambda = -1.228798831 , const double phi = -0.429829904, const string name="", const double geoel=2681.) ; Station( const string name) ; Station( const int idx) ; Station(FITS &f, const int indx) ; vector baseVec( const Station & oth) const ; bool isWest() const ; bool isNorth() const ; bool isUT() const ; bool sameRail(const Station &oth) const ; double area() const ; double baseAzi(const Station & oth) const ; static FITS * oifitsInit(const double geoRref, double uvwRef[3]) ; void oifits(FITS *fits, const double uvwRef[3]) const ; protected: private: /** */ int staIndx ; int init( const string name, const double geoel = 2681.) ; void spher2cart(double xyz[3]) const ; static void spher2cart(const int indx, const double r, double xyz[3]) ; } ; ostream & operator <<(ostream &os, const Station & some) ; #endif /* STATION_H */