Line data Source code
1 : //# CalDescRecord.h: Cal_desc table record access and creation 2 : //# Copyright (C) 1996,1997,1998 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 adressed as follows: 20 : //# Internet email: casa-feedback@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 CALIBRATION_CALDESCRECORD_H 30 : #define CALIBRATION_CALDESCRECORD_H 31 : 32 : #include <casacore/casa/aips.h> 33 : #include <casacore/casa/Containers/Record.h> 34 : 35 : namespace casa { //# NAMESPACE CASA - BEGIN 36 : 37 : // <summary> 38 : // CalDescRecord: Cal_desc table record access and creation 39 : // </summary> 40 : 41 : // <use visibility=export> 42 : 43 : // <reviewed reviewer="" date="" tests="" demos=""> 44 : 45 : // <prerequisite> 46 : // <li> <linkto class="casacore::Record">casacore::Record</linkto> module 47 : // <li> <linkto class="CalMainRecord">CalMainRecord</linkto> module 48 : // </prerequisite> 49 : // 50 : // <etymology> 51 : // From "calibration description sub-table" and "record". 52 : // </etymology> 53 : // 54 : // <synopsis> 55 : // The CalDescRecord classes allow access to, and creation of, records 56 : // in the cal_desc calibration sub-table. Specializations for SkyJones 57 : // calibration table record types is provided through inheritance. 58 : // </etymology> 59 : // 60 : // <example> 61 : // <srcblock> 62 : // </srcblock> 63 : // </example> 64 : // 65 : // <motivation> 66 : // Encapsulate access to cal_desc calibration table records. 67 : // </motivation> 68 : // 69 : // <todo asof="98/01/01"> 70 : // </todo> 71 : 72 : class CalDescRecord 73 : { 74 : public: 75 : // Default null constructor, and destructor 76 : CalDescRecord(); 77 1 : ~CalDescRecord() {}; 78 : 79 : // Construct from an existing record 80 : CalDescRecord (const casacore::Record& inpRec); 81 : 82 : // Return as record 83 : const casacore::Record& record(); 84 : 85 : // Field accessors 86 : // a) define 87 : void defineNumSpw (const casacore::Int& numSpw); 88 : void defineNumChan (const casacore::Array <casacore::Int>& numChan); 89 : void defineNumReceptors (const casacore::Int& numReceptors); 90 : void defineNJones (const casacore::Int& nJones); 91 : void defineSpwId (const casacore::Array <casacore::Int>& spwId); 92 : void defineChanFreq (const casacore::Array <casacore::Double>& chanFreq); 93 : void defineChanWidth (const casacore::Array <casacore::Double>& chanWidth); 94 : void defineChanRange (const casacore::Array <casacore::Int>& chanRange); 95 : void definePolznType (const casacore::Array <casacore::String>& polznType); 96 : void defineJonesType (const casacore::String& jonesType); 97 : void defineMSName (const casacore::String& msName); 98 : 99 : // b) get 100 : void getNumSpw (casacore::Int& numSpw); 101 : void getNumChan (casacore::Array <casacore::Int>& numChan); 102 : void getNumReceptors (casacore::Int& numReceptors); 103 : void getNJones (casacore::Int& nJones); 104 : void getSpwId (casacore::Array <casacore::Int>& spwId); 105 : void getChanFreq (casacore::Array <casacore::Double>& chanFreq); 106 : void getChanWidth (casacore::Array <casacore::Double>& chanWidth); 107 : void getChanRange (casacore::Array <casacore::Int>& chanRange); 108 : void getPolznType (casacore::Array <casacore::String>& polznType); 109 : void getJonesType (casacore::String& jonesType); 110 : void getMSName (casacore::String& msName); 111 : 112 : protected: 113 : // Add to itsRecord 114 : void addRec (const casacore::Record& newRec); 115 : 116 : private: 117 : casacore::Record itsRecord; 118 : 119 : }; 120 : 121 : 122 : } //# NAMESPACE CASA - END 123 : 124 : #endif 125 : 126 : 127 : 128 : 129 :