casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SolvableCalSetMCol.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_SOLVABLECALSETMCOL_H
00030 #define CALIBRATION_SOLVABLECALSETMCOL_H
00031 
00032 #include <synthesis/CalTables/CalMainColumns2.h>
00033 #include <synthesis/CalTables/ROCalMainColumns2.h>
00034 #include <synthesis/CalTables/CalTable2.h>
00035 
00036 namespace casa { //# NAMESPACE CASA - BEGIN
00037 
00038 // <summary> 
00039 // ROSolvableVisJonesMCol: Read-only SolvableVisJones cal_main column access
00040 // </summary>
00041 
00042 // <use visibility=export>
00043 
00044 // <reviewed reviewer="" date="" tests="" demos="">
00045 
00046 // <prerequisite>
00047 //   <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module
00048 // </prerequisite>
00049 //
00050 // <etymology>
00051 // From "read-only","solvable visibility Jones","cal main" and "columns".
00052 // </etymology>
00053 //
00054 // <synopsis>
00055 // The ROSolvableVisJonesMCol class allows read-only access to columns in the
00056 // SolvableVisJones main calibration table. Specializations for individual
00057 // solvable Jones matrix types (e.g. GJones) are provided through inheritance.
00058 // </etymology>
00059 //
00060 // <example>
00061 // <srcblock>
00062 // </srcblock>
00063 // </example>
00064 //
00065 // <motivation>
00066 // Encapsulate read-only access to SVJ calibration table columns.
00067 // </motivation>
00068 //
00069 // <todo asof="01/07/01">
00070 // (i) Deal with non-standard columns.
00071 // </todo>
00072 
00073 template <class T>
00074 class ROSolvableCalSetMCol : public  ROCalMainColumns2<T>
00075 {
00076  public:
00077   // Construct from a calibration table
00078   ROSolvableCalSetMCol (const CalTable2& svjTable);
00079 
00080   // Default destructor
00081   virtual ~ROSolvableCalSetMCol() {};
00082 
00083   // Read-only column accessors
00084   const ROScalarColumn<Bool>& totalSolnOk() const {return totalSolnOk_p;};
00085   const ROScalarColumn<Float>& totalFit() const {return totalFit_p;};
00086   const ROScalarColumn<Float>& totalFitWgt() const {return totalFitWgt_p;};
00087   const ROArrayColumn<Bool>& solnOk() const {return solnOk_p;};
00088   const ROArrayColumn<Float>& fit() const {return fit_p;};
00089   const ROArrayColumn<Float>& fitWgt() const {return fitWgt_p;};
00090   const ROArrayColumn<Bool>& flag() const {return flag_p;};
00091   const ROArrayColumn<Float>& snr() const {return snr_p;};
00092 
00093  protected:
00094   // Prohibit public use of the null constructor, which
00095   // does not produce a usable object.
00096   ROSolvableCalSetMCol() {};
00097 
00098  private:
00099   // Prohibit copy constructor and assignment operator 
00100   ROSolvableCalSetMCol (const ROSolvableCalSetMCol&);
00101   ROSolvableCalSetMCol& operator= (const ROSolvableCalSetMCol&);
00102 
00103   // Private column accessors
00104   ROScalarColumn<Bool> totalSolnOk_p;
00105   ROScalarColumn<Float> totalFit_p;
00106   ROScalarColumn<Float> totalFitWgt_p;
00107   ROArrayColumn<Bool> solnOk_p;
00108   ROArrayColumn<Float> fit_p;
00109   ROArrayColumn<Float> fitWgt_p;
00110   ROArrayColumn<Bool> flag_p;
00111   ROArrayColumn<Float> snr_p;
00112 };
00113 
00114 // <summary> 
00115 // SolvableCalSetMCol: RW SolvableCalSet cal_main column access
00116 // </summary>
00117 
00118 // <use visibility=export>
00119 
00120 // <reviewed reviewer="" date="" tests="" demos="">
00121 
00122 // <prerequisite>
00123 //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
00124 // </prerequisite>
00125 //
00126 // <etymology>
00127 // From "solvable visibility Jones","cal main table" and "columns".
00128 // </etymology>
00129 //
00130 // <synopsis>
00131 // The SolvableCalSetMCol class allows read-write access to columns in the
00132 // SolvableCalSet main calibration table. Specializations for individual
00133 // solvable Jones matrix types (e.g. GJones) are provided through inheritance.
00134 // </etymology>
00135 //
00136 // <example>
00137 // <srcblock>
00138 // </srcblock>
00139 // </example>
00140 //
00141 // <motivation>
00142 // Encapsulate read-write access to SVJ calibration table columns.
00143 // </motivation>
00144 //
00145 // <todo asof="01/07/01">
00146 // (i) Deal with non-standard columns.
00147 // </todo>
00148 
00149 template <class T>
00150 class SolvableCalSetMCol : public CalMainColumns2<T>
00151 {
00152  public:
00153   // Construct from a calibration table
00154   SolvableCalSetMCol (CalTable2& svjTable);
00155 
00156   // Default destructor
00157   virtual ~SolvableCalSetMCol() {};
00158 
00159   // Read-write column accessors
00160   ScalarColumn<Bool>& totalSolnOk() {return totalSolnOk_p;};
00161   ScalarColumn<Float>& totalFit() {return totalFit_p;};
00162   ScalarColumn<Float>& totalFitWgt() {return totalFitWgt_p;};
00163   ArrayColumn<Bool>& solnOk() {return solnOk_p;};
00164   ArrayColumn<Float>& fit() {return fit_p;};
00165   ArrayColumn<Float>& fitWgt() {return fitWgt_p;};
00166   ArrayColumn<Bool>& flag() {return flag_p;};
00167   ArrayColumn<Float>& snr() {return snr_p;};
00168 
00169  protected:
00170   // Prohibit public use of the null constructor, which
00171   // does not produce a usable object.
00172   SolvableCalSetMCol() {};
00173 
00174  private:
00175   // Prohibit copy constructor and assignment operator 
00176   SolvableCalSetMCol (const SolvableCalSetMCol&);
00177   SolvableCalSetMCol& operator= (const SolvableCalSetMCol&);
00178 
00179   // Private column accessors
00180   ScalarColumn<Bool> totalSolnOk_p;
00181   ScalarColumn<Float> totalFit_p;
00182   ScalarColumn<Float> totalFitWgt_p;
00183   ArrayColumn<Bool> solnOk_p;
00184   ArrayColumn<Float> fit_p;
00185   ArrayColumn<Float> fitWgt_p;
00186   ArrayColumn<Bool> flag_p;
00187   ArrayColumn<Float> snr_p;
00188 };
00189 
00190 
00191 
00192 } //# NAMESPACE CASA - END
00193 
00194 #ifndef AIPS_NO_TEMPLATE_SRC
00195 #include <synthesis/CalTables/SolvableCalSetMCol.tcc>
00196 #endif
00197 
00198 #endif
00199    
00200   
00201 
00202 
00203