casa
$Rev:20696$
|
00001 //# SolvableVJMCol.h: SolvableVisJones 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_SOLVABLEVJMCOL_H 00030 #define CALIBRATION_SOLVABLEVJMCOL_H 00031 00032 #include <synthesis/CalTables/TimeVarVJMCol.h> 00033 #include <synthesis/CalTables/SolvableVJTable.h> 00034 00035 namespace casa { //# NAMESPACE CASA - BEGIN 00036 00037 // <summary> 00038 // ROSolvableVisJonesMCol: Read-only SolvableVisJones 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 // </prerequisite> 00048 // 00049 // <etymology> 00050 // From "read-only","solvable visibility Jones","cal main" and "columns". 00051 // </etymology> 00052 // 00053 // <synopsis> 00054 // The ROSolvableVisJonesMCol class allows read-only access to columns in the 00055 // SolvableVisJones main calibration table. Specializations for individual 00056 // solvable Jones matrix types (e.g. GJones) are provided through inheritance. 00057 // </etymology> 00058 // 00059 // <example> 00060 // <srcblock> 00061 // </srcblock> 00062 // </example> 00063 // 00064 // <motivation> 00065 // Encapsulate read-only access to SVJ calibration table columns. 00066 // </motivation> 00067 // 00068 // <todo asof="01/07/01"> 00069 // (i) Deal with non-standard columns. 00070 // </todo> 00071 00072 class ROSolvableVisJonesMCol : public ROTimeVarVisJonesMCol 00073 { 00074 public: 00075 // Construct from a calibration table 00076 ROSolvableVisJonesMCol (const SolvableVisJonesTable& svjTable); 00077 00078 // Default destructor 00079 virtual ~ROSolvableVisJonesMCol() {}; 00080 00081 // Read-only column accessors 00082 const ROScalarColumn<Bool>& totalSolnOk() const {return totalSolnOk_p;}; 00083 const ROScalarColumn<Float>& totalFit() const {return totalFit_p;}; 00084 const ROScalarColumn<Float>& totalFitWgt() const {return totalFitWgt_p;}; 00085 const ROArrayColumn<Bool>& solnOk() const {return solnOk_p;}; 00086 const ROArrayColumn<Float>& fit() const {return fit_p;}; 00087 const ROArrayColumn<Float>& fitWgt() const {return fitWgt_p;}; 00088 const ROArrayColumn<Bool>& flag() const {return flag_p;}; 00089 const ROArrayColumn<Float>& snr() const {return snr_p;}; 00090 00091 protected: 00092 // Prohibit public use of the null constructor, which 00093 // does not produce a usable object. 00094 ROSolvableVisJonesMCol() {}; 00095 00096 private: 00097 // Prohibit copy constructor and assignment operator 00098 ROSolvableVisJonesMCol (const ROSolvableVisJonesMCol&); 00099 ROSolvableVisJonesMCol& operator= (const ROSolvableVisJonesMCol&); 00100 00101 // Private column accessors 00102 ROScalarColumn<Bool> totalSolnOk_p; 00103 ROScalarColumn<Float> totalFit_p; 00104 ROScalarColumn<Float> totalFitWgt_p; 00105 ROArrayColumn<Bool> solnOk_p; 00106 ROArrayColumn<Float> fit_p; 00107 ROArrayColumn<Float> fitWgt_p; 00108 ROArrayColumn<Bool> flag_p; 00109 ROArrayColumn<Float> snr_p; 00110 }; 00111 00112 // <summary> 00113 // SolvableVisJonesMCol: RW SolvableVisJones cal_main column access 00114 // </summary> 00115 00116 // <use visibility=export> 00117 00118 // <reviewed reviewer="" date="" tests="" demos=""> 00119 00120 // <prerequisite> 00121 // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 00122 // </prerequisite> 00123 // 00124 // <etymology> 00125 // From "solvable visibility Jones","cal main table" and "columns". 00126 // </etymology> 00127 // 00128 // <synopsis> 00129 // The SolvableVisJonesMCol class allows read-write access to columns in the 00130 // SolvableVisJones main calibration table. Specializations for individual 00131 // solvable Jones matrix types (e.g. GJones) are provided through inheritance. 00132 // </etymology> 00133 // 00134 // <example> 00135 // <srcblock> 00136 // </srcblock> 00137 // </example> 00138 // 00139 // <motivation> 00140 // Encapsulate read-write access to SVJ calibration table columns. 00141 // </motivation> 00142 // 00143 // <todo asof="01/07/01"> 00144 // (i) Deal with non-standard columns. 00145 // </todo> 00146 00147 class SolvableVisJonesMCol : public TimeVarVisJonesMCol 00148 { 00149 public: 00150 // Construct from a calibration table 00151 SolvableVisJonesMCol (SolvableVisJonesTable& svjTable); 00152 00153 // Default destructor 00154 virtual ~SolvableVisJonesMCol() {}; 00155 00156 // Read-write column accessors 00157 ScalarColumn<Bool>& totalSolnOk() {return totalSolnOk_p;}; 00158 ScalarColumn<Float>& totalFit() {return totalFit_p;}; 00159 ScalarColumn<Float>& totalFitWgt() {return totalFitWgt_p;}; 00160 ArrayColumn<Bool>& solnOk() {return solnOk_p;}; 00161 ArrayColumn<Float>& fit() {return fit_p;}; 00162 ArrayColumn<Float>& fitWgt() {return fitWgt_p;}; 00163 ArrayColumn<Bool>& flag() {return flag_p;}; 00164 ArrayColumn<Float>& snr() {return snr_p;}; 00165 00166 protected: 00167 // Prohibit public use of the null constructor, which 00168 // does not produce a usable object. 00169 SolvableVisJonesMCol() {}; 00170 00171 private: 00172 // Prohibit copy constructor and assignment operator 00173 SolvableVisJonesMCol (const SolvableVisJonesMCol&); 00174 SolvableVisJonesMCol& operator= (const SolvableVisJonesMCol&); 00175 00176 // Private column accessors 00177 ScalarColumn<Bool> totalSolnOk_p; 00178 ScalarColumn<Float> totalFit_p; 00179 ScalarColumn<Float> totalFitWgt_p; 00180 ArrayColumn<Bool> solnOk_p; 00181 ArrayColumn<Float> fit_p; 00182 ArrayColumn<Float> fitWgt_p; 00183 ArrayColumn<Bool> flag_p; 00184 ArrayColumn<Float> snr_p; 00185 }; 00186 00187 // <summary> 00188 // ROGJonesMCol: Read-only GJones cal_main column access 00189 // </summary> 00190 00191 // <use visibility=export> 00192 00193 // <reviewed reviewer="" date="" tests="" demos=""> 00194 00195 // <prerequisite> 00196 // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 00197 // </prerequisite> 00198 // 00199 // <etymology> 00200 // From "read-only","GJones","cal main" and "columns". 00201 // </etymology> 00202 // 00203 // <synopsis> 00204 // The ROGJonesMCol class allows read-only access to columns in the 00205 // GJones main calibration table. GJones matrices are used to store 00206 // electronic gain information in the Measurement Equation formalism. 00207 // </etymology> 00208 // 00209 // <example> 00210 // <srcblock> 00211 // </srcblock> 00212 // </example> 00213 // 00214 // <motivation> 00215 // Encapsulate read-only access to GJones calibration table columns. 00216 // </motivation> 00217 // 00218 // <todo asof="01/07/01"> 00219 // (i) Deal with non-standard columns. 00220 // </todo> 00221 00222 class ROGJonesMCol : public ROSolvableVisJonesMCol 00223 { 00224 public: 00225 // Construct from a calibration table 00226 ROGJonesMCol (const GJonesTable& gjTable); 00227 00228 // Default destructor 00229 virtual ~ROGJonesMCol() {}; 00230 00231 protected: 00232 // Prohibit public use of the null constructor, which 00233 // does not produce a usable object. 00234 ROGJonesMCol() {}; 00235 00236 private: 00237 // Prohibit copy constructor and assignment operator 00238 ROGJonesMCol (const ROGJonesMCol&); 00239 ROGJonesMCol& operator= (const ROGJonesMCol&); 00240 }; 00241 00242 // <summary> 00243 // GJonesMCol: RW GJones cal_main column access 00244 // </summary> 00245 00246 // <use visibility=export> 00247 00248 // <reviewed reviewer="" date="" tests="" demos=""> 00249 00250 // <prerequisite> 00251 // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 00252 // </prerequisite> 00253 // 00254 // <etymology> 00255 // From "GJones","cal main table" and "columns". 00256 // </etymology> 00257 // 00258 // <synopsis> 00259 // The GJonesMCol class allows read-write access to columns in the 00260 // GJones main calibration table. GJones matrices are used to store 00261 // electronic gain information in the Measurement Equation formalism. 00262 // </etymology> 00263 // 00264 // <example> 00265 // <srcblock> 00266 // </srcblock> 00267 // </example> 00268 // 00269 // <motivation> 00270 // Encapsulate read-write access to GJones calibration table columns. 00271 // </motivation> 00272 // 00273 // <todo asof="01/07/01"> 00274 // (i) Deal with non-standard columns. 00275 // </todo> 00276 00277 class GJonesMCol : public SolvableVisJonesMCol 00278 { 00279 public: 00280 // Construct from a calibration table 00281 GJonesMCol (GJonesTable& gjTable); 00282 00283 // Default destructor 00284 virtual ~GJonesMCol() {}; 00285 00286 protected: 00287 // Prohibit public use of the null constructor, which 00288 // does not produce a usable object. 00289 GJonesMCol() {}; 00290 00291 private: 00292 // Prohibit copy constructor and assignment operator 00293 GJonesMCol (const GJonesMCol&); 00294 GJonesMCol& operator= (const GJonesMCol&); 00295 }; 00296 00297 // <summary> 00298 // RODJonesMCol: Read-only DJones cal_main column access 00299 // </summary> 00300 00301 // <use visibility=export> 00302 00303 // <reviewed reviewer="" date="" tests="" demos=""> 00304 00305 // <prerequisite> 00306 // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 00307 // </prerequisite> 00308 // 00309 // <etymology> 00310 // From "read-only","DJones","cal main" and "columns". 00311 // </etymology> 00312 // 00313 // <synopsis> 00314 // The RODJonesMCol class allows read-only access to columns in the 00315 // DJones main calibration table. DJones matrices are used to store 00316 // instrumental polarization calibration information in the 00317 // Measurement Equation formalism. 00318 // </etymology> 00319 // 00320 // <example> 00321 // <srcblock> 00322 // </srcblock> 00323 // </example> 00324 // 00325 // <motivation> 00326 // Encapsulate read-only access to DJones calibration table columns. 00327 // </motivation> 00328 // 00329 // <todo asof="01/07/01"> 00330 // (i) Deal with non-standard columns. 00331 // </todo> 00332 00333 class RODJonesMCol : public ROSolvableVisJonesMCol 00334 { 00335 public: 00336 // Construct from a calibration table 00337 RODJonesMCol (const DJonesTable& djTable); 00338 00339 // Default destructor 00340 virtual ~RODJonesMCol() {}; 00341 00342 protected: 00343 // Prohibit public use of the null constructor, which 00344 // does not produce a usable object. 00345 RODJonesMCol() {}; 00346 00347 private: 00348 // Prohibit copy constructor and assignment operator 00349 RODJonesMCol (const RODJonesMCol&); 00350 RODJonesMCol& operator= (const RODJonesMCol&); 00351 }; 00352 00353 // <summary> 00354 // DJonesMCol: RW DJones cal_main column access 00355 // </summary> 00356 00357 // <use visibility=export> 00358 00359 // <reviewed reviewer="" date="" tests="" demos=""> 00360 00361 // <prerequisite> 00362 // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 00363 // </prerequisite> 00364 // 00365 // <etymology> 00366 // From "DJones","cal main table" and "columns". 00367 // </etymology> 00368 // 00369 // <synopsis> 00370 // The DJonesMCol class allows read-write access to columns in the 00371 // DJones main calibration table. DJones matrices are used to store 00372 // instrumental polarization calibration information in the Measurement 00373 // Equation formalism. 00374 // </etymology> 00375 // 00376 // <example> 00377 // <srcblock> 00378 // </srcblock> 00379 // </example> 00380 // 00381 // <motivation> 00382 // Encapsulate read-write access to DJones calibration table columns. 00383 // </motivation> 00384 // 00385 // <todo asof="01/07/01"> 00386 // (i) Deal with non-standard columns. 00387 // </todo> 00388 00389 class DJonesMCol : public SolvableVisJonesMCol 00390 { 00391 public: 00392 // Construct from a calibration table 00393 DJonesMCol (DJonesTable& djTable); 00394 00395 // Default destructor 00396 virtual ~DJonesMCol() {}; 00397 00398 protected: 00399 // Prohibit public use of the null constructor, which 00400 // does not produce a usable object. 00401 DJonesMCol() {}; 00402 00403 private: 00404 // Prohibit copy constructor and assignment operator 00405 DJonesMCol (const DJonesMCol&); 00406 DJonesMCol& operator= (const DJonesMCol&); 00407 }; 00408 00409 // <summary> 00410 // ROTJonesMCol: Read-only TJones cal_main column access 00411 // </summary> 00412 00413 // <use visibility=export> 00414 00415 // <reviewed reviewer="" date="" tests="" demos=""> 00416 00417 // <prerequisite> 00418 // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 00419 // </prerequisite> 00420 // 00421 // <etymology> 00422 // From "read-only","TJones","cal main" and "columns". 00423 // </etymology> 00424 // 00425 // <synopsis> 00426 // The ROTJonesMCol class allows read-only access to columns in the 00427 // TJones main calibration table. TJones matrices are used to store 00428 // atmospheric calibration information in the Measurement Equation 00429 // formalism. 00430 // </etymology> 00431 // 00432 // <example> 00433 // <srcblock> 00434 // </srcblock> 00435 // </example> 00436 // 00437 // <motivation> 00438 // Encapsulate read-only access to TJones calibration table columns. 00439 // </motivation> 00440 // 00441 // <todo asof="01/07/01"> 00442 // (i) Deal with non-standard columns. 00443 // </todo> 00444 00445 class ROTJonesMCol : public ROSolvableVisJonesMCol 00446 { 00447 public: 00448 // Construct from a calibration table 00449 ROTJonesMCol (const TJonesTable& djTable); 00450 00451 // Default destructor 00452 virtual ~ROTJonesMCol() {}; 00453 00454 protected: 00455 // Prohibit public use of the null constructor, which 00456 // does not produce a usable object. 00457 ROTJonesMCol() {}; 00458 00459 private: 00460 // Prohibit copy constructor and assignment operator 00461 ROTJonesMCol (const ROTJonesMCol&); 00462 ROTJonesMCol& operator= (const ROTJonesMCol&); 00463 }; 00464 00465 // <summary> 00466 // TJonesMCol: RW TJones cal_main column access 00467 // </summary> 00468 00469 // <use visibility=export> 00470 00471 // <reviewed reviewer="" date="" tests="" demos=""> 00472 00473 // <prerequisite> 00474 // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 00475 // </prerequisite> 00476 // 00477 // <etymology> 00478 // From "TJones","cal main table" and "columns". 00479 // </etymology> 00480 // 00481 // <synopsis> 00482 // The TJonesMCol class allows read-write access to columns in the 00483 // TJones main calibration table. TJones matrices are used to store 00484 // atmospheric calibration information in the Measurement Equation 00485 // formalism. 00486 // </etymology> 00487 // 00488 // <example> 00489 // <srcblock> 00490 // </srcblock> 00491 // </example> 00492 // 00493 // <motivation> 00494 // Encapsulate read-write access to TJones calibration table columns. 00495 // </motivation> 00496 // 00497 // <todo asof="01/07/01"> 00498 // (i) Deal with non-standard columns. 00499 // </todo> 00500 00501 class TJonesMCol : public SolvableVisJonesMCol 00502 { 00503 public: 00504 // Construct from a calibration table 00505 TJonesMCol (TJonesTable& djTable); 00506 00507 // Default destructor 00508 virtual ~TJonesMCol() {}; 00509 00510 protected: 00511 // Prohibit public use of the null constructor, which 00512 // does not produce a usable object. 00513 TJonesMCol() {}; 00514 00515 private: 00516 // Prohibit copy constructor and assignment operator 00517 TJonesMCol (const TJonesMCol&); 00518 TJonesMCol& operator= (const TJonesMCol&); 00519 }; 00520 00521 00522 } //# NAMESPACE CASA - END 00523 00524 #endif 00525 00526 00527 00528 00529