casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MeasData.h
Go to the documentation of this file.
1 //# MeasData.h: MeasData provides Measure computing data
2 //# Copyright (C) 1995,1996,1997,1999,2003
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be addressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //#
27 //# $Id$
28 
29 #ifndef MEASURES_MEASDATA_H
30 #define MEASURES_MEASDATA_H
31 
32 //# Includes
33 #include <casacore/casa/aips.h>
34 
35 namespace casacore { //# NAMESPACE CASACORE - BEGIN
36 
37 //# Forward Declarations
38 class RotMatrix;
39 
40 // <summary>
41 // MeasData provides Measure computing data
42 // </summary>
43 
44 // <use visibility=local>
45 
46 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="tMeasMath" demos="">
47 // </reviewed>
48 
49 // <prerequisite>
50 // <li> <linkto class=Measure>Measure</linkto> class
51 // </prerequisite>
52 //
53 // <etymology>
54 // MeasData from Measure and Data
55 // </etymology>
56 //
57 // <synopsis>
58 // MeasData contains the constant data
59 // necessary for precession, nutation and other
60 // <linkto class=Measure>Measure</linkto> related calculations.<br>
61 // Database (Table) related data, or data that can be changed by the user,
62 // is available in the <linkto class=MeasTable>MeasTable</linkto> class. <br>
63 // All data. apart from a set of simple constants:
64 // <srcblock>
65 // MeasData::MJD2000
66 // MeasData::MJDB1950
67 // MeasData::MJDB1900
68 // MeasData::MJDB1850
69 // MeasData::TROPCEN
70 // MeasData::JDCEN
71 // MeasData::SECinDAY
72 // </srcblock>
73 // are obtained by calls to a method.
74 // This class contains no constructors or destructors, only static
75 // methods and (static) constants.
76 // <br> References:<br> Explanatory supplements to the Astronomical Almanac
77 // <br> C. Ron and J. Vondrak, Bull. Astron. Inst. Czechosl. 37, p96, 1986
78 // <br> M. Soma, Th. Hirayama and H. Kinoshita, Celest. Mech. 41, p389, 1988
79 // <br> V.S. Gubanov, Astron. Zh. 49, p1112, 1972 (English translation:
80 // Sov. Astronomy - AJ, Vol. 16, No. 5, p. 907)
81 // </synopsis>
82 //
83 // <example>
84 // Usage examples can be found in <linkto class=Precession>Precession</linkto>
85 // </example>
86 //
87 // <motivation>
88 // To create a clean interface between the actual calculations and the
89 // methods to obtain the parameters for these calculations. Note that the
90 // tables are in general in the format and units found in the literature. This
91 // is to be able to easy check and change them. However, in the future
92 // re-arrangement could produce faster and more compact code.
93 // </motivation>
94 //
95 // <todo asof="1997/04/17">
96 // <li> more precise data for VLBI and pulsar
97 // </todo>
98 
99 class MeasData {
100 
101 public:
102 
103  //# Constants
104  // General constants
105  // <group>
106  // MJD of J2000.0
107  static const Double MJD2000;
108  // MJD of B1950.0
109  static const Double MJDB1950;
110  // MJD of B1900.0
111  static const Double MJDB1900;
112  // MJD of B1850.0
113  static const Double MJDB1850;
114  // Length Tropical century
115  static const Double TROPCEN;
116  // Length Julian century
117  static const Double JDCEN;
118  // Length of day in sec
119  static const Double SECinDAY;
120  // </group>
121 
122  //# General Member Functions
123 
124  // Get the rotation matrices for galactic coordinates
125  // <group>
126  static const RotMatrix &GALtoB1950();
127  static const RotMatrix &GALtoJ2000();
128  static const RotMatrix &J2000toGAL();
129  static const RotMatrix &B1950toGAL();
130  // </group>
131 
132  // Get one of the 4 3x3 sub rotation matrices for B1950-J2000 conversions
133  // <group>
134  static const RotMatrix &MToB1950(uInt which);
135  static const RotMatrix &MToJ2000(uInt which);
136  // </group>
137 
138  // Get the solar semi diameter at 1 AU in rad
139  static Double SunSemiDiameter();
140 
141  // J2000 obliquity
142  static Double eps0J2000();
143 
144 private:
145 
146  //# Constructors
147  // Default constructor, NOT defined
148  MeasData();
149 
150  // Copy assign, NOT defined
151  MeasData &operator=(const MeasData &other);
152 
153  //# Destructor
154  // Destructor (NOT defined) and not declared to stop warning
155  // ~MeasData();
156  //# General member functions
157 };
158 
159 
160 } //# NAMESPACE CASACORE - END
161 
162 #endif
static const Double MJDB1850
MJD of B1850.0.
Definition: MeasData.h:113
static const Double MJDB1950
MJD of B1950.0.
Definition: MeasData.h:109
static const Double MJDB1900
MJD of B1900.0.
Definition: MeasData.h:111
static Double SunSemiDiameter()
Get the solar semi diameter at 1 AU in rad.
static const RotMatrix & MToJ2000(uInt which)
A 3x3 rotation matrix.
Definition: RotMatrix.h:85
static const RotMatrix & GALtoB1950()
Get the rotation matrices for galactic coordinates.
static const Double JDCEN
Length Julian century.
Definition: MeasData.h:117
static const RotMatrix & J2000toGAL()
double Double
Definition: aipstype.h:55
static const Double MJD2000
General constants.
Definition: MeasData.h:107
static const RotMatrix & GALtoJ2000()
static const Double SECinDAY
Length of day in sec.
Definition: MeasData.h:119
static const RotMatrix & MToB1950(uInt which)
Get one of the 4 3x3 sub rotation matrices for B1950-J2000 conversions.
static const RotMatrix & B1950toGAL()
MeasData()
Default constructor, NOT defined.
MeasData provides Measure computing data.
Definition: MeasData.h:99
static Double eps0J2000()
J2000 obliquity.
static const Double TROPCEN
Length Tropical century.
Definition: MeasData.h:115
MeasData & operator=(const MeasData &other)
Copy assign, NOT defined.
unsigned int uInt
Definition: aipstype.h:51