LCOV - code coverage report
Current view: top level - synthesis/CalTables - BJonesMCol.h (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 0 14 0.0 %
Date: 2024-12-11 20:54:31 Functions: 0 18 0.0 %

          Line data    Source code
       1             : //# BJonesMCol.h: BJones 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_BJONESMCOL_H
      30             : #define CALIBRATION_BJONESMCOL_H
      31             : 
      32             : #include <synthesis/CalTables/SolvableVJMCol.h>
      33             : #include <synthesis/CalTables/BJonesTable.h>
      34             : 
      35             : namespace casa { //# NAMESPACE CASA - BEGIN
      36             : 
      37             : // <summary> 
      38             : // ROBJonesMCol: Read-only BJones 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","BJones","cal main" and "columns".
      51             : // </etymology>
      52             : //
      53             : // <synopsis>
      54             : // The ROBJonesMCol class allows read-only access to columns in the
      55             : // BJones main calibration table. BJones matrices are used to store
      56             : // bandpass information in the Measurement Equation formalism.
      57             : // </etymology>
      58             : //
      59             : // <example>
      60             : // <srcblock>
      61             : // </srcblock>
      62             : // </example>
      63             : //
      64             : // <motivation>
      65             : // Encapsulate read-only access to BJones calibration table columns.
      66             : // </motivation>
      67             : //
      68             : // <todo asof="01/07/01">
      69             : // (i) Deal with non-standard columns.
      70             : // </todo>
      71             : 
      72             : class ROBJonesMCol : public ROSolvableVisJonesMCol
      73             : {
      74             :  public:
      75             :   // Construct from a calibration table
      76             :   ROBJonesMCol (const BJonesTable& bjTable);
      77             : 
      78             :   // Default destructor
      79           0 :   virtual ~ROBJonesMCol() {};
      80             : 
      81             :  protected:
      82             :   // Prohibit public use of the null constructor, which
      83             :   // does not produce a usable object.
      84             :   ROBJonesMCol() {};
      85             : 
      86             :  private:
      87             :   // Prohibit copy constructor and assignment operator 
      88             :   ROBJonesMCol (const ROBJonesMCol&);
      89             :   ROBJonesMCol& operator= (const ROBJonesMCol&);
      90             : };
      91             : 
      92             : // <summary> 
      93             : // BJonesMCol: RW BJones cal_main column access
      94             : // </summary>
      95             : 
      96             : // <use visibility=export>
      97             : 
      98             : // <reviewed reviewer="" date="" tests="" demos="">
      99             : 
     100             : // <prerequisite>
     101             : //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
     102             : // </prerequisite>
     103             : //
     104             : // <etymology>
     105             : // From "BJones","cal main table" and "columns".
     106             : // </etymology>
     107             : //
     108             : // <synopsis>
     109             : // The BJonesMCol class allows read-write access to columns in the
     110             : // BJones main calibration table. BJones matrices are used to store
     111             : // bandpass information in the Measurement Equation formalism.
     112             : // </etymology>
     113             : //
     114             : // <example>
     115             : // <srcblock>
     116             : // </srcblock>
     117             : // </example>
     118             : //
     119             : // <motivation>
     120             : // Encapsulate read-write access to BJones calibration table columns.
     121             : // </motivation>
     122             : //
     123             : // <todo asof="01/07/01">
     124             : // (i) Deal with non-standard columns.
     125             : // </todo>
     126             : 
     127             : class BJonesMCol : public SolvableVisJonesMCol
     128             : {
     129             :  public:
     130             :   // Construct from a calibration table
     131             :   BJonesMCol (BJonesTable& bjTable);
     132             : 
     133             :   // Default destructor
     134           0 :   virtual ~BJonesMCol() {};
     135             : 
     136             :  protected:
     137             :   // Prohibit public use of the null constructor, which
     138             :   // does not produce a usable object.
     139             :   BJonesMCol() {};
     140             : 
     141             :  private:
     142             :   // Prohibit copy constructor and assignment operator 
     143             :   BJonesMCol (const BJonesMCol&);
     144             :   BJonesMCol& operator= (const BJonesMCol&);
     145             : };
     146             : 
     147             : 
     148             : // <summary> 
     149             : // ROBJonesPolyMCol: Read-only BJonesPoly cal_main column access
     150             : // </summary>
     151             : 
     152             : // <use visibility=export>
     153             : 
     154             : // <reviewed reviewer="" date="" tests="" demos="">
     155             : 
     156             : // <prerequisite>
     157             : //  <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module
     158             : // </prerequisite>
     159             : //
     160             : // <etymology>
     161             : // From "read-only","BJonesPoly","cal main" and "columns".
     162             : // </etymology>
     163             : //
     164             : // <synopsis>
     165             : // The ROBJonesPolyMCol class allows read-only access to columns in the
     166             : // BJonesPoly main calibration table. BJonesPoly matrices are used to store
     167             : // bandpass information in the Measurement Equation formalism in polynomial
     168             : // form.
     169             : // </etymology>
     170             : //
     171             : // <example>
     172             : // <srcblock>
     173             : // </srcblock>
     174             : // </example>
     175             : //
     176             : // <motivation>
     177             : // Encapsulate read-only access to BJonesPoly calibration table columns.
     178             : // </motivation>
     179             : //
     180             : // <todo asof="01/07/01">
     181             : // (i) Deal with non-standard columns.
     182             : // </todo>
     183             : 
     184             : class ROBJonesPolyMCol : public ROBJonesMCol
     185             : {
     186             :  public:
     187             :   // Construct from a calibration table
     188             :   ROBJonesPolyMCol (const BJonesPolyTable& bjTable);
     189             : 
     190             :   // Default destructor
     191           0 :   virtual ~ROBJonesPolyMCol() {};
     192             : 
     193             :   // Read-only column accessors
     194             :   const casacore::ScalarColumn<casacore::String>& polyType() const {return polyType_p;};
     195             :   const casacore::ScalarColumn<casacore::String>& polyMode() const {return polyMode_p;};
     196             :   const casacore::ScalarColumn<casacore::Complex>& scaleFactor() const {return scaleFactor_p;};
     197             :   const casacore::ArrayColumn<casacore::Double>& validDomain() const {return validDomain_p;};
     198             :   const casacore::ScalarColumn<casacore::Int>& nPolyAmp() const {return nPolyAmp_p;};
     199             :   const casacore::ScalarColumn<casacore::Int>& nPolyPhase() const {return nPolyPhase_p;};
     200             :   const casacore::ArrayColumn<casacore::Double>& polyCoeffAmp() const {return polyCoeffAmp_p;};
     201             :   const casacore::ArrayColumn<casacore::Double>& polyCoeffPhase() const 
     202             :     {return polyCoeffPhase_p;};
     203             :   const casacore::ScalarColumn<casacore::String>& phaseUnits() const {return phaseUnits_p;};
     204             :   const casacore::ScalarColumn<casacore::Complex>& sideBandRef() const {return sideBandRef_p;};
     205             : 
     206             :  protected:
     207             :   // Prohibit public use of the null constructor, which
     208             :   // does not produce a usable object.
     209             :   ROBJonesPolyMCol() {};
     210             : 
     211             :  private:
     212             :   // Prohibit copy constructor and assignment operator 
     213             :   ROBJonesPolyMCol (const ROBJonesPolyMCol&);
     214             :   ROBJonesPolyMCol& operator= (const ROBJonesPolyMCol&);
     215             : 
     216             :   // Private column accessors
     217             :   casacore::ScalarColumn<casacore::String> polyType_p;
     218             :   casacore::ScalarColumn<casacore::String> polyMode_p;
     219             :   casacore::ScalarColumn<casacore::Complex> scaleFactor_p;
     220             :   casacore::ArrayColumn<casacore::Double> validDomain_p;
     221             :   casacore::ScalarColumn<casacore::Int> nPolyAmp_p;
     222             :   casacore::ScalarColumn<casacore::Int> nPolyPhase_p;
     223             :   casacore::ArrayColumn<casacore::Double> polyCoeffAmp_p;
     224             :   casacore::ArrayColumn<casacore::Double> polyCoeffPhase_p;
     225             :   casacore::ScalarColumn<casacore::String> phaseUnits_p;
     226             :   casacore::ScalarColumn<casacore::Complex> sideBandRef_p;
     227             : };
     228             : 
     229             : // <summary> 
     230             : // BJonesPolyMCol: RW BJonesPoly cal_main column access
     231             : // </summary>
     232             : 
     233             : // <use visibility=export>
     234             : 
     235             : // <reviewed reviewer="" date="" tests="" demos="">
     236             : 
     237             : // <prerequisite>
     238             : //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
     239             : // </prerequisite>
     240             : //
     241             : // <etymology>
     242             : // From "BJonesPoly","cal main table" and "columns".
     243             : // </etymology>
     244             : //
     245             : // <synopsis>
     246             : // The BJonesPolyMCol class allows read-write access to columns in the
     247             : // BJonesPoly main calibration table. BJonesPoly matrices are used to store
     248             : // bandpass information in the Measurement Equation formalism in polynomial
     249             : // form.
     250             : // </etymology>
     251             : //
     252             : // <example>
     253             : // <srcblock>
     254             : // </srcblock>
     255             : // </example>
     256             : //
     257             : // <motivation>
     258             : // Encapsulate read-write access to BJonesPoly calibration table columns.
     259             : // </motivation>
     260             : //
     261             : // <todo asof="01/07/01">
     262             : // (i) Deal with non-standard columns.
     263             : // </todo>
     264             : 
     265             : class BJonesPolyMCol : public BJonesMCol
     266             : {
     267             :  public:
     268             :   // Construct from a calibration table
     269             :   BJonesPolyMCol (BJonesPolyTable& bjTable);
     270             : 
     271             :   // Default destructor
     272           0 :   virtual ~BJonesPolyMCol() {};
     273             : 
     274             :   // Read-write column accessors
     275           0 :   casacore::ScalarColumn<casacore::String>& polyType() {return polyType_p;};
     276           0 :   casacore::ScalarColumn<casacore::String>& polyMode() {return polyMode_p;};
     277           0 :   casacore::ScalarColumn<casacore::Complex>& scaleFactor() {return scaleFactor_p;};
     278           0 :   casacore::ArrayColumn<casacore::Double>& validDomain() {return validDomain_p;};
     279           0 :   casacore::ScalarColumn<casacore::Int>& nPolyAmp() {return nPolyAmp_p;};
     280           0 :   casacore::ScalarColumn<casacore::Int>& nPolyPhase() {return nPolyPhase_p;};
     281           0 :   casacore::ArrayColumn<casacore::Double>& polyCoeffAmp() {return polyCoeffAmp_p;};
     282           0 :   casacore::ArrayColumn<casacore::Double>& polyCoeffPhase() {return polyCoeffPhase_p;};
     283           0 :   casacore::ScalarColumn<casacore::String>& phaseUnits() {return phaseUnits_p;};
     284           0 :   casacore::ScalarColumn<casacore::Complex>& sideBandRef() {return sideBandRef_p;};
     285             : 
     286             :  protected:
     287             :   // Prohibit public use of the null constructor, which
     288             :   // does not produce a usable object.
     289             :   BJonesPolyMCol() {};
     290             : 
     291             :  private:
     292             :   // Prohibit copy constructor and assignment operator 
     293             :   BJonesPolyMCol (const BJonesPolyMCol&);
     294             :   BJonesPolyMCol& operator= (const BJonesPolyMCol&);
     295             : 
     296             :   // Private column accessors
     297             :   casacore::ScalarColumn<casacore::String> polyType_p;
     298             :   casacore::ScalarColumn<casacore::String> polyMode_p;
     299             :   casacore::ScalarColumn<casacore::Complex> scaleFactor_p;
     300             :   casacore::ArrayColumn<casacore::Double> validDomain_p;
     301             :   casacore::ScalarColumn<casacore::Int> nPolyAmp_p;
     302             :   casacore::ScalarColumn<casacore::Int> nPolyPhase_p;
     303             :   casacore::ArrayColumn<casacore::Double> polyCoeffAmp_p;
     304             :   casacore::ArrayColumn<casacore::Double> polyCoeffPhase_p;
     305             :   casacore::ScalarColumn<casacore::String> phaseUnits_p;
     306             :   casacore::ScalarColumn<casacore::Complex> sideBandRef_p;
     307             : };
     308             : 
     309             : 
     310             : } //# NAMESPACE CASA - END
     311             : 
     312             : #endif
     313             :    
     314             :   
     315             : 
     316             : 
     317             : 

Generated by: LCOV version 1.16