casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VPSkyJones.h
Go to the documentation of this file.
1 //# VPSkyJones.h: Definitions of interface for VPSkyJones
2 //# Copyright (C) 1996-2016
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 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 General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU 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 SYNTHESIS_TRANSFORM2_VPSKYJONES_H
30 #define SYNTHESIS_TRANSFORM2_VPSKYJONES_H
31 
32 #include <casa/aips.h>
35 
36 
37 namespace casacore{
38 
39 class Table;
40 }
41 
42 namespace casa { //# NAMESPACE CASA - BEGIN
43 
44 
45 //# Someday, we'll need these forward declarations for Solve in the Jones Matrices
46 class SkyEquation;
47 class SkyModel;
48 
49 namespace refim { //REFIM
50 // <summary> Model the diagonal elements of the Voltage Pattern Sky Jones Matrices </summary>
51 
52 // <use visibility=export>
53 
54 // <reviewed reviewer="" date="" tests="" demos="">
55 
56 // <prerequisite>
57 // <li> <linkto class="SkyEquation">SkyEquation</linkto> class
58 // <li> <linkto class="BeamSkyJones">BeamSkyJones</linkto> class
59 // </prerequisite>
60 //
61 // <etymology>
62 // VP = Voltage Pattern, SkyJones = Sky-based Jones matrices.
63 // This class only deals with the diagonal elements of the
64 // voltage pattern jones matrices.
65 // </etymology>
66 //
67 // <synopsis>
68 //
69 // </synopsis>
70 //
71 // <example>
72 // <srcblock>
73 // </srcblock>
74 // </example>
75 //
76 // <motivation>
77 // To deal with the non-leakage voltage pattern as applied to all casacore::Stokes,
78 // and beam squint (ie, errors in casacore::Stokes V caused by differing RR and
79 // LL beams). Polarization leakage beams are in DBeamSkyJones.
80 // The motivation for this split is differing storage requirements
81 // for the unerlying PBMath types, and different methods available
82 // to VPSkyJones and DBeamSkyJones.
83 // </motivation>
84 //
85 // <todo asof="98/09/01">
86 // <li> Solvable part needs implementation: we need to derive an
87 // image of gradients of the elements of the Jones matrix. See VisJones
88 // for how to do this.
89 // </todo>
90 
91 class VPSkyJones : public BeamSkyJones {
92 
93 public:
94 
95  // constructor from a VP Table
97  const casacore::Quantity &parAngleInc,
98  BeamSquint::SquintType doSquint,
99  const casacore::Quantity &skyPositionThreshold = casacore::Quantity(180.,"deg"));
100 
101  // constructor for default PB type associated with MS
102  VPSkyJones(const casacore::ROMSColumns& msc,
103  casacore::Bool makeDefaultPBsFromMS = true,
104  const casacore::Quantity &parallacticAngleIncrement = casacore::Quantity(720.0, "deg"),
106  const casacore::Quantity &skyPositionThreshold = casacore::Quantity(180.,"deg"));
107 
108 
109  // constructor for common PB type
110  VPSkyJones(const casacore::String& tel,
111  PBMath::CommonPB commonPBType,
112  const casacore::Quantity &parallacticAngleIncrement = casacore::Quantity(720.0, "deg"),
114  const casacore::Quantity &skyPositionThreshold = casacore::Quantity(180.,"deg"));
115 
116  // constructor for given PBMath type
117  VPSkyJones(const casacore::String& tel,
118  PBMath& myPBMath,
119  const casacore::Quantity &parallacticAngleIncrement = casacore::Quantity(720.0, "deg"),
121  const casacore::Quantity &skyPositionThreshold = casacore::Quantity(180.,"deg"));
122 
123 
124  // destructor needed so it's not an abstract baseclass
126 
127  // return SkyJones type
128  ::casa::SkyJones::Type type() {return ::casa::SkyJones::E;};
129 
130  // Is this solveable?
131  virtual casacore::Bool isSolveable() {return false;};
132 
133 
134 
135 protected:
136 
137 private:
138 
139 };
140 
141 } // REFIM END
142 } //# NAMESPACE CASA - END
143 
144 #endif
145 
CommonPB
This enumeration provides a simple way to instantiate the common primary beam models.
Definition: PBMath.h:134
~VPSkyJones()
destructor needed so it&#39;s not an abstract baseclass
Definition: VPSkyJones.h:125
Main interface class to a read/write table.
Definition: Table.h:153
Primary beam envelope class, derived from PBMathInterface.
Definition: PBMath.h:126
SquintType
Allowed Squints: NONE = no squint: PB is centered on the pointing center RR = PB is shifted from poin...
Definition: BeamSquint.h:109
::casa::SkyJones::Type type()
return SkyJones type
Definition: VPSkyJones.h:128
VPSkyJones(const casacore::ROMSColumns &msc, casacore::Table &table, const casacore::Quantity &parAngleInc, BeamSquint::SquintType doSquint, const casacore::Quantity &skyPositionThreshold=casacore::Quantity(180.,"deg"))
constructor from a VP Table
Model the diagonal elements of the Voltage Pattern Sky Jones Matrices.
Definition: VPSkyJones.h:91
A class to provide easy read-only access to MeasurementSet columns.
Definition: MSColumns.h:111
beam-like sky-plane effects for the SkyEquation
Definition: BeamSkyJones.h:94
virtual casacore::Bool isSolveable()
Is this solveable?
Definition: VPSkyJones.h:131
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
String: the storage and methods of handling collections of characters.
Definition: String.h:223
Type
Allowed types of VisJones matrices.
Definition: SkyJones.h:176
#define casacore
&lt;X11/Intrinsic.h&gt; #defines true, false, casacore::Bool, and String.
Definition: X11Intrinsic.h:42