NoOpATerm.h

Go to the documentation of this file.
00001 //# ATerm.h: Definition for ATerm
00002 //# Copyright (C) 2007
00003 //# Associated Universities, Inc. Washington DC, USA.
00004 //#
00005 //# This library is free software; you can redistribute it and/or modify it
00006 //# under the terms of the GNU Library General Public License as published by
00007 //# the Free Software Foundation; either version 2 of the License, or (at your
00008 //# option) any later version.
00009 //#
00010 //# This library is distributed in the hope that it will be useful, but WITHOUT
00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00012 //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
00013 //# License for more details.
00014 //#
00015 //# You should have received a copy of the GNU Library General Public License
00016 //# along with this library; if not, write to the Free Software Foundation,
00017 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
00018 //#
00019 //# Correspondence concerning AIPS++ should be adressed as follows:
00020 //#        Internet email: aips2-request@nrao.edu.
00021 //#        Postal address: AIPS++ Project Office
00022 //#                        National Radio Astronomy Observatory
00023 //#                        520 Edgemont Road
00024 //#                        Charlottesville, VA 22903-2475 USA
00025 //#
00026 //#
00027 //# $Id$
00028 
00029 #ifndef SYNTHESIS_NOOPATERM_H
00030 #define SYNTHESIS_NOOPATERM_H
00031 
00032 
00033 #include <casa/Arrays/Vector.h>
00034 #include <images/Images/ImageInterface.h>
00035 #include <images/Images/PagedImage.h>
00036 #include <images/Images/TempImage.h>
00037 #include <msvis/MSVis/VisBuffer.h>
00038 #include <casa/Containers/Block.h>
00039 #include <synthesis/TransformMachines/CFTerms.h>
00040 #include <synthesis/TransformMachines/CFStore.h>
00041 #include <synthesis/TransformMachines/CFStore2.h>
00042 
00043 namespace casa{
00044   // <summary>  
00045   //  The base class to represent the Aperture-Term of the Measurement Equation. 
00046   // </summary>
00047   
00048   // <use visibility=export>
00049   // <prerequisite>
00050   // </prerequisite>
00051   // <etymology>
00052   //   A NoOp A-Term which does nothing but keeps the framework unchanged.  Used when no A-term corrections are required.
00053   // </etymology>
00054   //
00055   // <synopsis> 
00056   // 
00057   //</synopsis>
00058   class NoOpATerm: public ATerm
00059   {
00060   public:
00061     NoOpATerm (): ATerm() {};
00062     virtual ~NoOpATerm () {};
00063 
00064     virtual String name() {return String("NoOpATerm");}
00065 
00066     virtual void makeFullJones(ImageInterface<Complex>&,// pbImage,
00067                                const VisBuffer&,// vb,
00068                                Bool,// doSquint, 
00069                                Int&,// bandID, 
00070                                Double// freqVal
00071                                ) 
00072     {};
00073 
00074     virtual void applySky(ImageInterface<Float>& ,//outputImages,
00075                           const VisBuffer& ,//vb, 
00076                           const Bool ,//doSquint=True,
00077                           const Int& ,//cfKey=0,
00078                           const Int& ,//muellerTerm=0,
00079                           const Double // freqVal=-1
00080                           ) 
00081     {};
00082     virtual void applySky(ImageInterface<Complex>& ,//outputImages,
00083                           const VisBuffer& ,//vb, 
00084                           const Bool ,//doSquint=True,
00085                           const Int& ,//cfKey=0,
00086                           const Int& ,//muellerTerm=0,
00087                           const Double // freqVal=-1
00088                           ) 
00089     {};
00090 
00091     virtual void applySky(ImageInterface<Complex>&,// outImages,
00092                           const Double&,// pa,
00093                           const Bool,// doSquint,
00094                           const Int&,// cfKey,
00095                           const Int&,// muellerTerm,
00096                           const Double// freqVal=-1.0
00097                           )
00098     {};
00099 
00100     Int getBandID(const Double&, //freq 
00101                   const String& //telescopeName
00102                   )
00103     {return 0;};
00104 
00105     void cacheVBInfo(const String& /*telescopeName*/, const Float& /*diameter*/) {};
00106     void cacheVBInfo(const VisBuffer& )    {};
00107 
00108     virtual void normalizeImage(Lattice<Complex>& ,//skyImage,
00109                                 const Matrix<Float>& // weights
00110                                 ) 
00111     {};
00112 
00113     virtual int getVisParams(const VisBuffer& ,// vb
00114                              const CoordinateSystem& // skyCoord=CoordinateSystem()
00115                              ) 
00116     {return 0;};
00117     
00118     virtual void rotate(const VisBuffer& ,//vb, 
00119                         CFCell&, // cfs
00120                         const Double& // rotAngle
00121                         ) 
00122     {};
00123     virtual void rotate2(const VisBuffer& ,//vb, 
00124                         CFCell&, // basecfs
00125                         CFCell&, // cfs
00126                         const Double& // rotAngle
00127                         ) 
00128     {};
00129     //
00130     // As the name indicates, this class should always return True
00131     //
00132     virtual Bool isNoOp() {return True;};
00133 
00134     //
00135     // Method used in the framework for other CFTerms as well.  These are now all in the base class.
00136     //
00137     // virtual Int getConvSize() {};
00138     // virtual Vector<Int> vbRow2CFKeyMap(const VisBuffer& vb, Int& nUnique) 
00139     //     {Vector<Int> tmp; tmp.resize(vb.nRow()); tmp=0; nUnique=1; return tmp;}
00140 
00141     // virtual Int makePBPolnCoords(const VisBuffer& vb,
00142     //                           const Int& convSize,
00143     //                           const Int& convSampling,
00144     //                           const CoordinateSystem& skyCoord,
00145     //                           const Int& skyNx, const Int& skyNy,
00146     //                           CoordinateSystem& feedCoord) {throw(AipsError("NoOpATerm::makePBPolnCoords() called"));};
00147 
00148     // virtual Float getConvWeightSizeFactor()           {return 1.0;};
00149     // virtual Int getOversampling()                     {return 20;};
00150     virtual Float getSupportThreshold()               {return 1e-3;};
00151     // virtual Int mapAntIDToAntType(const Int& /*ant*/) {return 0;};
00152     // virtual void setPolMap(const Vector<Int>& polMap) {polMap_p_base.resize(0);polMap_p_base=polMap;}
00153     // virtual void getPolMap(Vector<Int>& polMap)       {polMap.resize(0); polMap = polMap_p_base;};
00154     // virtual Vector<Int> getAntTypeList()              {Vector<Int> tt(1); tt=0;return tt;};
00155     virtual Bool rotationallySymmetric() {return False;};
00156   };
00157 
00158 };
00159 
00160 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1