casa
$Rev:20696$
|
00001 //# TimeVarVJMCol.h: TimeVarVisJones cal_main table column access 00002 //# Copyright (C) 1996,1997,1998,2001,2003 00003 //# Associated Universities, Inc. Washington DC, USA. 00004 //# 00005 //# This library is free software; you can redistribute it and/or modify it 00006 //# under the terms of the GNU Library General Public License as published by 00007 //# the Free Software Foundation; either version 2 of the License, or (at your 00008 //# option) any later version. 00009 //# 00010 //# This library is distributed in the hope that it will be useful, but WITHOUT 00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00012 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00013 //# License for more details. 00014 //# 00015 //# You should have received a copy of the GNU Library General Public License 00016 //# along with this library; if not, write to the Free Software Foundation, 00017 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00018 //# 00019 //# Correspondence concerning AIPS++ should be adressed as follows: 00020 //# Internet email: aips2-request@nrao.edu. 00021 //# Postal address: AIPS++ Project Office 00022 //# National Radio Astronomy Observatory 00023 //# 520 Edgemont Road 00024 //# Charlottesville, VA 22903-2475 USA 00025 //# 00026 //# 00027 //# $Id$ 00028 00029 #ifndef CALIBRATION_TIMEVARVJMCOL_H 00030 #define CALIBRATION_TIMEVARVJMCOL_H 00031 00032 #include <synthesis/CalTables/VisJonesMCol.h> 00033 #include <synthesis/CalTables/TimeVarVJTable.h> 00034 00035 namespace casa { //# NAMESPACE CASA - BEGIN 00036 00037 // <summary> 00038 // ROTimeVarVisJonesMCol: Read-only TimeVarVisJones cal_main column access 00039 // </summary> 00040 00041 // <use visibility=export> 00042 00043 // <reviewed reviewer="" date="" tests="" demos=""> 00044 00045 // <prerequisite> 00046 // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 00047 // <li> <linkto class="ROVisJonesMCol">ROVisJonesMCol</linkto> module 00048 // </prerequisite> 00049 // 00050 // <etymology> 00051 // From "read-only","time-variable visibility Jones","cal main" and "columns". 00052 // </etymology> 00053 // 00054 // <synopsis> 00055 // The ROTimeVarVisJonesMCol class allows read-only access to columns in the 00056 // TimeVarVisJones main calibration table. Specializations for solvable 00057 // VisJones calibration table column access are provided through inheritance. 00058 // </etymology> 00059 // 00060 // <example> 00061 // <srcblock> 00062 // </srcblock> 00063 // </example> 00064 // 00065 // <motivation> 00066 // Encapsulate read-only access to TVVJ calibration table columns. 00067 // </motivation> 00068 // 00069 // <todo asof="01/07/01"> 00070 // (i) Deal with non-standard columns. 00071 // </todo> 00072 00073 class ROTimeVarVisJonesMCol : public ROVisJonesMCol 00074 { 00075 public: 00076 // Construct from a calibration table 00077 ROTimeVarVisJonesMCol (const TimeVarVisJonesTable& tvvjTable); 00078 00079 // Default destructor 00080 virtual ~ROTimeVarVisJonesMCol() {}; 00081 00082 protected: 00083 // Prohibit public use of the null constructor, which 00084 // does not produce a usable object. 00085 ROTimeVarVisJonesMCol() {}; 00086 00087 private: 00088 // Prohibit copy constructor and assignment operator 00089 ROTimeVarVisJonesMCol (const ROTimeVarVisJonesMCol&); 00090 ROTimeVarVisJonesMCol& operator= (const ROTimeVarVisJonesMCol&); 00091 }; 00092 00093 // <summary> 00094 // TimeVarVisJonesMCol: RW TimeVarVisJones cal_main column access 00095 // </summary> 00096 00097 // <use visibility=export> 00098 00099 // <reviewed reviewer="" date="" tests="" demos=""> 00100 00101 // <prerequisite> 00102 // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 00103 // <li> <linkto class="VisJonesMCol">VisJonesMCol</linkto> module 00104 // </prerequisite> 00105 // 00106 // <etymology> 00107 // From "time-variable visibility Jones","cal main table" and "columns". 00108 // </etymology> 00109 // 00110 // <synopsis> 00111 // The TimeVarVisJonesMCol class allows read-write access to columns in the 00112 // TimeVarVisJones main calibration table. Specializations for solvable 00113 // VisJones calibration table types are provided through inheritance. 00114 // </etymology> 00115 // 00116 // <example> 00117 // <srcblock> 00118 // </srcblock> 00119 // </example> 00120 // 00121 // <motivation> 00122 // Encapsulate read-write access to TVVJ calibration table columns. 00123 // </motivation> 00124 // 00125 // <todo asof="01/07/01"> 00126 // (i) Deal with non-standard columns. 00127 // </todo> 00128 00129 class TimeVarVisJonesMCol : public VisJonesMCol 00130 { 00131 public: 00132 // Construct from a calibration table 00133 TimeVarVisJonesMCol (TimeVarVisJonesTable& tvvjTable); 00134 00135 // Default destructor 00136 virtual ~TimeVarVisJonesMCol() {}; 00137 00138 protected: 00139 // Prohibit public use of the null constructor, which 00140 // does not produce a usable object. 00141 TimeVarVisJonesMCol() {}; 00142 00143 private: 00144 // Prohibit copy constructor and assignment operator 00145 TimeVarVisJonesMCol (const TimeVarVisJonesMCol&); 00146 TimeVarVisJonesMCol& operator= (const TimeVarVisJonesMCol&); 00147 }; 00148 00149 // <summary> 00150 // ROPJonesMCol: Read-only PJones cal_main column access 00151 // </summary> 00152 00153 // <use visibility=export> 00154 00155 // <reviewed reviewer="" date="" tests="" demos=""> 00156 00157 // <prerequisite> 00158 // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 00159 // <li> <linkto class="ROVisJonesMCol">ROVisJonesMCol</linkto> module 00160 // </prerequisite> 00161 // 00162 // <etymology> 00163 // From "read-only","PJones","cal main" and "columns". 00164 // </etymology> 00165 // 00166 // <synopsis> 00167 // The ROPJonesMCol class allows read-only access to columns in the 00168 // PJones main calibration table. PJones matrices are used to store 00169 // parallactic angle information in the Measurement Equation formalism. 00170 // </etymology> 00171 // 00172 // <example> 00173 // <srcblock> 00174 // </srcblock> 00175 // </example> 00176 // 00177 // <motivation> 00178 // Encapsulate read-only access to PJones calibration table columns. 00179 // </motivation> 00180 // 00181 // <todo asof="01/07/01"> 00182 // (i) Deal with non-standard columns. 00183 // </todo> 00184 00185 class ROPJonesMCol : public ROTimeVarVisJonesMCol 00186 { 00187 public: 00188 // Construct from a calibration table 00189 ROPJonesMCol (const PJonesTable& pjTable); 00190 00191 // Default destructor 00192 virtual ~ROPJonesMCol() {}; 00193 00194 protected: 00195 // Prohibit public use of the null constructor, which 00196 // does not produce a usable object. 00197 ROPJonesMCol() {}; 00198 00199 private: 00200 // Prohibit copy constructor and assignment operator 00201 ROPJonesMCol (const ROPJonesMCol&); 00202 ROPJonesMCol& operator= (const ROPJonesMCol&); 00203 }; 00204 00205 // <summary> 00206 // PJonesMCol: RW PJones cal_main column access 00207 // </summary> 00208 00209 // <use visibility=export> 00210 00211 // <reviewed reviewer="" date="" tests="" demos=""> 00212 00213 // <prerequisite> 00214 // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 00215 // <li> <linkto class="VisJonesMCol">VisJonesMCol</linkto> module 00216 // </prerequisite> 00217 // 00218 // <etymology> 00219 // From "PJones","cal main table" and "columns". 00220 // </etymology> 00221 // 00222 // <synopsis> 00223 // The PJonesMCol class allows read-write access to columns in the 00224 // PJones main calibration table. PJones matrices are used to store 00225 // parallactic angle information in the Measurement Equation formalism. 00226 // </etymology> 00227 // 00228 // <example> 00229 // <srcblock> 00230 // </srcblock> 00231 // </example> 00232 // 00233 // <motivation> 00234 // Encapsulate read-write access to PJones calibration table columns. 00235 // </motivation> 00236 // 00237 // <todo asof="01/07/01"> 00238 // (i) Deal with non-standard columns. 00239 // </todo> 00240 00241 class PJonesMCol : public TimeVarVisJonesMCol 00242 { 00243 public: 00244 // Construct from a calibration table 00245 PJonesMCol (PJonesTable& pjTable); 00246 00247 // Default destructor 00248 virtual ~PJonesMCol() {}; 00249 00250 protected: 00251 // Prohibit public use of the null constructor, which 00252 // does not produce a usable object. 00253 PJonesMCol() {}; 00254 00255 private: 00256 // Prohibit copy constructor and assignment operator 00257 PJonesMCol (const PJonesMCol&); 00258 PJonesMCol& operator= (const PJonesMCol&); 00259 }; 00260 00261 // <summary> 00262 // ROCJonesMCol: Read-only CJones cal_main column access 00263 // </summary> 00264 00265 // <use visibility=export> 00266 00267 // <reviewed reviewer="" date="" tests="" demos=""> 00268 00269 // <prerequisite> 00270 // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 00271 // <li> <linkto class="ROVisJonesMCol">ROVisJonesMCol</linkto> module 00272 // </prerequisite> 00273 // 00274 // <etymology> 00275 // From "read-only","CJones","cal main" and "columns". 00276 // </etymology> 00277 // 00278 // <synopsis> 00279 // The ROCJonesMCol class allows read-only access to columns in the 00280 // CJones main calibration table. CJones matrices are used to store 00281 // polarization configuration information in the Measurement Equation 00282 // formalism. 00283 // </etymology> 00284 // 00285 // <example> 00286 // <srcblock> 00287 // </srcblock> 00288 // </example> 00289 // 00290 // <motivation> 00291 // Encapsulate read-only access to CJones calibration table columns. 00292 // </motivation> 00293 // 00294 // <todo asof="01/07/01"> 00295 // (i) Deal with non-standard columns. 00296 // </todo> 00297 00298 class ROCJonesMCol : public ROTimeVarVisJonesMCol 00299 { 00300 public: 00301 // Construct from a calibration table 00302 ROCJonesMCol (const CJonesTable& cjTable); 00303 00304 // Default destructor 00305 virtual ~ROCJonesMCol() {}; 00306 00307 protected: 00308 // Prohibit public use of the null constructor, which 00309 // does not produce a usable object. 00310 ROCJonesMCol() {}; 00311 00312 private: 00313 // Prohibit copy constructor and assignment operator 00314 ROCJonesMCol (const ROCJonesMCol&); 00315 ROCJonesMCol& operator= (const ROCJonesMCol&); 00316 }; 00317 00318 // <summary> 00319 // CJonesMCol: RW CJones cal_main column access 00320 // </summary> 00321 00322 // <use visibility=export> 00323 00324 // <reviewed reviewer="" date="" tests="" demos=""> 00325 00326 // <prerequisite> 00327 // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 00328 // <li> <linkto class="VisJonesMCol">VisJonesMCol</linkto> module 00329 // </prerequisite> 00330 // 00331 // <etymology> 00332 // From "CJones","cal main table" and "columns". 00333 // </etymology> 00334 // 00335 // <synopsis> 00336 // The CJonesMCol class allows read-write access to columns in the 00337 // CJones main calibration table. CJones matrices are used to store 00338 // polarization configuration information in the Measurement 00339 // Equation formalism. 00340 // </etymology> 00341 // 00342 // <example> 00343 // <srcblock> 00344 // </srcblock> 00345 // </example> 00346 // 00347 // <motivation> 00348 // Encapsulate read-write access to CJones calibration table columns. 00349 // </motivation> 00350 // 00351 // <todo asof="01/07/01"> 00352 // (i) Deal with non-standard columns. 00353 // </todo> 00354 00355 class CJonesMCol : public TimeVarVisJonesMCol 00356 { 00357 public: 00358 // Construct from a calibration table 00359 CJonesMCol (CJonesTable& cjTable); 00360 00361 // Default destructor 00362 virtual ~CJonesMCol() {}; 00363 00364 protected: 00365 // Prohibit public use of the null constructor, which 00366 // does not produce a usable object. 00367 CJonesMCol() {}; 00368 00369 private: 00370 // Prohibit copy constructor and assignment operator 00371 CJonesMCol (const CJonesMCol&); 00372 CJonesMCol& operator= (const CJonesMCol&); 00373 }; 00374 00375 00376 } //# NAMESPACE CASA - END 00377 00378 #endif 00379 00380 00381 00382 00383