source: trunk/Cosy/main/MTracking.h@ 20046

Last change on this file since 20046 was 10024, checked in by tbretz, 14 years ago
Finally fixed MTracking to get the tracking of celestial objects working.
File size: 1.4 KB
Line 
1#ifndef COSY_MTracking
2#define COSY_MTracking
3
4#ifndef COSY_MSlewing
5#include "MSlewing.h"
6#endif
7
8#ifndef COSY_SlaPlanets
9#include "SlaPlanets.h"
10#endif
11
12#ifndef MARS_MThread
13#include "MThread.h"
14#endif
15
16class MLog;
17class RaDec;
18class SlaStars;
19class MMoonPointing;
20
21class MTracking : public MSlewing, public MThread
22{
23private:
24 SlaPlanets fSlalib;
25
26 ZdAz fTrackAcc;
27
28 Int_t fTrackType;
29 RaDec fTrackPos;
30
31 Double_t fWobbleOffset; // [rad]
32 Double_t fWobbleAngle; // [rad]
33
34 MLog *fOut;
35
36 MMoonPointing *fMoon;
37
38 Bool_t UpdateSlalib(SlaPlanets &sla);
39 Bool_t UpdateSlalib(Double_t dt=0);
40 Bool_t UpdateSlalib(SlaPlanets &sla, Double_t mjd);
41
42 bool SetVelocity(const ZdAz &v);
43 bool LimitSpeed(const ZdAz &vt) const;
44 bool InitTracking();
45 bool Move();
46 void Track();
47
48 Int_t Thread();
49
50 ZdAz GetZdAzRad(const Slalib &sla);
51
52public:
53 MTracking(MCosy *cosy);
54 ~MTracking();
55
56 void TrackPosition(const RaDec &dst); // ra, dec [rad]
57 void TrackPlanet(ePlanets_t planet); // ra, dec [rad]
58 void TrackMoon(Double_t wobble, Double_t offset);
59 void SetTrackAcc(Float_t zd, Float_t az) { fTrackAcc.Zd(zd); fTrackAcc.Az(az); }
60
61 void SetWobble(Double_t offset, Double_t angle=0) { fWobbleOffset=TMath::DegToRad()*offset; fWobbleAngle=TMath::DegToRad()*angle; }
62
63 void SetOut(MLog *fout) { fOut = fout; }
64
65 ClassDef(MTracking, 0)
66};
67
68#endif
Note: See TracBrowser for help on using the repository browser.