casa
$Rev:20696$
|
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