LCOV - code coverage report
Current view: top level - synthesis/CalTables - SolvableVJMCol.h (source / functions) Hit Total Coverage
Test: ctest_coverage.info Lines: 10 16 62.5 %
Date: 2023-11-06 10:06:49 Functions: 10 24 41.7 %

          Line data    Source code
       1             : //# SolvableVJMCol.h: SolvableVisJones cal_main table column access
       2             : //# Copyright (C) 1996,1997,1998,2001,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: aips2-request@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_SOLVABLEVJMCOL_H
      30             : #define CALIBRATION_SOLVABLEVJMCOL_H
      31             : 
      32             : #include <synthesis/CalTables/TimeVarVJMCol.h>
      33             : #include <synthesis/CalTables/SolvableVJTable.h>
      34             : 
      35             : namespace casa { //# NAMESPACE CASA - BEGIN
      36             : 
      37             : // <summary> 
      38             : // ROSolvableVisJonesMCol: Read-only SolvableVisJones 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","solvable visibility Jones","cal main" and "columns".
      51             : // </etymology>
      52             : //
      53             : // <synopsis>
      54             : // The ROSolvableVisJonesMCol class allows read-only access to columns in the
      55             : // SolvableVisJones main calibration table. Specializations for individual
      56             : // solvable Jones matrix types (e.g. GJones) are provided through inheritance.
      57             : // </etymology>
      58             : //
      59             : // <example>
      60             : // <srcblock>
      61             : // </srcblock>
      62             : // </example>
      63             : //
      64             : // <motivation>
      65             : // Encapsulate read-only access to SVJ calibration table columns.
      66             : // </motivation>
      67             : //
      68             : // <todo asof="01/07/01">
      69             : // (i) Deal with non-standard columns.
      70             : // </todo>
      71             : 
      72             : class ROSolvableVisJonesMCol : public ROTimeVarVisJonesMCol
      73             : {
      74             :  public:
      75             :   // Construct from a calibration table
      76             :   ROSolvableVisJonesMCol (const SolvableVisJonesTable& svjTable);
      77             : 
      78             :   // Default destructor
      79           0 :   virtual ~ROSolvableVisJonesMCol() {};
      80             : 
      81             :   // Read-only column accessors
      82             :   const casacore::ScalarColumn<casacore::Bool>& totalSolnOk() const {return totalSolnOk_p;};
      83             :   const casacore::ScalarColumn<casacore::Float>& totalFit() const {return totalFit_p;};
      84             :   const casacore::ScalarColumn<casacore::Float>& totalFitWgt() const {return totalFitWgt_p;};
      85             :   const casacore::ArrayColumn<casacore::Bool>& solnOk() const {return solnOk_p;};
      86             :   const casacore::ArrayColumn<casacore::Float>& fit() const {return fit_p;};
      87             :   const casacore::ArrayColumn<casacore::Float>& fitWgt() const {return fitWgt_p;};
      88             :   const casacore::ArrayColumn<casacore::Bool>& flag() const {return flag_p;};
      89             :   const casacore::ArrayColumn<casacore::Float>& snr() const {return snr_p;};
      90             : 
      91             :  protected:
      92             :   // Prohibit public use of the null constructor, which
      93             :   // does not produce a usable object.
      94             :   ROSolvableVisJonesMCol() {};
      95             : 
      96             :  private:
      97             :   // Prohibit copy constructor and assignment operator 
      98             :   ROSolvableVisJonesMCol (const ROSolvableVisJonesMCol&);
      99             :   ROSolvableVisJonesMCol& operator= (const ROSolvableVisJonesMCol&);
     100             : 
     101             :   // Private column accessors
     102             :   casacore::ScalarColumn<casacore::Bool> totalSolnOk_p;
     103             :   casacore::ScalarColumn<casacore::Float> totalFit_p;
     104             :   casacore::ScalarColumn<casacore::Float> totalFitWgt_p;
     105             :   casacore::ArrayColumn<casacore::Bool> solnOk_p;
     106             :   casacore::ArrayColumn<casacore::Float> fit_p;
     107             :   casacore::ArrayColumn<casacore::Float> fitWgt_p;
     108             :   casacore::ArrayColumn<casacore::Bool> flag_p;
     109             :   casacore::ArrayColumn<casacore::Float> snr_p;
     110             : };
     111             : 
     112             : // <summary> 
     113             : // SolvableVisJonesMCol: RW SolvableVisJones cal_main column access
     114             : // </summary>
     115             : 
     116             : // <use visibility=export>
     117             : 
     118             : // <reviewed reviewer="" date="" tests="" demos="">
     119             : 
     120             : // <prerequisite>
     121             : //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
     122             : // </prerequisite>
     123             : //
     124             : // <etymology>
     125             : // From "solvable visibility Jones","cal main table" and "columns".
     126             : // </etymology>
     127             : //
     128             : // <synopsis>
     129             : // The SolvableVisJonesMCol class allows read-write access to columns in the
     130             : // SolvableVisJones main calibration table. Specializations for individual
     131             : // solvable Jones matrix types (e.g. GJones) are provided through inheritance.
     132             : // </etymology>
     133             : //
     134             : // <example>
     135             : // <srcblock>
     136             : // </srcblock>
     137             : // </example>
     138             : //
     139             : // <motivation>
     140             : // Encapsulate read-write access to SVJ calibration table columns.
     141             : // </motivation>
     142             : //
     143             : // <todo asof="01/07/01">
     144             : // (i) Deal with non-standard columns.
     145             : // </todo>
     146             : 
     147             : class SolvableVisJonesMCol : public TimeVarVisJonesMCol
     148             : {
     149             :  public:
     150             :   // Construct from a calibration table
     151             :   SolvableVisJonesMCol (SolvableVisJonesTable& svjTable);
     152             : 
     153             :   // Default destructor
     154           3 :   virtual ~SolvableVisJonesMCol() {};
     155             : 
     156             :   // Read-write column accessors
     157           1 :   casacore::ScalarColumn<casacore::Bool>& totalSolnOk() {return totalSolnOk_p;};
     158           1 :   casacore::ScalarColumn<casacore::Float>& totalFit() {return totalFit_p;};
     159           1 :   casacore::ScalarColumn<casacore::Float>& totalFitWgt() {return totalFitWgt_p;};
     160           1 :   casacore::ArrayColumn<casacore::Bool>& solnOk() {return solnOk_p;};
     161           1 :   casacore::ArrayColumn<casacore::Float>& fit() {return fit_p;};
     162           1 :   casacore::ArrayColumn<casacore::Float>& fitWgt() {return fitWgt_p;};
     163           1 :   casacore::ArrayColumn<casacore::Bool>& flag() {return flag_p;};
     164           1 :   casacore::ArrayColumn<casacore::Float>& snr() {return snr_p;};
     165             : 
     166             :  protected:
     167             :   // Prohibit public use of the null constructor, which
     168             :   // does not produce a usable object.
     169             :   SolvableVisJonesMCol() {};
     170             : 
     171             :  private:
     172             :   // Prohibit copy constructor and assignment operator 
     173             :   SolvableVisJonesMCol (const SolvableVisJonesMCol&);
     174             :   SolvableVisJonesMCol& operator= (const SolvableVisJonesMCol&);
     175             : 
     176             :   // Private column accessors
     177             :   casacore::ScalarColumn<casacore::Bool> totalSolnOk_p;
     178             :   casacore::ScalarColumn<casacore::Float> totalFit_p;
     179             :   casacore::ScalarColumn<casacore::Float> totalFitWgt_p;
     180             :   casacore::ArrayColumn<casacore::Bool> solnOk_p;
     181             :   casacore::ArrayColumn<casacore::Float> fit_p;
     182             :   casacore::ArrayColumn<casacore::Float> fitWgt_p;
     183             :   casacore::ArrayColumn<casacore::Bool> flag_p;
     184             :   casacore::ArrayColumn<casacore::Float> snr_p;
     185             : };
     186             : 
     187             : // <summary> 
     188             : // ROGJonesMCol: Read-only GJones cal_main column access
     189             : // </summary>
     190             : 
     191             : // <use visibility=export>
     192             : 
     193             : // <reviewed reviewer="" date="" tests="" demos="">
     194             : 
     195             : // <prerequisite>
     196             : //  <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module
     197             : // </prerequisite>
     198             : //
     199             : // <etymology>
     200             : // From "read-only","GJones","cal main" and "columns".
     201             : // </etymology>
     202             : //
     203             : // <synopsis>
     204             : // The ROGJonesMCol class allows read-only access to columns in the
     205             : // GJones main calibration table. GJones matrices are used to store
     206             : // electronic gain information in the Measurement Equation formalism.
     207             : // </etymology>
     208             : //
     209             : // <example>
     210             : // <srcblock>
     211             : // </srcblock>
     212             : // </example>
     213             : //
     214             : // <motivation>
     215             : // Encapsulate read-only access to GJones calibration table columns.
     216             : // </motivation>
     217             : //
     218             : // <todo asof="01/07/01">
     219             : // (i) Deal with non-standard columns.
     220             : // </todo>
     221             : 
     222             : class ROGJonesMCol : public ROSolvableVisJonesMCol
     223             : {
     224             :  public:
     225             :   // Construct from a calibration table
     226             :   ROGJonesMCol (const GJonesTable& gjTable);
     227             : 
     228             :   // Default destructor
     229           0 :   virtual ~ROGJonesMCol() {};
     230             : 
     231             :  protected:
     232             :   // Prohibit public use of the null constructor, which
     233             :   // does not produce a usable object.
     234             :   ROGJonesMCol() {};
     235             : 
     236             :  private:
     237             :   // Prohibit copy constructor and assignment operator 
     238             :   ROGJonesMCol (const ROGJonesMCol&);
     239             :   ROGJonesMCol& operator= (const ROGJonesMCol&);
     240             : };
     241             : 
     242             : // <summary> 
     243             : // GJonesMCol: RW GJones cal_main column access
     244             : // </summary>
     245             : 
     246             : // <use visibility=export>
     247             : 
     248             : // <reviewed reviewer="" date="" tests="" demos="">
     249             : 
     250             : // <prerequisite>
     251             : //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
     252             : // </prerequisite>
     253             : //
     254             : // <etymology>
     255             : // From "GJones","cal main table" and "columns".
     256             : // </etymology>
     257             : //
     258             : // <synopsis>
     259             : // The GJonesMCol class allows read-write access to columns in the
     260             : // GJones main calibration table. GJones matrices are used to store
     261             : // electronic gain information in the Measurement Equation formalism.
     262             : // </etymology>
     263             : //
     264             : // <example>
     265             : // <srcblock>
     266             : // </srcblock>
     267             : // </example>
     268             : //
     269             : // <motivation>
     270             : // Encapsulate read-write access to GJones calibration table columns.
     271             : // </motivation>
     272             : //
     273             : // <todo asof="01/07/01">
     274             : // (i) Deal with non-standard columns.
     275             : // </todo>
     276             : 
     277             : class GJonesMCol : public SolvableVisJonesMCol
     278             : {
     279             :  public:
     280             :   // Construct from a calibration table
     281             :   GJonesMCol (GJonesTable& gjTable);
     282             : 
     283             :   // Default destructor
     284           2 :   virtual ~GJonesMCol() {};
     285             : 
     286             :  protected:
     287             :   // Prohibit public use of the null constructor, which
     288             :   // does not produce a usable object.
     289             :   GJonesMCol() {};
     290             : 
     291             :  private:
     292             :   // Prohibit copy constructor and assignment operator 
     293             :   GJonesMCol (const GJonesMCol&);
     294             :   GJonesMCol& operator= (const GJonesMCol&);
     295             : };
     296             : 
     297             : // <summary> 
     298             : // RODJonesMCol: Read-only DJones cal_main column access
     299             : // </summary>
     300             : 
     301             : // <use visibility=export>
     302             : 
     303             : // <reviewed reviewer="" date="" tests="" demos="">
     304             : 
     305             : // <prerequisite>
     306             : //  <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module
     307             : // </prerequisite>
     308             : //
     309             : // <etymology>
     310             : // From "read-only","DJones","cal main" and "columns".
     311             : // </etymology>
     312             : //
     313             : // <synopsis>
     314             : // The RODJonesMCol class allows read-only access to columns in the
     315             : // DJones main calibration table. DJones matrices are used to store
     316             : // instrumental polarization calibration information in the 
     317             : // Measurement Equation formalism.
     318             : // </etymology>
     319             : //
     320             : // <example>
     321             : // <srcblock>
     322             : // </srcblock>
     323             : // </example>
     324             : //
     325             : // <motivation>
     326             : // Encapsulate read-only access to DJones calibration table columns.
     327             : // </motivation>
     328             : //
     329             : // <todo asof="01/07/01">
     330             : // (i) Deal with non-standard columns.
     331             : // </todo>
     332             : 
     333             : class RODJonesMCol : public ROSolvableVisJonesMCol
     334             : {
     335             :  public:
     336             :   // Construct from a calibration table
     337             :   RODJonesMCol (const DJonesTable& djTable);
     338             : 
     339             :   // Default destructor
     340           0 :   virtual ~RODJonesMCol() {};
     341             : 
     342             :  protected:
     343             :   // Prohibit public use of the null constructor, which
     344             :   // does not produce a usable object.
     345             :   RODJonesMCol() {};
     346             : 
     347             :  private:
     348             :   // Prohibit copy constructor and assignment operator 
     349             :   RODJonesMCol (const RODJonesMCol&);
     350             :   RODJonesMCol& operator= (const RODJonesMCol&);
     351             : };
     352             : 
     353             : // <summary> 
     354             : // DJonesMCol: RW DJones cal_main column access
     355             : // </summary>
     356             : 
     357             : // <use visibility=export>
     358             : 
     359             : // <reviewed reviewer="" date="" tests="" demos="">
     360             : 
     361             : // <prerequisite>
     362             : //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
     363             : // </prerequisite>
     364             : //
     365             : // <etymology>
     366             : // From "DJones","cal main table" and "columns".
     367             : // </etymology>
     368             : //
     369             : // <synopsis>
     370             : // The DJonesMCol class allows read-write access to columns in the
     371             : // DJones main calibration table. DJones matrices are used to store
     372             : // instrumental polarization calibration information in the Measurement 
     373             : // Equation formalism.
     374             : // </etymology>
     375             : //
     376             : // <example>
     377             : // <srcblock>
     378             : // </srcblock>
     379             : // </example>
     380             : //
     381             : // <motivation>
     382             : // Encapsulate read-write access to DJones calibration table columns.
     383             : // </motivation>
     384             : //
     385             : // <todo asof="01/07/01">
     386             : // (i) Deal with non-standard columns.
     387             : // </todo>
     388             : 
     389             : class DJonesMCol : public SolvableVisJonesMCol
     390             : {
     391             :  public:
     392             :   // Construct from a calibration table
     393             :   DJonesMCol (DJonesTable& djTable);
     394             : 
     395             :   // Default destructor
     396           0 :   virtual ~DJonesMCol() {};
     397             : 
     398             :  protected:
     399             :   // Prohibit public use of the null constructor, which
     400             :   // does not produce a usable object.
     401             :   DJonesMCol() {};
     402             : 
     403             :  private:
     404             :   // Prohibit copy constructor and assignment operator 
     405             :   DJonesMCol (const DJonesMCol&);
     406             :   DJonesMCol& operator= (const DJonesMCol&);
     407             : };
     408             : 
     409             : // <summary> 
     410             : // ROTJonesMCol: Read-only TJones cal_main column access
     411             : // </summary>
     412             : 
     413             : // <use visibility=export>
     414             : 
     415             : // <reviewed reviewer="" date="" tests="" demos="">
     416             : 
     417             : // <prerequisite>
     418             : //  <li> <linkto class="ROCalMainColumns">ROCalMainColumns</linkto> module
     419             : // </prerequisite>
     420             : //
     421             : // <etymology>
     422             : // From "read-only","TJones","cal main" and "columns".
     423             : // </etymology>
     424             : //
     425             : // <synopsis>
     426             : // The ROTJonesMCol class allows read-only access to columns in the
     427             : // TJones main calibration table. TJones matrices are used to store
     428             : // atmospheric calibration information in the Measurement Equation 
     429             : // formalism.
     430             : // </etymology>
     431             : //
     432             : // <example>
     433             : // <srcblock>
     434             : // </srcblock>
     435             : // </example>
     436             : //
     437             : // <motivation>
     438             : // Encapsulate read-only access to TJones calibration table columns.
     439             : // </motivation>
     440             : //
     441             : // <todo asof="01/07/01">
     442             : // (i) Deal with non-standard columns.
     443             : // </todo>
     444             : 
     445             : class ROTJonesMCol : public ROSolvableVisJonesMCol
     446             : {
     447             :  public:
     448             :   // Construct from a calibration table
     449             :   ROTJonesMCol (const TJonesTable& djTable);
     450             : 
     451             :   // Default destructor
     452           0 :   virtual ~ROTJonesMCol() {};
     453             : 
     454             :  protected:
     455             :   // Prohibit public use of the null constructor, which
     456             :   // does not produce a usable object.
     457             :   ROTJonesMCol() {};
     458             : 
     459             :  private:
     460             :   // Prohibit copy constructor and assignment operator 
     461             :   ROTJonesMCol (const ROTJonesMCol&);
     462             :   ROTJonesMCol& operator= (const ROTJonesMCol&);
     463             : };
     464             : 
     465             : // <summary> 
     466             : // TJonesMCol: RW TJones cal_main column access
     467             : // </summary>
     468             : 
     469             : // <use visibility=export>
     470             : 
     471             : // <reviewed reviewer="" date="" tests="" demos="">
     472             : 
     473             : // <prerequisite>
     474             : //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
     475             : // </prerequisite>
     476             : //
     477             : // <etymology>
     478             : // From "TJones","cal main table" and "columns".
     479             : // </etymology>
     480             : //
     481             : // <synopsis>
     482             : // The TJonesMCol class allows read-write access to columns in the
     483             : // TJones main calibration table. TJones matrices are used to store
     484             : // atmospheric calibration information in the Measurement Equation 
     485             : // formalism.
     486             : // </etymology>
     487             : //
     488             : // <example>
     489             : // <srcblock>
     490             : // </srcblock>
     491             : // </example>
     492             : //
     493             : // <motivation>
     494             : // Encapsulate read-write access to TJones calibration table columns.
     495             : // </motivation>
     496             : //
     497             : // <todo asof="01/07/01">
     498             : // (i) Deal with non-standard columns.
     499             : // </todo>
     500             : 
     501             : class TJonesMCol : public SolvableVisJonesMCol
     502             : {
     503             :  public:
     504             :   // Construct from a calibration table
     505             :   TJonesMCol (TJonesTable& djTable);
     506             : 
     507             :   // Default destructor
     508           0 :   virtual ~TJonesMCol() {};
     509             : 
     510             :  protected:
     511             :   // Prohibit public use of the null constructor, which
     512             :   // does not produce a usable object.
     513             :   TJonesMCol() {};
     514             : 
     515             :  private:
     516             :   // Prohibit copy constructor and assignment operator 
     517             :   TJonesMCol (const TJonesMCol&);
     518             :   TJonesMCol& operator= (const TJonesMCol&);
     519             : };
     520             : 
     521             : 
     522             : } //# NAMESPACE CASA - END
     523             : 
     524             : #endif
     525             :    
     526             :   
     527             : 
     528             : 
     529             : 

Generated by: LCOV version 1.16