LCOV - code coverage report
Current view: top level - synthesis/CalTables - GJonesMCol.h (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 0 16 0.0 %
Date: 2024-10-12 00:35:29 Functions: 0 20 0.0 %

          Line data    Source code
       1             : //# GJonesMCol.h: GJones cal_main table column access
       2             : //# Copyright (C) 1996,1997,1998,2001,2002,2003
       3             : //# Associated Universities, Inc. Washington DC, USA.
       4             : //#
       5             : //# This library is free software; you can redistribute it and/or modify it
       6             : //# under the terms of the GNU Library General Public License as published by
       7             : //# the Free Software Foundation; either version 2 of the License, or (at your
       8             : //# option) any later version.
       9             : //#
      10             : //# This library is distributed in the hope that it will be useful, but WITHOUT
      11             : //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      12             : //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
      13             : //# License for more details.
      14             : //#
      15             : //# You should have received a copy of the GNU Library General Public License
      16             : //# along with this library; if not, write to the Free Software Foundation,
      17             : //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
      18             : //#
      19             : //# Correspondence concerning AIPS++ should be adressed as follows:
      20             : //#        Internet email: casa-feedback@nrao.edu.
      21             : //#        Postal address: AIPS++ Project Office
      22             : //#                        National Radio Astronomy Observatory
      23             : //#                        520 Edgemont Road
      24             : //#                        Charlottesville, VA 22903-2475 USA
      25             : //#
      26             : //#
      27             : //# $Id$
      28             : 
      29             : #ifndef CALIBRATION_GJONESMCOL_H
      30             : #define CALIBRATION_GJONESMCOL_H
      31             : 
      32             : #include <synthesis/CalTables/SolvableVJMCol.h>
      33             : #include <synthesis/CalTables/GJonesTable.h>
      34             : 
      35             : namespace casa { //# NAMESPACE CASA - BEGIN
      36             : 
      37             : // <summary> 
      38             : // ROGJonesPolyMCol: Read-only GJonesPoly cal_main column access
      39             : // </summary>
      40             : 
      41             : // <use visibility=export>
      42             : 
      43             : // <reviewed reviewer="" date="" tests="" demos="">
      44             : 
      45             : // <prerequisite>
      46             : //  <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module
      47             : // </prerequisite>
      48             : //
      49             : // <etymology>
      50             : // From "read-only","GJonesPoly","cal main" and "columns".
      51             : // </etymology>
      52             : //
      53             : // <synopsis>
      54             : // The ROGJonesPolyMCol class allows read-only access to columns in the
      55             : // GJonesPoly main calibration table. GJonesPoly matrices are used to 
      56             : // store electronic gain information in the Measurement Equation formalism 
      57             : // in polynomial form over time.
      58             : // </synopsis>
      59             : //
      60             : // <example>
      61             : // <srcblock>
      62             : // </srcblock>
      63             : // </example>
      64             : //
      65             : // <motivation>
      66             : // Encapsulate read-only access to GJonesPoly calibration table columns.
      67             : // </motivation>
      68             : //
      69             : // <todo asof="02/02/01">
      70             : // (i) Deal with non-standard columns.
      71             : // (ii) Migrate GJonesMCol to this file.
      72             : // </todo>
      73             : 
      74             : class ROGJonesPolyMCol : public ROGJonesMCol
      75             : {
      76             :  public:
      77             :   // Construct from a calibration table
      78             :   ROGJonesPolyMCol (const GJonesPolyTable& gjpTable);
      79             : 
      80             :   // Default destructor
      81           0 :   virtual ~ROGJonesPolyMCol() {};
      82             : 
      83             :   // Read-only column accessors
      84             :   const casacore::ScalarColumn<casacore::String>& polyType() const {return polyType_p;};
      85             :   const casacore::ScalarColumn<casacore::String>& polyMode() const {return polyMode_p;};
      86             :   const casacore::ScalarColumn<casacore::Complex>& scaleFactor() const {return scaleFactor_p;};
      87             :   const casacore::ScalarColumn<casacore::Int>& nPolyAmp() const {return nPolyAmp_p;};
      88             :   const casacore::ScalarColumn<casacore::Int>& nPolyPhase() const {return nPolyPhase_p;};
      89             :   const casacore::ArrayColumn<casacore::Double>& polyCoeffAmp() const {return polyCoeffAmp_p;};
      90             :   const casacore::ArrayColumn<casacore::Double>& polyCoeffPhase() const 
      91             :     {return polyCoeffPhase_p;};
      92             :   const casacore::ScalarColumn<casacore::String>& phaseUnits() const {return phaseUnits_p;};
      93             : 
      94             :  protected:
      95             :   // Prohibit public use of the null constructor, which
      96             :   // does not produce a usable object.
      97             :   ROGJonesPolyMCol() {};
      98             : 
      99             :  private:
     100             :   // Prohibit copy constructor and assignment operator 
     101             :   ROGJonesPolyMCol (const ROGJonesPolyMCol&);
     102             :   ROGJonesPolyMCol& operator= (const ROGJonesPolyMCol&);
     103             : 
     104             :   // Private column accessors
     105             :   casacore::ScalarColumn<casacore::String> polyType_p;
     106             :   casacore::ScalarColumn<casacore::String> polyMode_p;
     107             :   casacore::ScalarColumn<casacore::Complex> scaleFactor_p;
     108             :   casacore::ScalarColumn<casacore::Int> nPolyAmp_p;
     109             :   casacore::ScalarColumn<casacore::Int> nPolyPhase_p;
     110             :   casacore::ArrayColumn<casacore::Double> polyCoeffAmp_p;
     111             :   casacore::ArrayColumn<casacore::Double> polyCoeffPhase_p;
     112             :   casacore::ScalarColumn<casacore::String> phaseUnits_p;
     113             : };
     114             : 
     115             : // <summary> 
     116             : // GJonesPolyMCol: RW GJonesPoly cal_main column access
     117             : // </summary>
     118             : 
     119             : // <use visibility=export>
     120             : 
     121             : // <reviewed reviewer="" date="" tests="" demos="">
     122             : 
     123             : // <prerequisite>
     124             : //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
     125             : // </prerequisite>
     126             : //
     127             : // <etymology>
     128             : // From "GJonesPoly","cal main table" and "columns".
     129             : // </etymology>
     130             : //
     131             : // <synopsis>
     132             : // The GJonesPolyMCol class allows read-only access to columns in the
     133             : // GJonesPoly main calibration table. GJonesPoly matrices are used to 
     134             : // store electronic gain information in the Measurement Equation formalism 
     135             : // in polynomial form over time.
     136             : // </synopsis>
     137             : //
     138             : // <example>
     139             : // <srcblock>
     140             : // </srcblock>
     141             : // </example>
     142             : //
     143             : // <motivation>
     144             : // Encapsulate read-write access to GJonesPoly calibration table columns.
     145             : // </motivation>
     146             : //
     147             : // <todo asof="01/07/01">
     148             : // (i) Deal with non-standard columns.
     149             : // </todo>
     150             : 
     151             : class GJonesPolyMCol : public GJonesMCol
     152             : {
     153             :  public:
     154             :   // Construct from a calibration table
     155             :   GJonesPolyMCol (GJonesPolyTable& gjpTable);
     156             : 
     157             :   // Default destructor
     158           0 :   virtual ~GJonesPolyMCol() {};
     159             : 
     160             :   // Read-write column accessors
     161           0 :   casacore::ScalarColumn<casacore::String>& polyType() {return polyType_p;};
     162           0 :   casacore::ScalarColumn<casacore::String>& polyMode() {return polyMode_p;};
     163           0 :   casacore::ScalarColumn<casacore::Complex>& scaleFactor() {return scaleFactor_p;};
     164           0 :   casacore::ScalarColumn<casacore::Int>& nPolyAmp() {return nPolyAmp_p;};
     165           0 :   casacore::ScalarColumn<casacore::Int>& nPolyPhase() {return nPolyPhase_p;};
     166           0 :   casacore::ArrayColumn<casacore::Double>& polyCoeffAmp() {return polyCoeffAmp_p;};
     167           0 :   casacore::ArrayColumn<casacore::Double>& polyCoeffPhase() {return polyCoeffPhase_p;};
     168           0 :   casacore::ScalarColumn<casacore::String>& phaseUnits() {return phaseUnits_p;};
     169             : 
     170             :  protected:
     171             :   // Prohibit public use of the null constructor, which
     172             :   // does not produce a usable object.
     173             :   GJonesPolyMCol() {};
     174             : 
     175             :  private:
     176             :   // Prohibit copy constructor and assignment operator 
     177             :   GJonesPolyMCol (const GJonesPolyMCol&);
     178             :   GJonesPolyMCol& operator= (const GJonesPolyMCol&);
     179             : 
     180             :   // Private column accessors
     181             :   casacore::ScalarColumn<casacore::String> polyType_p;
     182             :   casacore::ScalarColumn<casacore::String> polyMode_p;
     183             :   casacore::ScalarColumn<casacore::Complex> scaleFactor_p;
     184             :   casacore::ScalarColumn<casacore::Int> nPolyAmp_p;
     185             :   casacore::ScalarColumn<casacore::Int> nPolyPhase_p;
     186             :   casacore::ArrayColumn<casacore::Double> polyCoeffAmp_p;
     187             :   casacore::ArrayColumn<casacore::Double> polyCoeffPhase_p;
     188             :   casacore::ScalarColumn<casacore::String> phaseUnits_p;
     189             : };
     190             : 
     191             : // <summary> 
     192             : // ROGJonesSplineMCol: Read-only GJonesSpline cal_main column access
     193             : // </summary>
     194             : 
     195             : // <use visibility=export>
     196             : 
     197             : // <reviewed reviewer="" date="" tests="" demos="">
     198             : 
     199             : // <prerequisite>
     200             : //  <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module
     201             : // </prerequisite>
     202             : //
     203             : // <etymology>
     204             : // From "read-only","GJonesSpline","cal main" and "columns".
     205             : // </etymology>
     206             : //
     207             : // <synopsis>
     208             : // The ROGJonesSplineMCol class allows read-only access to columns in the
     209             : // GJonesSpline main calibration table. GJonesSpline matrices are used to 
     210             : // store electronic gain information in the Measurement Equation formalism 
     211             : // in spline polynomial form over time.
     212             : // </synopsis>
     213             : //
     214             : // <example>
     215             : // <srcblock>
     216             : // </srcblock>
     217             : // </example>
     218             : //
     219             : // <motivation>
     220             : // Encapsulate read-only access to GJonesSpline calibration table columns.
     221             : // </motivation>
     222             : //
     223             : // <todo asof="02/02/01">
     224             : // (i) Deal with non-standard columns.
     225             : // (ii) Migrate GJonesMCol to this file.
     226             : // </todo>
     227             : 
     228             : class ROGJonesSplineMCol : public ROGJonesPolyMCol
     229             : {
     230             :  public:
     231             :   // Construct from a calibration table
     232             :   ROGJonesSplineMCol (const GJonesSplineTable& gjsTable);
     233             : 
     234             :   // Default destructor
     235           0 :   virtual ~ROGJonesSplineMCol() {};
     236             : 
     237             :   // Read-only column accessors
     238             :   const casacore::ScalarColumn<casacore::Int>& nKnotsAmp() const {return nKnotsAmp_p;};
     239             :   const casacore::ScalarColumn<casacore::Int>& nKnotsPhase() const {return nKnotsPhase_p;};
     240             :   const casacore::ArrayColumn<casacore::Double>& splineKnotsAmp() const 
     241             :     {return splineKnotsAmp_p;};
     242             :   const casacore::ArrayColumn<casacore::Double>& splineKnotsPhase() const
     243             :     {return splineKnotsPhase_p;};
     244             : 
     245             :  protected:
     246             :   // Prohibit public use of the null constructor, which
     247             :   // does not produce a usable object.
     248             :   ROGJonesSplineMCol() {};
     249             : 
     250             :  private:
     251             :   // Prohibit copy constructor and assignment operator 
     252             :   ROGJonesSplineMCol (const ROGJonesSplineMCol&);
     253             :   ROGJonesSplineMCol& operator= (const ROGJonesSplineMCol&);
     254             : 
     255             :   // Private column accessors
     256             :   casacore::ScalarColumn<casacore::Int> nKnotsAmp_p;
     257             :   casacore::ScalarColumn<casacore::Int> nKnotsPhase_p;
     258             :   casacore::ArrayColumn<casacore::Double> splineKnotsAmp_p;
     259             :   casacore::ArrayColumn<casacore::Double> splineKnotsPhase_p;
     260             : };
     261             : 
     262             : // <summary> 
     263             : // GJonesSplineMCol: RW GJonesSpline cal_main column access
     264             : // </summary>
     265             : 
     266             : // <use visibility=export>
     267             : 
     268             : // <reviewed reviewer="" date="" tests="" demos="">
     269             : 
     270             : // <prerequisite>
     271             : //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
     272             : // </prerequisite>
     273             : //
     274             : // <etymology>
     275             : // From "GJonesSpline","cal main table" and "columns".
     276             : // </etymology>
     277             : //
     278             : // <synopsis>
     279             : // The GJonesSplineMCol class allows read-only access to columns in the
     280             : // GJonesSpline main calibration table. GJonesSpline matrices are used to 
     281             : // store electronic gain information in the Measurement Equation formalism 
     282             : // in spline polynomial form over time.
     283             : // </synopsis>
     284             : //
     285             : // <example>
     286             : // <srcblock>
     287             : // </srcblock>
     288             : // </example>
     289             : //
     290             : // <motivation>
     291             : // Encapsulate read-write access to GJonesSpline calibration table columns.
     292             : // </motivation>
     293             : //
     294             : // <todo asof="01/07/01">
     295             : // (i) Deal with non-standard columns.
     296             : // </todo>
     297             : 
     298             : class GJonesSplineMCol : public GJonesPolyMCol
     299             : {
     300             :  public:
     301             :   // Construct from a calibration table
     302             :   GJonesSplineMCol (GJonesSplineTable& gjsTable);
     303             : 
     304             :   // Default destructor
     305           0 :   virtual ~GJonesSplineMCol() {};
     306             : 
     307             :   // Read-write column accessors
     308           0 :   casacore::ScalarColumn<casacore::Int>& nKnotsAmp() {return nKnotsAmp_p;};
     309           0 :   casacore::ScalarColumn<casacore::Int>& nKnotsPhase() {return nKnotsPhase_p;};
     310           0 :   casacore::ArrayColumn<casacore::Double>& splineKnotsAmp() {return splineKnotsAmp_p;};
     311           0 :   casacore::ArrayColumn<casacore::Double>& splineKnotsPhase() {return splineKnotsPhase_p;};
     312             : 
     313             :  protected:
     314             :   // Prohibit public use of the null constructor, which
     315             :   // does not produce a usable object.
     316             :   GJonesSplineMCol() {};
     317             : 
     318             :  private:
     319             :   // Prohibit copy constructor and assignment operator 
     320             :   GJonesSplineMCol (const GJonesSplineMCol&);
     321             :   GJonesSplineMCol& operator= (const GJonesSplineMCol&);
     322             : 
     323             :   // Private column accessors
     324             :   casacore::ScalarColumn<casacore::Int> nKnotsAmp_p;
     325             :   casacore::ScalarColumn<casacore::Int> nKnotsPhase_p;
     326             :   casacore::ArrayColumn<casacore::Double> splineKnotsAmp_p;
     327             :   casacore::ArrayColumn<casacore::Double> splineKnotsPhase_p;
     328             : };
     329             : 
     330             : 
     331             : } //# NAMESPACE CASA - END
     332             : 
     333             : #endif
     334             :    
     335             :   
     336             : 
     337             : 
     338             : 

Generated by: LCOV version 1.16