Line data Source code
1 : //# WTerm.h: Definition for WTerm
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_WTERM_H
30 : #define SYNTHESIS_WTERM_H
31 :
32 :
33 : #include <casacore/casa/Arrays/Vector.h>
34 : #include <msvis/MSVis/VisBuffer.h>
35 : #include <casacore/images/Images/ImageInterface.h>
36 : #include <casacore/images/Images/PagedImage.h>
37 : #include <casacore/images/Images/TempImage.h>
38 : #include <synthesis/TransformMachines/CFTerms.h>
39 :
40 :
41 : namespace casa{
42 : // <summary> A class to apply the W-Term to the given image </summary>
43 :
44 : // <use visibility=export>
45 : // <prerequisite>
46 : // </prerequisite>
47 : // <etymology>
48 : // W-Term to account for non co-planar baselines
49 : // </etymology>
50 : //
51 : // <synopsis>
52 : //
53 : //</synopsis>
54 : class WTerm: public CFTerms
55 : {
56 : public:
57 0 : WTerm () : CFTerms() {};
58 0 : ~WTerm () {};
59 :
60 : virtual void applySky(casacore::Matrix<casacore::Complex>& screen,
61 : const casacore::Int wPixel,
62 : const casacore::Vector<casacore::Double>& sampling,
63 : const casacore::Double wScale,
64 : const casacore::Int inner);
65 : virtual void applySky(casacore::Matrix<casacore::Complex>& screen,
66 : const casacore::Vector<casacore::Double>& sampling,
67 : const casacore::Double wValue,
68 : const casacore::Int inner);
69 0 : int getVisParams(const VisBuffer& vb,const casacore::CoordinateSystem& skyCoord=casacore::CoordinateSystem())
70 0 : {(void)vb;(void)skyCoord;return 0;};
71 0 : void setPolMap(const casacore::Vector<casacore::Int>& polMap) {(void)polMap;};
72 0 : virtual casacore::Float getSupportThreshold() {return 1e-3;};
73 :
74 : // WTerm normalizes the image be unity
75 0 : virtual void normalizeImage(casacore::Lattice<casacore::Complex>& skyImage,
76 : const casacore::Matrix<casacore::Float>& weights)
77 0 : {(void)skyImage;(void)weights;};
78 0 : virtual casacore::String name() {return casacore::String("W Term");};
79 : //
80 : // The following functions are not required for W-Term but need to
81 : // be implemented here since they are pure virtuals in CFTerms
82 : // base class.
83 0 : void applySky(casacore::ImageInterface<casacore::Float>&,// outputImages,
84 : const VisBuffer&,// vb,
85 : const casacore::Bool,/* doSquint=true,*/
86 : const casacore::Int&,/* cfKey=0,*/
87 : const casacore::Int&,/* muellerTerm=0,*/
88 : const casacore::Double /*freqVal*=-1*/)
89 0 : {};
90 0 : void applySky(casacore::ImageInterface<casacore::Complex>&,// outputImages,
91 : const VisBuffer&,// vb,
92 : const casacore::Bool,/* doSquint=true,*/
93 : const casacore::Int&,/* cfKey=0,*/
94 : const casacore::Int&,/* muellerTerm=0,*/
95 : const casacore::Double /*freqVal=-1*/)
96 0 : {};
97 0 : casacore::Vector<casacore::Int> vbRow2CFKeyMap(const VisBuffer& vb, casacore::Int& nUnique)
98 0 : {(void)vb;(void)nUnique;return casacore::Vector<casacore::Int>();};
99 0 : casacore::Int makePBPolnCoords(const VisBuffer& vb,
100 : const casacore::Int& convSize,
101 : const casacore::Int& convSampling,
102 : const casacore::CoordinateSystem& skyCoord,
103 : const casacore::Int& skyNx, const casacore::Int& skyNy,
104 : casacore::CoordinateSystem& feedCoord)
105 : {
106 : (void)vb;(void)convSize;(void)convSampling;(void)skyCoord;(void)skyNx;(void)skyNy;(void)feedCoord;
107 0 : return 0;
108 : };
109 :
110 0 : casacore::Bool rotationallySymmetric() {return true;};
111 :
112 :
113 0 : casacore::Int getConvSize() {return 0;};
114 0 : casacore::Int getOversampling() {return 20;};
115 0 : casacore::Float getConvWeightSizeFactor() {return 1.0;};
116 : };
117 :
118 : };
119 :
120 : #endif
|