casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EJones.h
Go to the documentation of this file.
1 //# EJones.h: Antenna-pattern related calibration term: E Jones
2 //# Copyright (C) 1996,1997,2000,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: 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 
28 #ifndef SYNTHESIS_EJONES_H
29 #define SYNTHESIS_EJONES_H
30 
31 #include <casa/aips.h>
32 #include <casa/Containers/Record.h>
33 #include <casa/BasicSL/Complex.h>
35 
36 namespace casa { //# NAMESPACE CASA - BEGIN
37 
38 // Forward declaration
39 class VisEquation;
40 
41 // **********************************************************
42 // EGainCurve
43 //
44 
45 class EGainCurve : public SolvableVisJones {
46 public:
47 
48  // Constructor
49  EGainCurve(VisSet& vs);
52 
53  virtual ~EGainCurve();
54 
55  // Return the type enum
56  virtual Type type() { return VisCal::E; };
57 
58  // Return type name as string
59  virtual casacore::String typeName() { return "EGainCurve"; };
60  virtual casacore::String longTypeName() { return "EGainCurve (Gain(elev) corrections)"; };
61 
62  // Gain curve coeffs are casacore::Float parameters
64 
65  // Type of Jones matrix (
67 
68  // Local specialization of setApply to extract gain curves from table
69  void setApply(const casacore::Record& applypar);
70 
71  // Cal Library version
72  void setCallib(const casacore::Record& applypar,const casacore::MeasurementSet& selms);
73 
74  // Generate gain curves caltable via specify
75  void setSpecify(const casacore::Record& specify);
76  void specify(const casacore::Record& specify);
77 
78  // Guess (throws error because we don't yet solve for this)
79  virtual void guessPar(VisBuffer& vb);
80 
81 protected:
82 
83  // EGainCurve has eight casacore::Float pars per ant (4 per pol)
84  virtual casacore::Int nPar() { return 8; };
85 
86  // Jones matrix elements are NOT trivial
87  virtual casacore::Bool trivialJonesElem() { return false; };
88 
89  // Access to z.a. data
91 
92  // Detect zenith angle for this vb
93  virtual void syncMeta(const VisBuffer& vb);
94  virtual void syncMeta2(const vi::VisBuffer2& vb);
95 
96  // Calculate parameters (in this case, the z.a.)
97  virtual void calcPar();
98 
99  // Calculate the EGainCurve matrix for all ants
100  virtual void calcAllJones();
101 
102 private:
103 
104  // avoid compiler warnings
106 
107  // Name of the gain curve source table
109 
110  // The observation start time (for selecting gain curves)
112 
113  // The ant name list (for selecting gain curves)
115 
116  // The spw ref frequencies (for selecting gain curves)
118 
119  // The spw band names (for selecting gain curves)
121 
122  // Zenith angles
124 
125  // Effeciency samples
127 
128 };
129 
130 
131 } //# NAMESPACE CASA - END
132 
133 #endif
134 
EGainCurve(VisSet &vs)
Constructor.
int Int
Definition: aipstype.h:50
void setSpecify(const casacore::Record &specify)
Generate gain curves caltable via specify.
Jones::JonesType jonesType()
Type of Jones matrix (.
Definition: EJones.h:66
virtual void calcAllJones()
Calculate the EGainCurve matrix for all ants.
casacore::String gainCurveSrc_
Name of the gain curve source table.
Definition: EJones.h:108
casacore::Vector< casacore::String > antnames_
The ant name list (for selecting gain curves)
Definition: EJones.h:114
void specify(const casacore::Record &specify)
Fill a caltable with specified values.
virtual void setApply()
Set the application parameters.
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are NOT trivial.
Definition: EJones.h:87
virtual Type type()
Return the type enum.
Definition: EJones.h:56
casacore::Vector< casacore::Double > spwfreqs_
The spw ref frequencies (for selecting gain curves)
Definition: EJones.h:117
casacore::Vector< casacore::Double > eff_
Effeciency samples.
Definition: EJones.h:126
Type
Allowed types of VisCal matrices - &#39;correct&#39; order enum Type{UVMOD,Mf,M,K,B,G,D,C,E,P,T,EP,F}; enum Type{Test=0,ANoise,M,KAntPos,K,B,G,J,D,X,C,P,E,T,F,A,ALL};.
Definition: VisCal.h:62
double Double
Definition: aipstype.h:55
casacore::Vector< casacore::Double > za_
Zenith angles.
Definition: EJones.h:123
virtual casacore::String typeName()
Return type name as string.
Definition: EJones.h:59
casacore::Vector< casacore::Double > & za()
Access to z.a.
Definition: EJones.h:90
A hierarchical collection of named fields of various types.
Definition: Record.h:180
virtual VisCalEnum::VCParType parType()
Gain curve coeffs are casacore::Float parameters.
Definition: EJones.h:63
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
virtual void syncMeta(const VisBuffer &vb)
Detect zenith angle for this vb.
A Table intended to hold astronomical data (a set of Measurements).
EGainCurve
Definition: EJones.h:45
VisBuffer2s encapsulate one chunk of visibility data for processing.
Definition: VisBuffer2.h:141
const MSMetaInfoForCal & msmc() const
Access to the MSMetaInfoForCal (throws if none)
Definition: VisCal.h:338
virtual casacore::Int nPar()
EGainCurve has eight casacore::Float pars per ant (4 per pol)
Definition: EJones.h:84
void setCallib(const casacore::Record &applypar, const casacore::MeasurementSet &selms)
Cal Library version.
SolvableVisJones
virtual void syncMeta2(const vi::VisBuffer2 &vb)
String: the storage and methods of handling collections of characters.
Definition: String.h:223
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
virtual ~EGainCurve()
casacore::Double obstime_
The observation start time (for selecting gain curves)
Definition: EJones.h:111
casacore::Vector< casacore::String > spwbands_
The spw band names (for selecting gain curves)
Definition: EJones.h:120
virtual void guessPar(VisBuffer &vb)
Guess (throws error because we don&#39;t yet solve for this)
virtual void calcPar()
Calculate parameters (in this case, the z.a.)
virtual casacore::String longTypeName()
Definition: EJones.h:60