1 | #ifndef MARS_MVPObject
|
---|
2 | #define MARS_MVPObject
|
---|
3 |
|
---|
4 | #ifndef MARS_MTask
|
---|
5 | #include "MTask.h"
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | #ifndef MARS_MObservatoryLocation
|
---|
9 | #include "MObservatoryLocation.h"
|
---|
10 | #endif
|
---|
11 |
|
---|
12 | #ifndef MARS_MVPTime
|
---|
13 | #include "MVPTime.h"
|
---|
14 | #endif
|
---|
15 |
|
---|
16 | class MVPObject : public MTask
|
---|
17 | {
|
---|
18 | private:
|
---|
19 | MObservatoryLocation *fObservatory;
|
---|
20 |
|
---|
21 | Double_t fRA;
|
---|
22 | Double_t fDec;
|
---|
23 | Double_t fAlt;
|
---|
24 | Double_t fAz;
|
---|
25 | Double_t fZA;
|
---|
26 | Double_t fDiameter;
|
---|
27 | Double_t fEcLat;
|
---|
28 | Double_t fEcLong;
|
---|
29 | Bool_t fCalcEc;
|
---|
30 |
|
---|
31 | Double_t fUT1;
|
---|
32 | MVPTime *fTime;
|
---|
33 |
|
---|
34 | char* fObjectName;
|
---|
35 | UInt_t fBody;
|
---|
36 |
|
---|
37 | Double_t UT1ToGMST(Double_t ut1);
|
---|
38 |
|
---|
39 | Double_t fgDegToRad;
|
---|
40 | Double_t fgHrsToRad;
|
---|
41 |
|
---|
42 | Bool_t fGotRA;
|
---|
43 | Bool_t fGotDec;
|
---|
44 | Bool_t fGotName;
|
---|
45 |
|
---|
46 | public:
|
---|
47 |
|
---|
48 | MVPObject(const char *name=NULL, const char *title=NULL);
|
---|
49 | ~MVPObject();
|
---|
50 |
|
---|
51 | Bool_t PreProcess(MParList *pList);
|
---|
52 | Bool_t Process();
|
---|
53 |
|
---|
54 | void SetObservatory(MObservatoryLocation *observatory);
|
---|
55 |
|
---|
56 | void SetRA(Double_t rad) { fRA = rad; fBody = 10; fGotRA = kTRUE; }
|
---|
57 | void SetDec(Double_t rad) { fDec = rad; fBody = 10; fGotDec = kTRUE; }
|
---|
58 |
|
---|
59 | void SetRA(Int_t rh, Int_t rm, Int_t rs, Int_t ru = 0);
|
---|
60 | void SetDec(Int_t dh, Int_t dm, Int_t ds, Int_t du = 0);
|
---|
61 |
|
---|
62 | void SetCalcEc(Bool_t calcEc) { fCalcEc = calcEc; }
|
---|
63 |
|
---|
64 | void SetObjectName(char* name) { fObjectName = name; fGotName = kTRUE; }
|
---|
65 | void SetObjectByName(char* object);
|
---|
66 |
|
---|
67 | Bool_t SetObject(UInt_t body);
|
---|
68 |
|
---|
69 | Double_t GetRA() { return fRA/fgHrsToRad; }
|
---|
70 | Double_t GetDec() { return fDec/fgDegToRad; }
|
---|
71 |
|
---|
72 | Double_t GetRARad() { return fRA; }
|
---|
73 | Double_t GetDecRad() { return fDec; }
|
---|
74 |
|
---|
75 | Double_t GetZA() { return fZA; }
|
---|
76 | Double_t GetAltitude() { return fAlt; }
|
---|
77 | Double_t GetAzimut() { return fAz; }
|
---|
78 | Double_t GetDiameter() { return fDiameter; }
|
---|
79 |
|
---|
80 | Double_t GetEcLat() { return fEcLat; }
|
---|
81 | Double_t GetEcLong() { return fEcLong; }
|
---|
82 |
|
---|
83 | Double_t GetZADeg() { return fZA/fgDegToRad; }
|
---|
84 | Double_t GetAltitudeDeg() { return fAlt/fgDegToRad; }
|
---|
85 | Double_t GetAzimutDeg() { return fAz/fgDegToRad; }
|
---|
86 |
|
---|
87 | Double_t GetDistance(MVPObject* object);
|
---|
88 | Double_t GetDistanceRad(MVPObject* object);
|
---|
89 |
|
---|
90 | char* GetObjectName() { return fObjectName; }
|
---|
91 |
|
---|
92 | void Print(Option_t *) const;
|
---|
93 |
|
---|
94 | Double_t MJDStartOfYear(UInt_t year);
|
---|
95 |
|
---|
96 | ClassDef(MVPObject, 1)
|
---|
97 | };
|
---|
98 |
|
---|
99 | #endif
|
---|
100 |
|
---|