casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
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 <synthesis/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 applySky(ImageInterface<Float>& ,//outputImages,
00067                           const VisBuffer& ,//vb, 
00068                           const Bool ,//doSquint=True,
00069                           const Int& ,//cfKey=0,
00070                           const Double // freqVal=-1
00071                           ) 
00072     {};
00073     virtual void applySky(ImageInterface<Complex>& ,//outputImages,
00074                           const VisBuffer& ,//vb, 
00075                           const Bool ,//doSquint=True,
00076                           const Int& ,//cfKey=0,
00077                           const Double // freqVal=-1
00078                           ) 
00079     {};
00080 
00081     virtual void normalizeImage(Lattice<Complex>& ,//skyImage,
00082                                 const Matrix<Float>& // weights
00083                                 ) 
00084     {};
00085 
00086     virtual int getVisParams(const VisBuffer& ,// vb
00087                              const CoordinateSystem& // skyCoord=CoordinateSystem()
00088                              ) 
00089     {return 0;};
00090     
00091     virtual void rotate(const VisBuffer& ,//vb, 
00092                         CFCell&, // cfs
00093                         const Double& // rotAngle
00094                         ) 
00095     {};
00096     //
00097     // As the name indicates, this class should always return True
00098     //
00099     virtual Bool isNoOp() {return True;};
00100 
00101     //
00102     // Method used in the framework for other CFTerms as well.  These are now all in the base class.
00103     //
00104     // virtual Int getConvSize() {};
00105     // virtual Vector<Int> vbRow2CFKeyMap(const VisBuffer& vb, Int& nUnique) 
00106     //     {Vector<Int> tmp; tmp.resize(vb.nRow()); tmp=0; nUnique=1; return tmp;}
00107 
00108     // virtual Int makePBPolnCoords(const VisBuffer& vb,
00109     //                           const Int& convSize,
00110     //                           const Int& convSampling,
00111     //                           const CoordinateSystem& skyCoord,
00112     //                           const Int& skyNx, const Int& skyNy,
00113     //                           CoordinateSystem& feedCoord) {throw(AipsError("NoOpATerm::makePBPolnCoords() called"));};
00114 
00115     // virtual Float getConvWeightSizeFactor()           {return 1.0;};
00116     // virtual Int getOversampling()                     {return 20;};
00117     virtual Float getSupportThreshold()               {return 1e-3;};
00118     // virtual Int mapAntIDToAntType(const Int& /*ant*/) {return 0;};
00119     // virtual void setPolMap(const Vector<Int>& polMap) {polMap_p_base.resize(0);polMap_p_base=polMap;}
00120     // virtual void getPolMap(Vector<Int>& polMap)       {polMap.resize(0); polMap = polMap_p_base;};
00121     // virtual Vector<Int> getAntTypeList()              {Vector<Int> tt(1); tt=0;return tt;};
00122   };
00123 
00124 };
00125 
00126 #endif