PSTerm.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef SYNTHESIS_TRANSFORM2_PSTERM_H
00030 #define SYNTHESIS_TRANSFORM2_PSTERM_H
00031
00032
00033 #include <casa/Arrays/Vector.h>
00034 #include <msvis/MSVis/VisBuffer2.h>
00035 #include <images/Images/ImageInterface.h>
00036 #include <images/Images/PagedImage.h>
00037 #include <images/Images/TempImage.h>
00038 #include <scimath/Mathematics/ConvolveGridder.h>
00039 #include <synthesis/TransformMachines2/CFStore.h>
00040 #include <synthesis/TransformMachines2/CFTerms.h>
00041
00042 namespace casa{
00043 namespace refim{
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 class PSTerm: public CFTerms
00057 {
00058 public:
00059 PSTerm(): CFTerms() {};
00060 PSTerm (const IPosition shape,
00061 const Vector<Double>& uvScale,
00062 const Vector<Double>& uvOffset,
00063 const Double& psScale):psCtor_p()
00064 {init(shape,uvScale,uvOffset,psScale);};
00065
00066 virtual ~PSTerm () {};
00067
00068 void init(const IPosition shape,
00069 const Vector<Double>& uvScale,
00070 const Vector<Double>& uvOffset,
00071 const Double& psScale);
00072 Matrix<Complex>& operator=(Matrix<Complex>&);
00073 Matrix<Complex>& operator*=(Matrix<Complex>&);
00074
00075 void applySky(Matrix<Complex>& screen,Bool multiply=False);
00076 void applySky(Matrix<Complex>& screen,
00077 const Vector<Double>& sampling,
00078 const Int inner);
00079 void normalizeImage(Lattice<Complex>& skyImage,
00080 const Matrix<Float>& weights);
00081 virtual String name() {return String("PS Term");};
00082
00083
00084
00085
00086
00087 int getVisParams(const VisBuffer2& vb,const CoordinateSystem& skyCoord=CoordinateSystem())
00088 {(void)vb;(void)skyCoord;return 0;};
00089
00090 void setPolMap(const Vector<Int>& polMap) {(void)polMap;};
00091
00092 virtual Float getSupportThreshold() {return 1e-3;};
00093
00094 void applySky(ImageInterface<Float>&,
00095 const VisBuffer2&,
00096 const Bool,
00097 const Int&,
00098 const Int&,
00099 const Double )
00100 {};
00101
00102 void applySky(ImageInterface<Complex>&,
00103 const VisBuffer2&,
00104 const Bool,
00105 const Int&,
00106 const Int&,
00107 const Double )
00108 {};
00109
00110 Vector<Int> vbRow2CFKeyMap(const VisBuffer2& , Int& )
00111 {Vector<Int> tt;return tt;};
00112
00113 Int makePBPolnCoords(const VisBuffer2&,
00114 const Int&,
00115 const Int&,
00116 const CoordinateSystem&,
00117 const Int&,
00118 const Int&,
00119 CoordinateSystem&
00120 )
00121 {return 0;};
00122
00123 Int getConvSize() {return 0;};
00124 Int getOversampling() {return 20;};
00125 void setConvSize(const Int) {};
00126 void setOversampling(const Int) {};
00127 Float getConvWeightSizeFactor() {return 1.0;};
00128
00129 Bool rotationallySymmetric() {return True;};
00130
00131 private:
00132
00133 CountedPtr<ConvolveGridder<Double, Complex> > psCtor_p;
00134 Vector<Double> support_p;
00135 Vector<Int> sampling_p;
00136 Double psScale_p;
00137 };
00138 };
00139 };
00140
00141 #endif