casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FJones.h
Go to the documentation of this file.
1 //# FJones.h: Declaration of Ionospheric corrections
2 //# Copyright (C) 1996,1997,2000,2001,2002,2003,2011,2014
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_FJONES_H
29 #define SYNTHESIS_FJONES_H
30 
31 #include <casa/aips.h>
32 #include <casa/Containers/Record.h>
33 #include <casa/BasicSL/Complex.h>
36 //#include <synthesis/MeasurementComponents/CalCorruptor.h>
37 
39 
40 namespace casa { //# NAMESPACE CASA - BEGIN
41 
42 class FJones : public SolvableVisJones {
43 public:
44 
45  // Constructor
46  FJones(VisSet& vs);
47  FJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
49 
50  virtual ~FJones();
51 
52  // Return the type enum
53  virtual Type type() { return VisCal::F; };
54 
55  // Return type name as string
56  virtual casacore::String typeName() { return "F Jones"; };
57  virtual casacore::String longTypeName() { return "F Jones (Ionosphere)"; };
58 
59  // Report current Jones type (circ=diag, lin=general)
61 
62  // Par is freq-INdep, but matrix is freq-dep
63  virtual casacore::Bool freqDepPar() { return false; };
64  virtual casacore::Bool freqDepMat() { return true; };
65 
66  // We have casacore::Float parameters
68 
69  // Local setapply to enforce calwt=F and spwmap=[0] for FJones
70  virtual void setApply(const casacore::Record& apply);
72 
73  // Report apply-related info
75 
76  // Local specializations for TEC generation
77  virtual void setSpecify(const casacore::Record& specify);
78  virtual void specify(const casacore::Record& specify);
79 
80 protected:
81 
82  // FJones has one casacore::Float par per ant
83  virtual casacore::Int nPar() { return 1; };
84 
85  // Jones matrix elements are NOT trivial
86  virtual casacore::Bool trivialJonesElem() { return false; };
87 
88  // Access to z.a. data
90 
91  // Detect pol basis and some geometry
92  virtual void syncMeta(const VisBuffer& vb);
93  virtual void syncMeta2(const vi::VisBuffer2& vb);
94 
95  // Calculate parameters (in this case, the z.a.)
96  virtual void calcPar();
97 
98  // Calculate the FJones matrix for all ants
99  virtual void calcAllJones();
100 
101 private:
102 
103  // TEC specify/retrieval mode
105 
106  // Field calculation components
109 
110  // Fiducial ionosphere height
112 
113  // TEC image filename
115 
116  // zenith angle per antenna
118 
119  // The magnetic field
121 
122  // Units
124 
125  // Lin (general) or Circ (diag)
127 
128  // Measures geometry
130  casacore::ROScalarMeasColumn<casacore::MPosition> antpos_p;
131 
132 };
133 
134 } //# NAMESPACE CASA - END
135 
136 #endif
137 
A Measure: astronomical direction.
Definition: MDirection.h:174
int Int
Definition: aipstype.h:50
virtual void calcAllJones()
Calculate the FJones matrix for all ants.
casacore::Vector< casacore::Double > BlosG_
The magnetic field.
Definition: FJones.h:120
Jones::JonesType jonesType()
Report current Jones type (circ=diag, lin=general)
Definition: FJones.h:60
void apply(const Jones &j1, VisVector &v, const Jones &j2)
Apply a pair of Jones to a VisVector:
casacore::Double radper_
Units.
Definition: FJones.h:123
virtual void setSpecify(const casacore::Record &specify)
Local specializations for TEC generation.
Container for Measure frame.
Definition: MeasFrame.h:137
virtual casacore::Bool freqDepPar()
Par is freq-INdep, but matrix is freq-dep.
Definition: FJones.h:63
virtual casacore::String longTypeName()
Definition: FJones.h:57
virtual void setApply()
Set the application parameters.
casacore::String tectype_
TEC specify/retrieval mode.
Definition: FJones.h:104
Jones::JonesType pjonestype_
Lin (general) or Circ (diag)
Definition: FJones.h:126
virtual VisCalEnum::VCParType parType()
We have casacore::Float parameters.
Definition: FJones.h:67
Calculates magnetic field in a direction.
virtual void syncMeta(const VisBuffer &vb)
Detect pol basis and some geometry.
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are NOT trivial.
Definition: FJones.h:86
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
virtual casacore::String typeName()
Return type name as string.
Definition: FJones.h:56
A hierarchical collection of named fields of various types.
Definition: Record.h:180
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
virtual Type type()
Return the type enum.
Definition: FJones.h:53
casacore::EarthMagneticMachine * emm_
Definition: FJones.h:108
casacore::Vector< casacore::Double > za_
zenith angle per antenna
Definition: FJones.h:117
casacore::Quantity ionhgt_
Fiducial ionosphere height.
Definition: FJones.h:111
virtual casacore::Int nPar()
FJones has one casacore::Float par per ant.
Definition: FJones.h:83
casacore::Vector< casacore::Double > & za()
Access to z.a.
Definition: FJones.h:89
virtual void specify(const casacore::Record &specify)
Fill a caltable with specified values.
FJones(VisSet &vs)
Constructor.
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
casacore::String tecimname_
TEC image filename.
Definition: FJones.h:114
SolvableVisJones
virtual ~FJones()
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
casacore::ROScalarMeasColumn< casacore::MPosition > antpos_p
Definition: FJones.h:130
casacore::String applyinfo()
Report apply-related info.
casacore::MDirection phasedir_p
Measures geometry.
Definition: FJones.h:129
virtual void calcPar()
Calculate parameters (in this case, the z.a.)
virtual void syncMeta2(const vi::VisBuffer2 &vb)
casacore::MeasFrame mframe_
Field calculation components.
Definition: FJones.h:107
virtual casacore::Bool freqDepMat()
Frequency-dependent Matrices? Nominally same as freqDepPar.
Definition: FJones.h:64