Line data Source code
1 : //# EPointJonesMCol.h: SolvableVisJones cal_main table column access 2 : //# Copyright (C) 1996,1997,1998,2001,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 adressed 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 CALIBRATION_EPOINTMCOL_H 30 : #define CALIBRATION_EPOINTMCOL_H 31 : 32 : #include <synthesis/CalTables/SolvableVJMCol.h> 33 : #include <synthesis/CalTables/SolvableVJTable.h> 34 : #include <synthesis/CalTables/EPointTable.h> 35 : 36 : namespace casa { 37 : class ROEPointMCol : public ROSolvableVisJonesMCol 38 : { 39 : public: 40 : // Construct from a calibration table 41 : ROEPointMCol (const EPointTable& epTable); 42 : 43 : // Default destructor 44 0 : virtual ~ROEPointMCol() {}; 45 : 46 : // Read-only column accessors 47 : 48 : const casacore::ArrayColumn<casacore::Float>& pointingOffset() const {return pointingOffset_p;} 49 : 50 : protected: 51 : // Prohibit public use of the null constructor, which 52 : // does not produce a usable object. 53 : ROEPointMCol() {}; 54 : 55 : private: 56 : // Prohibit copy constructor and assignment operator 57 : ROEPointMCol (const ROEPointMCol&); 58 : ROEPointMCol& operator= (const ROEPointMCol&); 59 : 60 : // Private column accessors 61 : casacore::ArrayColumn<casacore::Float> pointingOffset_p; 62 : }; 63 : 64 : // <summary> 65 : // EPointJonesMCol: RW SolvableVisJones cal_main column access 66 : // </summary> 67 : 68 : // <use visibility=export> 69 : 70 : // <reviewed reviewer="" date="" tests="" demos=""> 71 : 72 : // <prerequisite> 73 : // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 74 : // </prerequisite> 75 : // 76 : // <etymology> 77 : // From "solvable visibility Jones","cal main table" and "columns". 78 : // </etymology> 79 : // 80 : // <synopsis> 81 : // The EPointJonesMCol class allows read-write access to columns in the 82 : // SolvableVisJones main calibration table. Specializations for individual 83 : // solvable Jones matrix types (e.g. GJones) are provided through inheritance. 84 : // </etymology> 85 : // 86 : // <example> 87 : // <srcblock> 88 : // </srcblock> 89 : // </example> 90 : // 91 : // <motivation> 92 : // Encapsulate read-write access to SVJ calibration table columns. 93 : // </motivation> 94 : // 95 : // <todo asof="01/07/01"> 96 : // (i) Deal with non-standard columns. 97 : // </todo> 98 : 99 : class EPointMCol : public SolvableVisJonesMCol 100 : { 101 : public: 102 : // Construct from a calibration table 103 : EPointMCol (EPointTable& epTable); 104 : 105 : // Default destructor 106 0 : virtual ~EPointMCol() {}; 107 : 108 : // Read-write column accessors 109 0 : casacore::ArrayColumn<casacore::Float>& pointingOffset() {return pointingOffset_p;}; 110 : 111 : protected: 112 : // Prohibit public use of the null constructor, which 113 : // does not produce a usable object. 114 : EPointMCol() {}; 115 : 116 : private: 117 : // Prohibit copy constructor and assignment operator 118 : EPointMCol (const EPointMCol&); 119 : EPointMCol& operator= (const EPointMCol&); 120 : 121 : // Private column accessors 122 : casacore::ArrayColumn<casacore::Float> pointingOffset_p; 123 : }; 124 : } 125 : #endif