1 | #ifndef MARS_MAstro
|
---|
2 | #define MARS_MAstro
|
---|
3 |
|
---|
4 | #ifndef ROOT_TROOT
|
---|
5 | #include <TROOT.h>
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | class MAstro
|
---|
9 | {
|
---|
10 | private:
|
---|
11 | static Double_t Round(Double_t val);
|
---|
12 | static Double_t Trunc(Double_t val);
|
---|
13 |
|
---|
14 | public:
|
---|
15 | // Angle/Time conversion functions
|
---|
16 | static Double_t Hms2Sec(Int_t deg, UInt_t min, Double_t sec, char sgn='+');
|
---|
17 | static Double_t Dms2Rad(Int_t deg, UInt_t min, Double_t sec, Char_t sgn='+');
|
---|
18 | static Double_t Hms2Rad(Int_t hor, UInt_t min, Double_t sec, Char_t sgn='+');
|
---|
19 | static Double_t Dms2Deg(Int_t deg, UInt_t min, Double_t sec, Char_t sgn='+');
|
---|
20 | static Double_t Hms2Deg(Int_t hor, UInt_t min, Double_t sec, Char_t sgn='+');
|
---|
21 | static Double_t Dms2Hor(Int_t deg, UInt_t min, Double_t sec, Char_t sgn='+');
|
---|
22 | static Double_t Hms2Hor(Int_t hor, UInt_t min, Double_t sec, Char_t sgn='+');
|
---|
23 |
|
---|
24 | static void Day2Hms(Double_t rad, Char_t &sgn, UShort_t °, UShort_t &min, UShort_t &sec);
|
---|
25 | static void Rad2Dms(Double_t rad, Char_t &sgn, UShort_t °, UShort_t &min, UShort_t &sec);
|
---|
26 | static void Rad2Hms(Double_t rad, Char_t &sgn, UShort_t °, UShort_t &min, UShort_t &sec);
|
---|
27 | static void Deg2Dms(Double_t rad, Char_t &sgn, UShort_t °, UShort_t &min, UShort_t &sec);
|
---|
28 | static void Deg2Hms(Double_t rad, Char_t &sgn, UShort_t °, UShort_t &min, UShort_t &sec);
|
---|
29 | static void Hor2Dms(Double_t rad, Char_t &sgn, UShort_t °, UShort_t &min, UShort_t &sec);
|
---|
30 | static void Hor2Hms(Double_t rad, Char_t &sgn, UShort_t °, UShort_t &min, UShort_t &sec);
|
---|
31 |
|
---|
32 | static void Day2Hm(Double_t rad, Char_t &sgn, UShort_t °, Double_t &min);
|
---|
33 | static void Rad2Dm(Double_t rad, Char_t &sgn, UShort_t °, Double_t &min);
|
---|
34 | static void Rad2Hm(Double_t rad, Char_t &sgn, UShort_t °, Double_t &min);
|
---|
35 | static void Deg2Dm(Double_t rad, Char_t &sgn, UShort_t °, Double_t &min);
|
---|
36 | static void Deg2Hm(Double_t rad, Char_t &sgn, UShort_t °, Double_t &min);
|
---|
37 | static void Hor2Dm(Double_t rad, Char_t &sgn, UShort_t °, Double_t &min);
|
---|
38 | static void Hor2Hm(Double_t rad, Char_t &sgn, UShort_t °, Double_t &min);
|
---|
39 |
|
---|
40 | // Angle treatment functions
|
---|
41 | static Bool_t String2Angle(TString &str, Double_t &ret);
|
---|
42 | static Bool_t Coordinate2Angle(const TString &str, Double_t &ret);
|
---|
43 |
|
---|
44 | static Double_t AngularDistance(Double_t theta0, Double_t phi0, Double_t theta1, Double_t phi1);
|
---|
45 |
|
---|
46 | // Time treatment functions
|
---|
47 | static void Mjd2Ymd(UInt_t mjd, UShort_t &y, Byte_t &m, Byte_t &d);
|
---|
48 | static Int_t Ymd2Mjd(UShort_t y, Byte_t m, Byte_t d);
|
---|
49 |
|
---|
50 | static Double_t UT2GMST(Double_t ut1);
|
---|
51 |
|
---|
52 | ClassDef(MAstro, 0)
|
---|
53 | };
|
---|
54 |
|
---|
55 | #endif
|
---|