casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SolvableVJMRec.h
Go to the documentation of this file.
00001 //# SolvableVJMRec.h: SolvableVisJones 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_SOLVABLEVJMREC_H
00030 #define CALIBRATION_SOLVABLEVJMREC_H
00031 
00032 #include <casa/aips.h>
00033 #include <synthesis/CalTables/TimeVarVJMRec.h>
00034 
00035 namespace casa { //# NAMESPACE CASA - BEGIN
00036 
00037 // <summary> 
00038 // SolvableVisJonesMRec: SolvableVisJones cal_main table record access/creation
00039 // </summary>
00040 
00041 // <use visibility=export>
00042 
00043 // <reviewed reviewer="" date="" tests="" demos="">
00044 
00045 // <prerequisite>
00046 // <li> <linkto class="CalMainRecord">CalMainRecord</linkto> module
00047 // <li> <linkto class="VisJonesMRec">VisJonesMRec</linkto> module
00048 // <li> <linkto class="TimeVarVisJonesMRec">TimeVarVisJonesMRec</linkto> module
00049 // </prerequisite>
00050 //
00051 // <etymology>
00052 // From "solvable VisJones" and "main record".
00053 // </etymology>
00054 //
00055 // <synopsis>
00056 // The SolvableVisJonesMRec class allows the creation of records for the
00057 // main calibration table of SolvableVisJones type, and provides access
00058 // to the individual record fields. Specializations for GJones, DJones,
00059 // TJones and BJones calibration table records are provided through 
00060 // inheritance.
00061 // </etymology>
00062 //
00063 // <example>
00064 // <srcblock>
00065 // </srcblock>
00066 // </example>
00067 //
00068 // <motivation>
00069 // Encapsulate access to SolvableVisJones calibration table records.
00070 // </motivation>
00071 //
00072 // <todo asof="98/01/01">
00073 // (i) Deal with non-standard columns.
00074 // </todo>
00075 
00076 class SolvableVisJonesMRec : public TimeVarVisJonesMRec
00077 {
00078  public:
00079    // Default null constructor, and destructor
00080    SolvableVisJonesMRec();
00081    ~SolvableVisJonesMRec() {};
00082 
00083    // Construct from an existing record
00084    SolvableVisJonesMRec (const Record& inpRec);
00085 
00086    // Field accessors
00087    // Note: uses protected functions defined in CalMainRecord,
00088    // as fit parameters are used elsewhere in the inheritance
00089    // tree for baseline-based and image plane calibration tables.
00090    // a) define
00091    void defineTotalSolnOk (const Bool& totalSolnOk) 
00092      {dTotalSolnOk (totalSolnOk);};
00093    void defineTotalFit (const Float& totalFit) {dTotalFit (totalFit);};
00094    void defineTotalFitWgt (const Float& totalFitWgt) 
00095      {dTotalFitWgt (totalFitWgt);};
00096    void defineSolnOk (const Array <Bool>& solnOk) {dSolnOk (solnOk);};
00097    void defineFit (const Array <Float>& fit) {dFit (fit);};
00098    void defineFitWgt (const Array <Float>& fitWgt) {dFitWgt (fitWgt);};
00099 
00100    // b) get
00101    void getTotalSolnOk (Bool& totalSolnOk) {gTotalSolnOk (totalSolnOk);};
00102    void getTotalFit (Float& totalFit) {gTotalFit (totalFit);};
00103    void getTotalFitWgt (Float& totalFitWgt) {gTotalFitWgt (totalFitWgt);};
00104    void getSolnOk (Array <Bool>& solnOk) {gSolnOk (solnOk);};
00105    void getFit (Array <Float>& fit) {gFit (fit);};
00106    void getFitWgt (Array <Float>& fitWgt) {gFitWgt (fitWgt);};
00107  };
00108 
00109 // <summary> 
00110 // GJonesMRec: GJones cal_main table record access & creation
00111 // </summary>
00112 
00113 // <use visibility=export>
00114 
00115 // <reviewed reviewer="" date="" tests="" demos="">
00116 
00117 // <prerequisite>
00118 //<li><linkto class="CalMainRecord">CalMainRecord</linkto> module
00119 //<li><linkto class="VisJonesMRec">VisJonesMRec</linkto> module
00120 //<li><linkto class="SolvableVisJonesMRec">SolvableVisJonesMRec</linkto> module
00121 // </prerequisite>
00122 //
00123 // <etymology>
00124 // From "GJones" and "main record".
00125 // </etymology>
00126 //
00127 // <synopsis>
00128 // The GJonesMRec class allows the creation of records for the
00129 // main calibration table of GJones type, and provides access
00130 // to the individual record fields. GJones matrices are used to
00131 // store electronic information in the Measurement Equation formalism.
00132 // </etymology>
00133 //
00134 // <example>
00135 // <srcblock>
00136 // </srcblock>
00137 // </example>
00138 //
00139 // <motivation>
00140 // Encapsulate access to GJones calibration table records.
00141 // </motivation>
00142 //
00143 // <todo asof="98/01/01">
00144 // (i) Deal with non-standard columns.
00145 // </todo>
00146 
00147 class GJonesMRec : public SolvableVisJonesMRec
00148 {
00149  public:
00150    // Default null constructor, and destructor
00151    GJonesMRec();
00152    ~GJonesMRec() {};
00153 
00154    // Construct from an existing record
00155    GJonesMRec (const Record& inpRec);
00156 
00157 };
00158 
00159 // <summary> 
00160 // DJonesMRec: DJones cal_main table record access & creation
00161 // </summary>
00162 
00163 // <use visibility=export>
00164 
00165 // <reviewed reviewer="" date="" tests="" demos="">
00166 
00167 // <prerequisite>
00168 //<li><linkto class="CalMainRecord">CalMainRecord</linkto> module
00169 //<li><linkto class="VisJonesMRec">VisJonesMRec</linkto> module
00170 //<li><linkto class="SolvableVisJonesMRec">SolvableVisJonesMRec</linkto> module
00171 // </prerequisite>
00172 //
00173 // <etymology>
00174 // From "DJones" and "main record".
00175 // </etymology>
00176 //
00177 // <synopsis>
00178 // The DJonesMRec class allows the creation of records for the
00179 // main calibration table of DJones type, and provides access
00180 // to the individual record fields. DJones matrices are used
00181 // to store instrumental polarization information in the
00182 // Measurement Equation formalism.
00183 // </etymology>
00184 //
00185 // <example>
00186 // <srcblock>
00187 // </srcblock>
00188 // </example>
00189 //
00190 // <motivation>
00191 // Encapsulate access to DJones calibration table records.
00192 // </motivation>
00193 //
00194 // <todo asof="98/01/01">
00195 // (i) Deal with non-standard columns.
00196 // </todo>
00197 
00198 class DJonesMRec : public SolvableVisJonesMRec
00199 {
00200  public:
00201    // Default null constructor, and destructor
00202    DJonesMRec();
00203    ~DJonesMRec() {};
00204 
00205    // Construct from an existing record
00206    DJonesMRec (const Record& inpRec);
00207 
00208 };
00209 
00210 // <summary> 
00211 // TJonesMRec: TJones cal_main table record access & creation
00212 // </summary>
00213 
00214 // <use visibility=export>
00215 
00216 // <reviewed reviewer="" date="" tests="" demos="">
00217 
00218 // <prerequisite>
00219 //<li><linkto class="CalMainRecord">CalMainRecord</linkto> module
00220 //<li><linkto class="VisJonesMRec">VisJonesMRec</linkto> module
00221 //<li><linkto class="SolvableVisJonesMRec">SolvableVisJonesMRec</linkto> module
00222 // </prerequisite>
00223 //
00224 // <etymology>
00225 // From "TJones" and "main record".
00226 // </etymology>
00227 //
00228 // <synopsis>
00229 // The TJonesMRec class allows the creation of records for the
00230 // main calibration table of TJones type, and provides access
00231 // to the individual record fields. TJones matrices are used
00232 // to atmospheric corrections in the Measurement Equation formalism.
00233 // </etymology>
00234 //
00235 // <example>
00236 // <srcblock>
00237 // </srcblock>
00238 // </example>
00239 //
00240 // <motivation>
00241 // Encapsulate access to TJones calibration table records.
00242 // </motivation>
00243 //
00244 // <todo asof="98/01/01">
00245 // (i) Deal with non-standard columns.
00246 // </todo>
00247 
00248 class TJonesMRec : public SolvableVisJonesMRec
00249 {
00250  public:
00251    // Default null constructor, and destructor
00252    TJonesMRec();
00253    ~TJonesMRec() {};
00254 
00255    // Construct from an existing record
00256    TJonesMRec (const Record& inpRec);
00257 
00258 };
00259 
00260 
00261 } //# NAMESPACE CASA - END
00262 
00263 #endif
00264    
00265   
00266 
00267 
00268