casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
BJonesMCol.h
Go to the documentation of this file.
00001 //# BJonesMCol.h: BJones cal_main table column access
00002 //# Copyright (C) 1996,1997,1998,2001,2002,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_BJONESMCOL_H
00030 #define CALIBRATION_BJONESMCOL_H
00031 
00032 #include <synthesis/CalTables/SolvableVJMCol.h>
00033 #include <synthesis/CalTables/BJonesTable.h>
00034 
00035 namespace casa { //# NAMESPACE CASA - BEGIN
00036 
00037 // <summary> 
00038 // ROBJonesMCol: Read-only BJones 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","BJones","cal main" and "columns".
00051 // </etymology>
00052 //
00053 // <synopsis>
00054 // The ROBJonesMCol class allows read-only access to columns in the
00055 // BJones main calibration table. BJones matrices are used to store
00056 // bandpass information in the Measurement Equation formalism.
00057 // </etymology>
00058 //
00059 // <example>
00060 // <srcblock>
00061 // </srcblock>
00062 // </example>
00063 //
00064 // <motivation>
00065 // Encapsulate read-only access to BJones calibration table columns.
00066 // </motivation>
00067 //
00068 // <todo asof="01/07/01">
00069 // (i) Deal with non-standard columns.
00070 // </todo>
00071 
00072 class ROBJonesMCol : public ROSolvableVisJonesMCol
00073 {
00074  public:
00075   // Construct from a calibration table
00076   ROBJonesMCol (const BJonesTable& bjTable);
00077 
00078   // Default destructor
00079   virtual ~ROBJonesMCol() {};
00080 
00081  protected:
00082   // Prohibit public use of the null constructor, which
00083   // does not produce a usable object.
00084   ROBJonesMCol() {};
00085 
00086  private:
00087   // Prohibit copy constructor and assignment operator 
00088   ROBJonesMCol (const ROBJonesMCol&);
00089   ROBJonesMCol& operator= (const ROBJonesMCol&);
00090 };
00091 
00092 // <summary> 
00093 // BJonesMCol: RW BJones cal_main column access
00094 // </summary>
00095 
00096 // <use visibility=export>
00097 
00098 // <reviewed reviewer="" date="" tests="" demos="">
00099 
00100 // <prerequisite>
00101 //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
00102 // </prerequisite>
00103 //
00104 // <etymology>
00105 // From "BJones","cal main table" and "columns".
00106 // </etymology>
00107 //
00108 // <synopsis>
00109 // The BJonesMCol class allows read-write access to columns in the
00110 // BJones main calibration table. BJones matrices are used to store
00111 // bandpass information in the Measurement Equation formalism.
00112 // </etymology>
00113 //
00114 // <example>
00115 // <srcblock>
00116 // </srcblock>
00117 // </example>
00118 //
00119 // <motivation>
00120 // Encapsulate read-write access to BJones calibration table columns.
00121 // </motivation>
00122 //
00123 // <todo asof="01/07/01">
00124 // (i) Deal with non-standard columns.
00125 // </todo>
00126 
00127 class BJonesMCol : public SolvableVisJonesMCol
00128 {
00129  public:
00130   // Construct from a calibration table
00131   BJonesMCol (BJonesTable& bjTable);
00132 
00133   // Default destructor
00134   virtual ~BJonesMCol() {};
00135 
00136  protected:
00137   // Prohibit public use of the null constructor, which
00138   // does not produce a usable object.
00139   BJonesMCol() {};
00140 
00141  private:
00142   // Prohibit copy constructor and assignment operator 
00143   BJonesMCol (const BJonesMCol&);
00144   BJonesMCol& operator= (const BJonesMCol&);
00145 };
00146 
00147 
00148 // <summary> 
00149 // ROBJonesPolyMCol: Read-only BJonesPoly cal_main column access
00150 // </summary>
00151 
00152 // <use visibility=export>
00153 
00154 // <reviewed reviewer="" date="" tests="" demos="">
00155 
00156 // <prerequisite>
00157 //  <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module
00158 // </prerequisite>
00159 //
00160 // <etymology>
00161 // From "read-only","BJonesPoly","cal main" and "columns".
00162 // </etymology>
00163 //
00164 // <synopsis>
00165 // The ROBJonesPolyMCol class allows read-only access to columns in the
00166 // BJonesPoly main calibration table. BJonesPoly matrices are used to store
00167 // bandpass information in the Measurement Equation formalism in polynomial
00168 // form.
00169 // </etymology>
00170 //
00171 // <example>
00172 // <srcblock>
00173 // </srcblock>
00174 // </example>
00175 //
00176 // <motivation>
00177 // Encapsulate read-only access to BJonesPoly calibration table columns.
00178 // </motivation>
00179 //
00180 // <todo asof="01/07/01">
00181 // (i) Deal with non-standard columns.
00182 // </todo>
00183 
00184 class ROBJonesPolyMCol : public ROBJonesMCol
00185 {
00186  public:
00187   // Construct from a calibration table
00188   ROBJonesPolyMCol (const BJonesPolyTable& bjTable);
00189 
00190   // Default destructor
00191   virtual ~ROBJonesPolyMCol() {};
00192 
00193   // Read-only column accessors
00194   const ROScalarColumn<String>& polyType() const {return polyType_p;};
00195   const ROScalarColumn<String>& polyMode() const {return polyMode_p;};
00196   const ROScalarColumn<Complex>& scaleFactor() const {return scaleFactor_p;};
00197   const ROArrayColumn<Double>& validDomain() const {return validDomain_p;};
00198   const ROScalarColumn<Int>& nPolyAmp() const {return nPolyAmp_p;};
00199   const ROScalarColumn<Int>& nPolyPhase() const {return nPolyPhase_p;};
00200   const ROArrayColumn<Double>& polyCoeffAmp() const {return polyCoeffAmp_p;};
00201   const ROArrayColumn<Double>& polyCoeffPhase() const 
00202     {return polyCoeffPhase_p;};
00203   const ROScalarColumn<String>& phaseUnits() const {return phaseUnits_p;};
00204   const ROScalarColumn<Complex>& sideBandRef() const {return sideBandRef_p;};
00205 
00206  protected:
00207   // Prohibit public use of the null constructor, which
00208   // does not produce a usable object.
00209   ROBJonesPolyMCol() {};
00210 
00211  private:
00212   // Prohibit copy constructor and assignment operator 
00213   ROBJonesPolyMCol (const ROBJonesPolyMCol&);
00214   ROBJonesPolyMCol& operator= (const ROBJonesPolyMCol&);
00215 
00216   // Private column accessors
00217   ROScalarColumn<String> polyType_p;
00218   ROScalarColumn<String> polyMode_p;
00219   ROScalarColumn<Complex> scaleFactor_p;
00220   ROArrayColumn<Double> validDomain_p;
00221   ROScalarColumn<Int> nPolyAmp_p;
00222   ROScalarColumn<Int> nPolyPhase_p;
00223   ROArrayColumn<Double> polyCoeffAmp_p;
00224   ROArrayColumn<Double> polyCoeffPhase_p;
00225   ROScalarColumn<String> phaseUnits_p;
00226   ROScalarColumn<Complex> sideBandRef_p;
00227 };
00228 
00229 // <summary> 
00230 // BJonesPolyMCol: RW BJonesPoly cal_main column access
00231 // </summary>
00232 
00233 // <use visibility=export>
00234 
00235 // <reviewed reviewer="" date="" tests="" demos="">
00236 
00237 // <prerequisite>
00238 //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
00239 // </prerequisite>
00240 //
00241 // <etymology>
00242 // From "BJonesPoly","cal main table" and "columns".
00243 // </etymology>
00244 //
00245 // <synopsis>
00246 // The BJonesPolyMCol class allows read-write access to columns in the
00247 // BJonesPoly main calibration table. BJonesPoly matrices are used to store
00248 // bandpass information in the Measurement Equation formalism in polynomial
00249 // form.
00250 // </etymology>
00251 //
00252 // <example>
00253 // <srcblock>
00254 // </srcblock>
00255 // </example>
00256 //
00257 // <motivation>
00258 // Encapsulate read-write access to BJonesPoly calibration table columns.
00259 // </motivation>
00260 //
00261 // <todo asof="01/07/01">
00262 // (i) Deal with non-standard columns.
00263 // </todo>
00264 
00265 class BJonesPolyMCol : public BJonesMCol
00266 {
00267  public:
00268   // Construct from a calibration table
00269   BJonesPolyMCol (BJonesPolyTable& bjTable);
00270 
00271   // Default destructor
00272   virtual ~BJonesPolyMCol() {};
00273 
00274   // Read-write column accessors
00275   ScalarColumn<String>& polyType() {return polyType_p;};
00276   ScalarColumn<String>& polyMode() {return polyMode_p;};
00277   ScalarColumn<Complex>& scaleFactor() {return scaleFactor_p;};
00278   ArrayColumn<Double>& validDomain() {return validDomain_p;};
00279   ScalarColumn<Int>& nPolyAmp() {return nPolyAmp_p;};
00280   ScalarColumn<Int>& nPolyPhase() {return nPolyPhase_p;};
00281   ArrayColumn<Double>& polyCoeffAmp() {return polyCoeffAmp_p;};
00282   ArrayColumn<Double>& polyCoeffPhase() {return polyCoeffPhase_p;};
00283   ScalarColumn<String>& phaseUnits() {return phaseUnits_p;};
00284   ScalarColumn<Complex>& sideBandRef() {return sideBandRef_p;};
00285 
00286  protected:
00287   // Prohibit public use of the null constructor, which
00288   // does not produce a usable object.
00289   BJonesPolyMCol() {};
00290 
00291  private:
00292   // Prohibit copy constructor and assignment operator 
00293   BJonesPolyMCol (const BJonesPolyMCol&);
00294   BJonesPolyMCol& operator= (const BJonesPolyMCol&);
00295 
00296   // Private column accessors
00297   ScalarColumn<String> polyType_p;
00298   ScalarColumn<String> polyMode_p;
00299   ScalarColumn<Complex> scaleFactor_p;
00300   ArrayColumn<Double> validDomain_p;
00301   ScalarColumn<Int> nPolyAmp_p;
00302   ScalarColumn<Int> nPolyPhase_p;
00303   ArrayColumn<Double> polyCoeffAmp_p;
00304   ArrayColumn<Double> polyCoeffPhase_p;
00305   ScalarColumn<String> phaseUnits_p;
00306   ScalarColumn<Complex> sideBandRef_p;
00307 };
00308 
00309 
00310 } //# NAMESPACE CASA - END
00311 
00312 #endif
00313    
00314   
00315 
00316 
00317