source: trunk/src/SDAttr.h @ 475

Last change on this file since 475 was 475, checked in by kil064, 19 years ago

move function convertInstrument into here from SDMemTable
fix error in apertureEfficiency function (missing break)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.0 KB
Line 
1//#---------------------------------------------------------------------------
2//# SDAttr.h: Return known attributes about telescopes
3//#---------------------------------------------------------------------------
4//# Copyright (C) 2004
5//# ATNF
6//#
7//# This program is free software; you can redistribute it and/or modify it
8//# under the terms of the GNU General Public License as published by the Free
9//# Software Foundation; either version 2 of the License, or (at your option)
10//# any later version.
11//#
12//# This program is distributed in the hope that it will be useful, but
13//# WITHOUT ANY WARRANTY; without even the implied warranty of
14//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
15//# Public License for more details.
16//#
17//# You should have received a copy of the GNU General Public License along
18//# with this program; if not, write to the Free Software Foundation, Inc.,
19//# 675 Massachusetts Ave, Cambridge, MA 02139, USA.
20//#
21//# Correspondence concerning this software should be addressed as follows:
22//#        Internet email: Malte.Marquarding@csiro.au
23//#        Postal address: Malte Marquarding,
24//#                        Australia Telescope National Facility,
25//#                        P.O. Box 76,
26//#                        Epping, NSW, 2121,
27//#                        AUSTRALIA
28//#
29//# $Id:
30//#---------------------------------------------------------------------------
31#ifndef SDATTR_H
32#define SDATTR_H
33
34#include "SDDefs.h"
35#include <casa/aips.h>
36#include <measures/Measures/MEpoch.h>
37
38template<class T> class casa::Vector;
39//class casa::MEpoch;
40
41
42
43namespace asap {
44
45class SDAttr {
46
47 public:
48
49// Constructor
50   SDAttr();
51
52// Destructor
53   ~SDAttr();
54
55// Copy Constructor (copy semantics)
56   SDAttr (const SDAttr& other);
57
58// Assignment  (copy semantics)
59   SDAttr &operator=(const SDAttr& other);
60
61// Telescope diameter (m). Throws exception if unknown.
62   casa::Float diameter (Instrument inst) const;
63
64// Beam efficiency.  Frequency in Hz.  Returns 1 if unknown.
65   casa::Vector<casa::Float> beamEfficiency (Instrument instr, const casa::MEpoch& dateObs,
66                                             const casa::Vector<casa::Float>& freqs) const;
67 
68// Aperture efficiency. Frequency in Hz.  Returns 1 if unknown.
69   casa::Vector<casa::Float> apertureEfficiency (Instrument instr, const casa::MEpoch& dateObs,
70                                                 const casa::Vector<casa::Float>& freqs) const;
71
72// Find factor to convert Jy -> K for this telescope, date of observation and frequency (Hz)
73   casa::Vector<casa::Float> JyPerK (Instrument instr, const casa::MEpoch& dateObs,
74                                     const casa::Vector<casa::Float>& freqs) const;
75
76// Gain Elevation polynomial correction coefficients (elevation in degrees)
77// Returns length 0 if not known.
78   casa::Vector<casa::Float> gainElevationPoly (Instrument instr) const;
79
80
81// Helper function to check instrument (antenna) name and give enum
82  static Instrument convertInstrument(const casa::String& instrument,
83                                      casa::Bool throwIt);
84
85// Helper function.  Finds factor to convert K -> Jy. Provide aperture efficiency and dish geometric diameter (m)
86   static casa::Float findJyPerK (casa::Float etaAp, casa::Float D);
87
88 private:
89
90// Static data
91
92   casa::Vector<casa::Float> MopEtaBeamX_;          // Beam efficiency
93   casa::Vector<casa::Float> MopEtaBeam2003Y_;
94   casa::Vector<casa::Float> MopEtaBeam2004Y_;
95//
96   casa::Vector<casa::Float> MopEtaApX_;            // Aperture efficiency
97   casa::Vector<casa::Float> MopEtaAp2004Y_;
98//
99   casa::Vector<casa::Float> TidEtaApX_;            // Aperture efficiency
100   casa::Vector<casa::Float> TidEtaApY_;
101//
102   casa::Vector<casa::Float> TidGainElPoly_;        // Gain-el correction poly coeffs
103
104// Init private data
105   void initData();
106
107// Linear interpolation
108   casa::Vector<casa::Float> interp (const casa::Vector<casa::Float>& xOut, const casa::Vector<casa::Float>& xIn,
109                                     const casa::Vector<casa::Float>& yIn) const;
110};
111
112} // namespace
113
114#endif
Note: See TracBrowser for help on using the repository browser.