casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SolvableMJMRec.h
Go to the documentation of this file.
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