Line data Source code
1 : //# SolvableVJMCol.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_SOLVABLEVJMCOL_H 30 : #define CALIBRATION_SOLVABLEVJMCOL_H 31 : 32 : #include <synthesis/CalTables/TimeVarVJMCol.h> 33 : #include <synthesis/CalTables/SolvableVJTable.h> 34 : 35 : namespace casa { //# NAMESPACE CASA - BEGIN 36 : 37 : // <summary> 38 : // ROSolvableVisJonesMCol: Read-only SolvableVisJones cal_main column access 39 : // </summary> 40 : 41 : // <use visibility=export> 42 : 43 : // <reviewed reviewer="" date="" tests="" demos=""> 44 : 45 : // <prerequisite> 46 : // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 47 : // </prerequisite> 48 : // 49 : // <etymology> 50 : // From "read-only","solvable visibility Jones","cal main" and "columns". 51 : // </etymology> 52 : // 53 : // <synopsis> 54 : // The ROSolvableVisJonesMCol class allows read-only access to columns in the 55 : // SolvableVisJones main calibration table. Specializations for individual 56 : // solvable Jones matrix types (e.g. GJones) are provided through inheritance. 57 : // </etymology> 58 : // 59 : // <example> 60 : // <srcblock> 61 : // </srcblock> 62 : // </example> 63 : // 64 : // <motivation> 65 : // Encapsulate read-only access to SVJ calibration table columns. 66 : // </motivation> 67 : // 68 : // <todo asof="01/07/01"> 69 : // (i) Deal with non-standard columns. 70 : // </todo> 71 : 72 : class ROSolvableVisJonesMCol : public ROTimeVarVisJonesMCol 73 : { 74 : public: 75 : // Construct from a calibration table 76 : ROSolvableVisJonesMCol (const SolvableVisJonesTable& svjTable); 77 : 78 : // Default destructor 79 0 : virtual ~ROSolvableVisJonesMCol() {}; 80 : 81 : // Read-only column accessors 82 : const casacore::ScalarColumn<casacore::Bool>& totalSolnOk() const {return totalSolnOk_p;}; 83 : const casacore::ScalarColumn<casacore::Float>& totalFit() const {return totalFit_p;}; 84 : const casacore::ScalarColumn<casacore::Float>& totalFitWgt() const {return totalFitWgt_p;}; 85 : const casacore::ArrayColumn<casacore::Bool>& solnOk() const {return solnOk_p;}; 86 : const casacore::ArrayColumn<casacore::Float>& fit() const {return fit_p;}; 87 : const casacore::ArrayColumn<casacore::Float>& fitWgt() const {return fitWgt_p;}; 88 : const casacore::ArrayColumn<casacore::Bool>& flag() const {return flag_p;}; 89 : const casacore::ArrayColumn<casacore::Float>& snr() const {return snr_p;}; 90 : 91 : protected: 92 : // Prohibit public use of the null constructor, which 93 : // does not produce a usable object. 94 : ROSolvableVisJonesMCol() {}; 95 : 96 : private: 97 : // Prohibit copy constructor and assignment operator 98 : ROSolvableVisJonesMCol (const ROSolvableVisJonesMCol&); 99 : ROSolvableVisJonesMCol& operator= (const ROSolvableVisJonesMCol&); 100 : 101 : // Private column accessors 102 : casacore::ScalarColumn<casacore::Bool> totalSolnOk_p; 103 : casacore::ScalarColumn<casacore::Float> totalFit_p; 104 : casacore::ScalarColumn<casacore::Float> totalFitWgt_p; 105 : casacore::ArrayColumn<casacore::Bool> solnOk_p; 106 : casacore::ArrayColumn<casacore::Float> fit_p; 107 : casacore::ArrayColumn<casacore::Float> fitWgt_p; 108 : casacore::ArrayColumn<casacore::Bool> flag_p; 109 : casacore::ArrayColumn<casacore::Float> snr_p; 110 : }; 111 : 112 : // <summary> 113 : // SolvableVisJonesMCol: RW SolvableVisJones cal_main column access 114 : // </summary> 115 : 116 : // <use visibility=export> 117 : 118 : // <reviewed reviewer="" date="" tests="" demos=""> 119 : 120 : // <prerequisite> 121 : // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 122 : // </prerequisite> 123 : // 124 : // <etymology> 125 : // From "solvable visibility Jones","cal main table" and "columns". 126 : // </etymology> 127 : // 128 : // <synopsis> 129 : // The SolvableVisJonesMCol class allows read-write access to columns in the 130 : // SolvableVisJones main calibration table. Specializations for individual 131 : // solvable Jones matrix types (e.g. GJones) are provided through inheritance. 132 : // </etymology> 133 : // 134 : // <example> 135 : // <srcblock> 136 : // </srcblock> 137 : // </example> 138 : // 139 : // <motivation> 140 : // Encapsulate read-write access to SVJ calibration table columns. 141 : // </motivation> 142 : // 143 : // <todo asof="01/07/01"> 144 : // (i) Deal with non-standard columns. 145 : // </todo> 146 : 147 : class SolvableVisJonesMCol : public TimeVarVisJonesMCol 148 : { 149 : public: 150 : // Construct from a calibration table 151 : SolvableVisJonesMCol (SolvableVisJonesTable& svjTable); 152 : 153 : // Default destructor 154 3 : virtual ~SolvableVisJonesMCol() {}; 155 : 156 : // Read-write column accessors 157 1 : casacore::ScalarColumn<casacore::Bool>& totalSolnOk() {return totalSolnOk_p;}; 158 1 : casacore::ScalarColumn<casacore::Float>& totalFit() {return totalFit_p;}; 159 1 : casacore::ScalarColumn<casacore::Float>& totalFitWgt() {return totalFitWgt_p;}; 160 1 : casacore::ArrayColumn<casacore::Bool>& solnOk() {return solnOk_p;}; 161 1 : casacore::ArrayColumn<casacore::Float>& fit() {return fit_p;}; 162 1 : casacore::ArrayColumn<casacore::Float>& fitWgt() {return fitWgt_p;}; 163 1 : casacore::ArrayColumn<casacore::Bool>& flag() {return flag_p;}; 164 1 : casacore::ArrayColumn<casacore::Float>& snr() {return snr_p;}; 165 : 166 : protected: 167 : // Prohibit public use of the null constructor, which 168 : // does not produce a usable object. 169 : SolvableVisJonesMCol() {}; 170 : 171 : private: 172 : // Prohibit copy constructor and assignment operator 173 : SolvableVisJonesMCol (const SolvableVisJonesMCol&); 174 : SolvableVisJonesMCol& operator= (const SolvableVisJonesMCol&); 175 : 176 : // Private column accessors 177 : casacore::ScalarColumn<casacore::Bool> totalSolnOk_p; 178 : casacore::ScalarColumn<casacore::Float> totalFit_p; 179 : casacore::ScalarColumn<casacore::Float> totalFitWgt_p; 180 : casacore::ArrayColumn<casacore::Bool> solnOk_p; 181 : casacore::ArrayColumn<casacore::Float> fit_p; 182 : casacore::ArrayColumn<casacore::Float> fitWgt_p; 183 : casacore::ArrayColumn<casacore::Bool> flag_p; 184 : casacore::ArrayColumn<casacore::Float> snr_p; 185 : }; 186 : 187 : // <summary> 188 : // ROGJonesMCol: Read-only GJones cal_main column access 189 : // </summary> 190 : 191 : // <use visibility=export> 192 : 193 : // <reviewed reviewer="" date="" tests="" demos=""> 194 : 195 : // <prerequisite> 196 : // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 197 : // </prerequisite> 198 : // 199 : // <etymology> 200 : // From "read-only","GJones","cal main" and "columns". 201 : // </etymology> 202 : // 203 : // <synopsis> 204 : // The ROGJonesMCol class allows read-only access to columns in the 205 : // GJones main calibration table. GJones matrices are used to store 206 : // electronic gain information in the Measurement Equation formalism. 207 : // </etymology> 208 : // 209 : // <example> 210 : // <srcblock> 211 : // </srcblock> 212 : // </example> 213 : // 214 : // <motivation> 215 : // Encapsulate read-only access to GJones calibration table columns. 216 : // </motivation> 217 : // 218 : // <todo asof="01/07/01"> 219 : // (i) Deal with non-standard columns. 220 : // </todo> 221 : 222 : class ROGJonesMCol : public ROSolvableVisJonesMCol 223 : { 224 : public: 225 : // Construct from a calibration table 226 : ROGJonesMCol (const GJonesTable& gjTable); 227 : 228 : // Default destructor 229 0 : virtual ~ROGJonesMCol() {}; 230 : 231 : protected: 232 : // Prohibit public use of the null constructor, which 233 : // does not produce a usable object. 234 : ROGJonesMCol() {}; 235 : 236 : private: 237 : // Prohibit copy constructor and assignment operator 238 : ROGJonesMCol (const ROGJonesMCol&); 239 : ROGJonesMCol& operator= (const ROGJonesMCol&); 240 : }; 241 : 242 : // <summary> 243 : // GJonesMCol: RW GJones cal_main column access 244 : // </summary> 245 : 246 : // <use visibility=export> 247 : 248 : // <reviewed reviewer="" date="" tests="" demos=""> 249 : 250 : // <prerequisite> 251 : // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 252 : // </prerequisite> 253 : // 254 : // <etymology> 255 : // From "GJones","cal main table" and "columns". 256 : // </etymology> 257 : // 258 : // <synopsis> 259 : // The GJonesMCol class allows read-write access to columns in the 260 : // GJones main calibration table. GJones matrices are used to store 261 : // electronic gain information in the Measurement Equation formalism. 262 : // </etymology> 263 : // 264 : // <example> 265 : // <srcblock> 266 : // </srcblock> 267 : // </example> 268 : // 269 : // <motivation> 270 : // Encapsulate read-write access to GJones calibration table columns. 271 : // </motivation> 272 : // 273 : // <todo asof="01/07/01"> 274 : // (i) Deal with non-standard columns. 275 : // </todo> 276 : 277 : class GJonesMCol : public SolvableVisJonesMCol 278 : { 279 : public: 280 : // Construct from a calibration table 281 : GJonesMCol (GJonesTable& gjTable); 282 : 283 : // Default destructor 284 2 : virtual ~GJonesMCol() {}; 285 : 286 : protected: 287 : // Prohibit public use of the null constructor, which 288 : // does not produce a usable object. 289 : GJonesMCol() {}; 290 : 291 : private: 292 : // Prohibit copy constructor and assignment operator 293 : GJonesMCol (const GJonesMCol&); 294 : GJonesMCol& operator= (const GJonesMCol&); 295 : }; 296 : 297 : // <summary> 298 : // RODJonesMCol: Read-only DJones cal_main column access 299 : // </summary> 300 : 301 : // <use visibility=export> 302 : 303 : // <reviewed reviewer="" date="" tests="" demos=""> 304 : 305 : // <prerequisite> 306 : // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 307 : // </prerequisite> 308 : // 309 : // <etymology> 310 : // From "read-only","DJones","cal main" and "columns". 311 : // </etymology> 312 : // 313 : // <synopsis> 314 : // The RODJonesMCol class allows read-only access to columns in the 315 : // DJones main calibration table. DJones matrices are used to store 316 : // instrumental polarization calibration information in the 317 : // Measurement Equation formalism. 318 : // </etymology> 319 : // 320 : // <example> 321 : // <srcblock> 322 : // </srcblock> 323 : // </example> 324 : // 325 : // <motivation> 326 : // Encapsulate read-only access to DJones calibration table columns. 327 : // </motivation> 328 : // 329 : // <todo asof="01/07/01"> 330 : // (i) Deal with non-standard columns. 331 : // </todo> 332 : 333 : class RODJonesMCol : public ROSolvableVisJonesMCol 334 : { 335 : public: 336 : // Construct from a calibration table 337 : RODJonesMCol (const DJonesTable& djTable); 338 : 339 : // Default destructor 340 0 : virtual ~RODJonesMCol() {}; 341 : 342 : protected: 343 : // Prohibit public use of the null constructor, which 344 : // does not produce a usable object. 345 : RODJonesMCol() {}; 346 : 347 : private: 348 : // Prohibit copy constructor and assignment operator 349 : RODJonesMCol (const RODJonesMCol&); 350 : RODJonesMCol& operator= (const RODJonesMCol&); 351 : }; 352 : 353 : // <summary> 354 : // DJonesMCol: RW DJones cal_main column access 355 : // </summary> 356 : 357 : // <use visibility=export> 358 : 359 : // <reviewed reviewer="" date="" tests="" demos=""> 360 : 361 : // <prerequisite> 362 : // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 363 : // </prerequisite> 364 : // 365 : // <etymology> 366 : // From "DJones","cal main table" and "columns". 367 : // </etymology> 368 : // 369 : // <synopsis> 370 : // The DJonesMCol class allows read-write access to columns in the 371 : // DJones main calibration table. DJones matrices are used to store 372 : // instrumental polarization calibration information in the Measurement 373 : // Equation formalism. 374 : // </etymology> 375 : // 376 : // <example> 377 : // <srcblock> 378 : // </srcblock> 379 : // </example> 380 : // 381 : // <motivation> 382 : // Encapsulate read-write access to DJones calibration table columns. 383 : // </motivation> 384 : // 385 : // <todo asof="01/07/01"> 386 : // (i) Deal with non-standard columns. 387 : // </todo> 388 : 389 : class DJonesMCol : public SolvableVisJonesMCol 390 : { 391 : public: 392 : // Construct from a calibration table 393 : DJonesMCol (DJonesTable& djTable); 394 : 395 : // Default destructor 396 0 : virtual ~DJonesMCol() {}; 397 : 398 : protected: 399 : // Prohibit public use of the null constructor, which 400 : // does not produce a usable object. 401 : DJonesMCol() {}; 402 : 403 : private: 404 : // Prohibit copy constructor and assignment operator 405 : DJonesMCol (const DJonesMCol&); 406 : DJonesMCol& operator= (const DJonesMCol&); 407 : }; 408 : 409 : // <summary> 410 : // ROTJonesMCol: Read-only TJones cal_main column access 411 : // </summary> 412 : 413 : // <use visibility=export> 414 : 415 : // <reviewed reviewer="" date="" tests="" demos=""> 416 : 417 : // <prerequisite> 418 : // <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module 419 : // </prerequisite> 420 : // 421 : // <etymology> 422 : // From "read-only","TJones","cal main" and "columns". 423 : // </etymology> 424 : // 425 : // <synopsis> 426 : // The ROTJonesMCol class allows read-only access to columns in the 427 : // TJones main calibration table. TJones matrices are used to store 428 : // atmospheric calibration information in the Measurement Equation 429 : // formalism. 430 : // </etymology> 431 : // 432 : // <example> 433 : // <srcblock> 434 : // </srcblock> 435 : // </example> 436 : // 437 : // <motivation> 438 : // Encapsulate read-only access to TJones calibration table columns. 439 : // </motivation> 440 : // 441 : // <todo asof="01/07/01"> 442 : // (i) Deal with non-standard columns. 443 : // </todo> 444 : 445 : class ROTJonesMCol : public ROSolvableVisJonesMCol 446 : { 447 : public: 448 : // Construct from a calibration table 449 : ROTJonesMCol (const TJonesTable& djTable); 450 : 451 : // Default destructor 452 0 : virtual ~ROTJonesMCol() {}; 453 : 454 : protected: 455 : // Prohibit public use of the null constructor, which 456 : // does not produce a usable object. 457 : ROTJonesMCol() {}; 458 : 459 : private: 460 : // Prohibit copy constructor and assignment operator 461 : ROTJonesMCol (const ROTJonesMCol&); 462 : ROTJonesMCol& operator= (const ROTJonesMCol&); 463 : }; 464 : 465 : // <summary> 466 : // TJonesMCol: RW TJones cal_main column access 467 : // </summary> 468 : 469 : // <use visibility=export> 470 : 471 : // <reviewed reviewer="" date="" tests="" demos=""> 472 : 473 : // <prerequisite> 474 : // <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module 475 : // </prerequisite> 476 : // 477 : // <etymology> 478 : // From "TJones","cal main table" and "columns". 479 : // </etymology> 480 : // 481 : // <synopsis> 482 : // The TJonesMCol class allows read-write access to columns in the 483 : // TJones main calibration table. TJones matrices are used to store 484 : // atmospheric calibration information in the Measurement Equation 485 : // formalism. 486 : // </etymology> 487 : // 488 : // <example> 489 : // <srcblock> 490 : // </srcblock> 491 : // </example> 492 : // 493 : // <motivation> 494 : // Encapsulate read-write access to TJones calibration table columns. 495 : // </motivation> 496 : // 497 : // <todo asof="01/07/01"> 498 : // (i) Deal with non-standard columns. 499 : // </todo> 500 : 501 : class TJonesMCol : public SolvableVisJonesMCol 502 : { 503 : public: 504 : // Construct from a calibration table 505 : TJonesMCol (TJonesTable& djTable); 506 : 507 : // Default destructor 508 0 : virtual ~TJonesMCol() {}; 509 : 510 : protected: 511 : // Prohibit public use of the null constructor, which 512 : // does not produce a usable object. 513 : TJonesMCol() {}; 514 : 515 : private: 516 : // Prohibit copy constructor and assignment operator 517 : TJonesMCol (const TJonesMCol&); 518 : TJonesMCol& operator= (const TJonesMCol&); 519 : }; 520 : 521 : 522 : } //# NAMESPACE CASA - END 523 : 524 : #endif 525 : 526 : 527 : 528 : 529 :