#ifndef COSY_SlaStars #define COSY_SlaStars #ifndef COSY_Slalib #include "Slalib.h" #endif #ifndef MARS_MPointing #include "MPointing.h" #endif class SlaStars : public Slalib { private: AltAz fAltAz; // [rad] RaDec fRaDec; // [rad] Double_t fHourAngle; // [h] protected: double fAmprms[21]; double fAoprms[14]; double fTt; // [mjd] timescale TT public: SlaStars(MObservatory::LocationName_t key); virtual ~SlaStars() { } // const AltAz GetAltAz() const { return fAltAz*360/D2PI; } const ZdAz GetZdAz() const { return ZdAz(TMath::Pi()/2-fAltAz.Alt(), fAltAz.Az())/TMath::DegToRad(); } const ZdAz GetZdAzRad() const { return ZdAz(TMath::Pi()/2-fAltAz.Alt(), fAltAz.Az()); } const RaDec GetRaDec() const { return fRaDec/TMath::DegToRad(); } const RaDec GetRaDecRad() const { return fRaDec; } const double GetHourAngle() const { return fHourAngle; } const double GetTT() const { return fTt; } virtual void SetMjd(double mjd); void Set(const AltAz &altaz); void Set(const ZdAz &zdaz); void Set(const RaDec &radec); ZdAz GetApproxVel(const RaDec &radec) const; // [rad/rad]; RaDec CalcRaDec(const AltAz &altaz) const; RaDec CalcRaDec(const ZdAz &altaz) const; RaDec CalcRaDecFast(const AltAz &altaz) const; RaDec CalcRaDecFast(const ZdAz &altaz) const; AltAz CalcAltAz(const RaDec &radec, double *ha=0) const; ZdAz CalcZdAz (const RaDec &radec, double *ha=0) const; AltAz CalcAltAz(const RaDec &radec, double mjd, double *ha=0) { SetMjd(mjd); return CalcAltAz(radec, ha); } ZdAz CalcZdAz (const RaDec &radec, double mjd, double *ha=0) { SetMjd(mjd); return CalcZdAz(radec, ha); } AltAz CalcAltAzFast(const RaDec &radec) const; ZdAz CalcZdAzFast (const RaDec &radec) const; ClassDef(SlaStars, 0) }; #endif