casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SolvableVJMCol.h
Go to the documentation of this file.
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