casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PSTerm.h
Go to the documentation of this file.
1 //# PSTerm.h: Definition for PSTerm
2 //# Copyright (C) 2007
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 SYNTHESIS_PSTERM_H
30 #define SYNTHESIS_PSTERM_H
31 
32 
33 #include <casa/Arrays/Vector.h>
34 #include <msvis/MSVis/VisBuffer.h>
41 
42 namespace casa{
43  // <summary> A class to apply the W-Term to the given image </summary>
44 
45  // <use visibility=export>
46  // <prerequisite>
47  // </prerequisite>
48  // <etymology>
49  // W-Term to account for non co-planar baselines
50  // </etymology>
51  //
52  // <synopsis>
53  //
54  //</synopsis>
55  class PSTerm: public CFTerms
56  {
57  public:
58  PSTerm(): CFTerms() {};
61  const casacore::Vector<casacore::Double>& uvOffset,
62  const casacore::Double& psScale):psCtor_p()
63  {init(shape,uvScale,uvOffset,psScale);};
64 
65  virtual ~PSTerm () {};
66 
67  void init(const casacore::IPosition shape,
69  const casacore::Vector<casacore::Double>& uvOffset,
70  const casacore::Double& psScale);
73 
74  void applySky(casacore::Matrix<casacore::Complex>& screen,casacore::Bool multiply=false);
76  const casacore::Vector<casacore::Double>& sampling,
77  const casacore::Int inner);
79  const casacore::Matrix<casacore::Float>& weights);
80  virtual casacore::String name() {return casacore::String("PS Term");};
81 
82  //----------------------------------------------------------
83  // Implementation of pure-virtual methods of CFTerms parent class.
84  // CFTerms (and its derived classes) ned clean-up so that this
85  // kind of code is not required everywhere).
87  {(void)vb;(void)skyCoord;return 0;};
88 
89  void setPolMap(const casacore::Vector<casacore::Int>& polMap) {(void)polMap;};
90 
91  virtual casacore::Float getSupportThreshold() {return 1e-3;};
92 
94  const VisBuffer&,// vb,
95  const casacore::Bool,// doSquint=true,
96  const casacore::Int&,// cfKey=0,
97  const casacore::Int&,// muellerTerm=0,
98  const casacore::Double /*freqVal=-1*/)
99  {};
100 
102  const VisBuffer&,// vb,
103  const casacore::Bool,// doSquint=true,
104  const casacore::Int&,// cfKey=0,
105  const casacore::Int&,// muellerTerm=0,
106  const casacore::Double /*freqVal= -1*/ )
107  {};
108 
110  {casacore::Vector<casacore::Int> tt;return tt;};
111 
113  const casacore::Int&,// convSize,
114  const casacore::Int&,// convSampling,
115  const casacore::CoordinateSystem&,// skyCoord,
116  const casacore::Int&,// skyNx,
117  const casacore::Int&,// skyNy,
118  casacore::CoordinateSystem&// feedCoord
119  )
120  {return 0;};
121 
122  casacore::Int getConvSize() {return 0;};
125 
127 
128  private:
129  // spheroidal function
134  };
135 
136 };
137 
138 #endif
A Vector of integers, for indexing into Array&lt;T&gt; objects.
Definition: IPosition.h:119
int Int
Definition: aipstype.h:50
casacore::Matrix< casacore::Complex > & operator=(casacore::Matrix< casacore::Complex > &)
int getVisParams(const VisBuffer &vb, const casacore::CoordinateSystem &skyCoord=casacore::CoordinateSystem())
Implementation of pure-virtual methods of CFTerms parent class.
Definition: PSTerm.h:86
casacore::Int makePBPolnCoords(const VisBuffer &, const casacore::Int &, const casacore::Int &, const casacore::CoordinateSystem &, const casacore::Int &, const casacore::Int &, casacore::CoordinateSystem &)
Definition: PSTerm.h:112
casacore::Double psScale_p
Definition: PSTerm.h:133
casacore::Float getConvWeightSizeFactor()
Definition: PSTerm.h:124
The base class to represent the Aperture-Term of the Measurement Equation.
Definition: CFTerms.h:55
casacore::Int getOversampling()
Definition: PSTerm.h:123
virtual ~PSTerm()
Definition: PSTerm.h:65
void normalizeImage(casacore::Lattice< casacore::Complex > &skyImage, const casacore::Matrix< casacore::Float > &weights)
A class to apply the W-Term to the given image.
Definition: PSTerm.h:55
void applySky(casacore::Matrix< casacore::Complex > &screen, casacore::Bool multiply=false)
Referenced counted pointer for constant data.
Definition: VisModelData.h:42
virtual casacore::String name()
Definition: PSTerm.h:80
casacore::CountedPtr< casacore::ConvolveGridder< casacore::Double, casacore::Complex > > psCtor_p
spheroidal function
Definition: PSTerm.h:126
double Double
Definition: aipstype.h:55
PSTerm(const casacore::IPosition shape, const casacore::Vector< casacore::Double > &uvScale, const casacore::Vector< casacore::Double > &uvOffset, const casacore::Double &psScale)
Definition: PSTerm.h:59
casacore::Vector< casacore::Double > support_p
Definition: PSTerm.h:131
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
void applySky(casacore::ImageInterface< casacore::Float > &, const VisBuffer &, const casacore::Bool, const casacore::Int &, const casacore::Int &, const casacore::Double)
Definition: PSTerm.h:93
float Float
Definition: aipstype.h:54
void setPolMap(const casacore::Vector< casacore::Int > &polMap)
The mapping from VisBuffer polarizations map to the Image plane polarization.
Definition: PSTerm.h:89
TableExprNode shape(const TableExprNode &array)
Function operating on any scalar or array resulting in a Double array containing the shape...
Definition: ExprNode.h:1944
virtual casacore::Float getSupportThreshold()
Definition: PSTerm.h:91
void init(const casacore::IPosition shape, const casacore::Vector< casacore::Double > &uvScale, const casacore::Vector< casacore::Double > &uvOffset, const casacore::Double &psScale)
void applySky(casacore::ImageInterface< casacore::Complex > &, const VisBuffer &, const casacore::Bool, const casacore::Int &, const casacore::Int &, const casacore::Double)
Definition: PSTerm.h:101
const Double e
e and functions thereof:
casacore::Bool rotationallySymmetric()
Definition: PSTerm.h:126
String: the storage and methods of handling collections of characters.
Definition: String.h:223
casacore::Matrix< casacore::Complex > & operator*=(casacore::Matrix< casacore::Complex > &)
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
casacore::Vector< casacore::Int > vbRow2CFKeyMap(const VisBuffer &, casacore::Int &)
Not sure if the following method is requried.
Definition: PSTerm.h:109
casacore::Vector< casacore::Int > sampling_p
Definition: PSTerm.h:132
casacore::Int getConvSize()
Definition: PSTerm.h:122
Interconvert pixel and world coordinates.