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