casa
$Rev:20696$
|
00001 //# SolvableMJMRec.h: SolvableMJones cal_main table record access & creation 00002 //# Copyright (C) 1996,1997,1998,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_SOLVABLEMJMREC_H 00030 #define CALIBRATION_SOLVABLEMJMREC_H 00031 00032 #include <synthesis/CalTables/TimeVarMJMRec.h> 00033 00034 namespace casa { //# NAMESPACE CASA - BEGIN 00035 00036 // <summary> 00037 // SolvableMJonesMRec: SolvableMJones cal_main table record access/creation 00038 // </summary> 00039 00040 // <use visibility=export> 00041 00042 // <reviewed reviewer="" date="" tests="" demos=""> 00043 00044 // <prerequisite> 00045 // <li> <linkto class="CalMainRecord">CalMainRecord</linkto> module 00046 // <li> <linkto class="MJonesMRec">MJonesMRec</linkto> module 00047 // <li> <linkto class="TimeVarMJonesMRec">TimeVarMJonesMRec</linkto> module 00048 // </prerequisite> 00049 // 00050 // <etymology> 00051 // From "solvable MJones" and "main record". 00052 // </etymology> 00053 // 00054 // <synopsis> 00055 // The SolvableMJonesMRec class allows the creation of records for the 00056 // main calibration table of SolvableMJones type, and provides access 00057 // to the individual record fields. A specialization for MIfr 00058 // calibration table records is provided through inheritance. 00059 // </etymology> 00060 // 00061 // <example> 00062 // <srcblock> 00063 // </srcblock> 00064 // </example> 00065 // 00066 // <motivation> 00067 // Encapsulate access to SolvableMJones calibration table records. 00068 // </motivation> 00069 // 00070 // <todo asof="98/01/01"> 00071 // (i) Deal with non-standard columns. 00072 // </todo> 00073 00074 class SolvableMJonesMRec : public TimeVarMJonesMRec 00075 { 00076 public: 00077 // Default null constructor, and destructor 00078 SolvableMJonesMRec(); 00079 ~SolvableMJonesMRec() {}; 00080 00081 // Construct from an existing record 00082 SolvableMJonesMRec (const Record& inpRec); 00083 00084 // Field accessors 00085 // Note: uses protected functions defined in CalMainRecord, 00086 // as fit parameters are used elsewhere in the inheritance 00087 // tree for baseline-based and image plane calibration tables. 00088 // a) define 00089 void defineTotalSolnOk (const Bool& totalSolnOk) 00090 {dTotalSolnOk (totalSolnOk);}; 00091 void defineTotalFit (const Float& totalFit) {dTotalFit (totalFit);}; 00092 void defineTotalFitWgt (const Float& totalFitWgt) 00093 {dTotalFitWgt (totalFitWgt);}; 00094 void defineSolnOk (const Array <Bool>& solnOk) {dSolnOk (solnOk);}; 00095 void defineFit (const Array <Float>& fit) {dFit (fit);}; 00096 void defineFitWgt (const Array <Float>& fitWgt) {dFitWgt (fitWgt);}; 00097 00098 // b) get 00099 void getTotalSolnOk (Bool& totalSolnOk) {gTotalSolnOk (totalSolnOk);}; 00100 void getTotalFit (Float& totalFit) {gTotalFit (totalFit);}; 00101 void getTotalFitWgt (Float& totalFitWgt) {gTotalFitWgt (totalFitWgt);}; 00102 void getSolnOk (Array <Bool>& solnOk) {gSolnOk (solnOk);}; 00103 void getFit (Array <Float>& fit) {gFit (fit);}; 00104 void getFitWgt (Array <Float>& fitWgt) {gFitWgt (fitWgt);}; 00105 }; 00106 00107 // <summary> 00108 // MIfrMRec: MIfr cal_main table record access & creation 00109 // </summary> 00110 00111 // <use visibility=export> 00112 00113 // <reviewed reviewer="" date="" tests="" demos=""> 00114 00115 // <prerequisite> 00116 //<li><linkto class="CalMainRecord">CalMainRecord</linkto> module 00117 //<li><linkto class="MJonesMRec">MJonesMRec</linkto> module 00118 //<li><linkto class="SolvableMJonesMRec">SolvableMJonesMRec</linkto> module 00119 // </prerequisite> 00120 // 00121 // <etymology> 00122 // From "MIfr" and "main record". 00123 // </etymology> 00124 // 00125 // <synopsis> 00126 // The MIfrMRec class allows the creation of records for the 00127 // main calibration table of MIfr type, and provides access 00128 // to the individual record fields. MIfr matrices are used to 00129 // store diagonal, multiplicative interferometer-based 00130 // corrections in the Measurement Equation formalism. 00131 // </etymology> 00132 // 00133 // <example> 00134 // <srcblock> 00135 // </srcblock> 00136 // </example> 00137 // 00138 // <motivation> 00139 // Encapsulate access to MIfr calibration table records. 00140 // </motivation> 00141 // 00142 // <todo asof="98/01/01"> 00143 // (i) Deal with non-standard columns. 00144 // </todo> 00145 00146 class MIfrMRec : public SolvableMJonesMRec 00147 { 00148 public: 00149 // Default null constructor, and destructor 00150 MIfrMRec(); 00151 ~MIfrMRec() {}; 00152 00153 // Construct from an existing record 00154 MIfrMRec (const Record& inpRec); 00155 00156 }; 00157 00158 00159 } //# NAMESPACE CASA - END 00160 00161 #endif 00162 00163 00164