casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
EPointMCol.h
Go to the documentation of this file.
00001 //# EPointJonesMCol.h: SolvableVisJones cal_main table column access
00002 //# Copyright (C) 1996,1997,1998,2001,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_EPOINTMCOL_H
00030 #define CALIBRATION_EPOINTMCOL_H
00031 
00032 #include <synthesis/CalTables/SolvableVJMCol.h>
00033 #include <synthesis/CalTables/SolvableVJTable.h>
00034 #include <synthesis/CalTables/EPointTable.h>
00035 
00036 namespace casa {
00037 class ROEPointMCol : public ROSolvableVisJonesMCol
00038 {
00039  public:
00040   // Construct from a calibration table
00041   ROEPointMCol (const EPointTable& epTable);
00042 
00043   // Default destructor
00044   virtual ~ROEPointMCol() {};
00045 
00046   // Read-only column accessors
00047 
00048   const ROArrayColumn<Float>& pointingOffset() const {return pointingOffset_p;}
00049 
00050  protected:
00051   // Prohibit public use of the null constructor, which
00052   // does not produce a usable object.
00053   ROEPointMCol() {};
00054 
00055  private:
00056   // Prohibit copy constructor and assignment operator 
00057   ROEPointMCol (const ROEPointMCol&);
00058   ROEPointMCol& operator= (const ROEPointMCol&);
00059 
00060   // Private column accessors
00061   ROArrayColumn<Float> pointingOffset_p;
00062 };
00063 
00064 // <summary> 
00065 // EPointJonesMCol: RW SolvableVisJones cal_main column access
00066 // </summary>
00067 
00068 // <use visibility=export>
00069 
00070 // <reviewed reviewer="" date="" tests="" demos="">
00071 
00072 // <prerequisite>
00073 //   <li> <linkto class="CalMainColumns">CalMainColumns</linkto> module
00074 // </prerequisite>
00075 //
00076 // <etymology>
00077 // From "solvable visibility Jones","cal main table" and "columns".
00078 // </etymology>
00079 //
00080 // <synopsis>
00081 // The EPointJonesMCol class allows read-write access to columns in the
00082 // SolvableVisJones main calibration table. Specializations for individual
00083 // solvable Jones matrix types (e.g. GJones) are provided through inheritance.
00084 // </etymology>
00085 //
00086 // <example>
00087 // <srcblock>
00088 // </srcblock>
00089 // </example>
00090 //
00091 // <motivation>
00092 // Encapsulate read-write access to SVJ calibration table columns.
00093 // </motivation>
00094 //
00095 // <todo asof="01/07/01">
00096 // (i) Deal with non-standard columns.
00097 // </todo>
00098 
00099 class EPointMCol : public SolvableVisJonesMCol
00100 {
00101  public:
00102   // Construct from a calibration table
00103   EPointMCol (EPointTable& epTable);
00104 
00105   // Default destructor
00106   virtual ~EPointMCol() {};
00107 
00108   // Read-write column accessors
00109   ArrayColumn<Float>& pointingOffset() {return pointingOffset_p;};
00110 
00111  protected:
00112   // Prohibit public use of the null constructor, which
00113   // does not produce a usable object.
00114   EPointMCol() {};
00115 
00116  private:
00117   // Prohibit copy constructor and assignment operator 
00118   EPointMCol (const EPointMCol&);
00119   EPointMCol& operator= (const EPointMCol&);
00120 
00121   // Private column accessors
00122   ArrayColumn<Float> pointingOffset_p;
00123 };
00124 }
00125 #endif