Ignore:
Timestamp:
10/21/09 10:49:36 (15 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Cosy/catalog
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/catalog/SlaPlanets.cc

    r9439 r9516  
    99using namespace std;
    1010
    11 SlaPlanets::SlaPlanets(MObservatory::LocationName_t key) : Slalib(key), fDt(slaDt(2000.0)/60./60./24.)
    12 {
    13 }
    14 
    15 SlaPlanets::~SlaPlanets()
     11SlaPlanets::SlaPlanets(MObservatory::LocationName_t key) : SlaStars(key), fDt(slaDt(2000.0)/60./60./24.)
    1612{
    1713}
     
    1915void SlaPlanets::SetMjd(double mjd)
    2016{
    21     Slalib::SetMjd(mjd);
     17    SlaStars::SetMjd(mjd);
    2218
    2319    fTt = GetMjd() + slaDtt(GetMjd())/60./60./24.;
     
    3329}
    3430
    35 void SlaPlanets::UpdatePlanetPos(ePlanets_t planet)
     31// --------------------------------------------------------------------------
     32//
     33// coordinates of planet: topocentric, equatorial, J2000
     34//
     35RaDec SlaPlanets::CalcPlanetRaDec(ePlanets_t planet)
    3636{
    37     //
    3837    // coordinates of planet: topocentric, equatorial, J2000
    39     //
    4038    double ra, dec, diam;
    4139
    42     // One can use TT instead of TDB for all planets
    43     // (except the moon)
     40    // One can use TT instead of TDB for all planets (except the moon?)
    4441    // TDB, planet, elong, phi, *ra, *dec, *diam
    4542    slaRdplan(fTt, planet, GetElong(), GetPhi(), &ra, &dec, &diam);
    4643
     44    return RaDec(ra, dec);
     45}
     46
     47void SlaPlanets::UpdatePlanetPos(ePlanets_t planet)
     48{
     49    // coordinates of planet: topocentric, equatorial, J2000
     50    const RaDec rd = CalcPlanetRaDec(planet);
     51
    4752    double az, el;
    48     slaDe2h(GetAlpha()-ra, dec, GetPhi(), &az, &el);
     53    slaDe2h(GetAlpha()-rd.Ra(), rd.Dec(), GetPhi(), &az, &el);
    4954
    5055    fZdAz[planet].Set(TMath::Pi()/2-el, az);
    5156}
     57
  • trunk/MagicSoft/Cosy/catalog/SlaPlanets.h

    r8847 r9516  
    22#define COSY_SlaPlanets
    33
    4 #ifndef COSY_Slalib
    5 #include "Slalib.h"
     4#ifndef COSY_SlaStars
     5#include "SlaStars.h"
    66#endif
    77
     
    2424} ePlanets_t;
    2525
    26 class SlaPlanets : public Slalib
     26class SlaPlanets : public SlaStars
    2727{
    2828private:
     
    3838public:
    3939    SlaPlanets(MObservatory::LocationName_t key);
    40     virtual ~SlaPlanets();
    4140
    4241    void SetMjd(double mjd);
    4342
    44     void UpdatePlanetPos(ePlanets_t planet);
    45     ZdAz GetPlanetPos(ePlanets_t planet) const { return fZdAz[planet]; }
     43    RaDec CalcPlanetRaDec(ePlanets_t planet);
     44    void  UpdatePlanetPos(ePlanets_t planet);
     45    ZdAz  GetPlanetPos(ePlanets_t planet) const { return fZdAz[planet]; }
     46
     47    void SetPlanet(ePlanets_t planet) { Set(CalcPlanetRaDec(planet)/TMath::DegToRad()); }
    4648
    4749    ClassDef(SlaPlanets, 0)
  • trunk/MagicSoft/Cosy/catalog/SlaStars.cc

    r9439 r9516  
    33#include "slalib.h"
    44
     5#include "MAstro.h"
    56#include "MPointing.h"
    67
     
    2930void SlaStars::Set(const RaDec &radec)
    3031{
     32    double ha;
     33
    3134    fRaDec = radec * TMath::DegToRad();
    32     fAltAz = CalcAltAz(fRaDec);
     35    fAltAz = CalcAltAz(fRaDec, &ha);
     36
     37    fHourAngle = ha;
    3338}
    3439
     
    136141}
    137142
    138 ZdAz SlaStars::CalcZdAz(const RaDec &radec) const
     143ZdAz SlaStars::CalcZdAz(const RaDec &radec, double *ha) const
    139144{
    140145    //
     
    167172              &r1);   // observed right ascension (radians)
    168173
     174    if (ha)
     175        *ha = h0*MAstro::RadToHor();
     176
    169177    return ZdAz(zd, az);
    170178}
    171 AltAz SlaStars::CalcAltAz(const RaDec &radec) const
     179AltAz SlaStars::CalcAltAz(const RaDec &radec, double *ha) const
    172180{
    173     ZdAz zdaz = CalcZdAz(radec);
     181    ZdAz zdaz = CalcZdAz(radec, ha);
    174182    return AltAz(TMath::Pi()/2-zdaz.Zd(), zdaz.Az());
    175183}
  • trunk/MagicSoft/Cosy/catalog/SlaStars.h

    r8847 r9516  
    1313{
    1414private:
    15     AltAz    fAltAz;    // [rad]
    16     RaDec    fRaDec;    // [rad]
     15    AltAz    fAltAz;     // [rad]
     16    RaDec    fRaDec;     // [rad]
     17
     18    Double_t fHourAngle; // [h]
    1719
    1820    double   fAmprms[21];
     
    2426
    2527    //    const AltAz GetAltAz() const { return fAltAz*360/D2PI; }
    26     //    const ZdAz  GetZdAz()  const { return ZdAz(DPI/2-fAltAz.Alt(), fAltAz.Az())*360/D2PI; }
    27     //    const RaDec GetRaDec() const { return fRaDec*360/D2PI; }
     28    const ZdAz   GetZdAz()  const     { return ZdAz(TMath::Pi()/2-fAltAz.Alt(), fAltAz.Az())*TMath::DegToRad(); }
     29    const RaDec  GetRaDec() const     { return fRaDec/TMath::DegToRad(); }
     30    const double GetHourAngle() const { return fHourAngle; }
    2831
    2932    virtual void SetMjd(double mjd);
     
    4144    RaDec  CalcRaDecFast(const ZdAz  &altaz) const;
    4245
    43     AltAz  CalcAltAz(const RaDec &radec) const;
    44     ZdAz   CalcZdAz (const RaDec &radec) const;
     46    AltAz  CalcAltAz(const RaDec &radec, double *ha=0) const;
     47    ZdAz   CalcZdAz (const RaDec &radec, double *ha=0) const;
    4548
    46     AltAz  CalcAltAz(const RaDec &radec, double mjd)
    47     { SetMjd(mjd); return CalcAltAz(radec); }
    48     ZdAz   CalcZdAz (const RaDec &radec, double mjd)
    49     { SetMjd(mjd); return CalcZdAz(radec); }
     49    AltAz  CalcAltAz(const RaDec &radec, double mjd, double *ha=0)
     50    { SetMjd(mjd); return CalcAltAz(radec, ha); }
     51    ZdAz   CalcZdAz (const RaDec &radec, double mjd, double *ha=0)
     52    { SetMjd(mjd); return CalcZdAz(radec, ha); }
    5053
    5154    AltAz  CalcAltAzFast(const RaDec &radec) const;
Note: See TracChangeset for help on using the changeset viewer.