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_TRANSFORM2_NOOPATERM_H
00030 #define SYNTHESIS_TRANSFORM2_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/VisBuffer2.h>
00038 #include <casa/Containers/Block.h>
00039 #include <synthesis/TransformMachines2/CFTerms.h>
00040 #include <synthesis/TransformMachines2/CFStore.h>
00041 #include <synthesis/TransformMachines2/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   namespace refim{
00059   class NoOpATerm: public ATerm
00060   {
00061   public:
00062     NoOpATerm (): ATerm() {};
00063     virtual ~NoOpATerm () {};
00064 
00065     virtual String name() {return String("NoOpATerm");}
00066 
00067     virtual void makeFullJones(ImageInterface<Complex>&,// pbImage,
00068                                const VisBuffer2&,// vb,
00069                                Bool,// doSquint, 
00070                                Int&,// bandID, 
00071                                Double// freqVal
00072                                ) 
00073     {};
00074 
00075     virtual void applySky(ImageInterface<Float>& ,//outputImages,
00076                           const VisBuffer2& ,//vb, 
00077                           const Bool ,//doSquint=True,
00078                           const Int& ,//cfKey=0,
00079                           const Int& ,//muellerTerm=0,
00080                           const Double // freqVal=-1
00081                           ) 
00082     {};
00083     virtual void applySky(ImageInterface<Complex>& ,//outputImages,
00084                           const VisBuffer2& ,//vb, 
00085                           const Bool ,//doSquint=True,
00086                           const Int& ,//cfKey=0,
00087                           const Int& ,//muellerTerm=0,
00088                           const Double // freqVal=-1
00089                           ) 
00090     {};
00091 
00092     virtual void applySky(ImageInterface<Complex>&,// outImages,
00093                           const Double&,// pa,
00094                           const Bool,// doSquint,
00095                           const Int&,// cfKey,
00096                           const Int&,// muellerTerm,
00097                           const Double// freqVal=-1.0
00098                           )
00099     {};
00100 
00101     Int getBandID(const Double&, //freq 
00102                   const String& //telescopeName
00103                   )
00104     {return 0;};
00105 
00106     void cacheVBInfo(const String& /*telescopeName*/, const Float& /*diameter*/) {};
00107     void cacheVBInfo(const VisBuffer2& )    {};
00108 
00109     virtual void normalizeImage(Lattice<Complex>& ,//skyImage,
00110                                 const Matrix<Float>& // weights
00111                                 ) 
00112     {};
00113 
00114     virtual int getVisParams(const VisBuffer2& ,// vb
00115                              const CoordinateSystem& // skyCoord=CoordinateSystem()
00116                              ) 
00117     {return 0;};
00118     
00119     virtual void rotate(const VisBuffer2& ,//vb, 
00120                         CFCell&, // cfs
00121                         const Double& // rotAngle
00122                         ) 
00123     {};
00124     virtual void rotate2(const VisBuffer2& ,//vb, 
00125                         CFCell&, // basecfs
00126                         CFCell&, // cfs
00127                         const Double& // rotAngle
00128                         ) 
00129     {};
00130     //
00131     // As the name indicates, this class should always return True
00132     //
00133     virtual Bool isNoOp() {return True;};
00134 
00135     //
00136     // Method used in the framework for other CFTerms as well.  These are now all in the base class.
00137     //
00138     // virtual Int getConvSize() {};
00139     // virtual Vector<Int> vbRow2CFKeyMap(const VisBuffer2& vb, Int& nUnique) 
00140     //     {Vector<Int> tmp; tmp.resize(vb.nRow()); tmp=0; nUnique=1; return tmp;}
00141 
00142     // virtual Int makePBPolnCoords(const VisBuffer2& vb,
00143     //                           const Int& convSize,
00144     //                           const Int& convSampling,
00145     //                           const CoordinateSystem& skyCoord,
00146     //                           const Int& skyNx, const Int& skyNy,
00147     //                           CoordinateSystem& feedCoord) {throw(AipsError("NoOpATerm::makePBPolnCoords() called"));};
00148 
00149     // virtual Float getConvWeightSizeFactor()           {return 1.0;};
00150     // virtual Int getOversampling()                     {return 20;};
00151     virtual Float getSupportThreshold()               {return 1e-3;};
00152     // virtual Int mapAntIDToAntType(const Int& /*ant*/) {return 0;};
00153     // virtual void setPolMap(const Vector<Int>& polMap) {polMap_p_base.resize(0);polMap_p_base=polMap;}
00154     // virtual void getPolMap(Vector<Int>& polMap)       {polMap.resize(0); polMap = polMap_p_base;};
00155     // virtual Vector<Int> getAntTypeList()              {Vector<Int> tt(1); tt=0;return tt;};
00156     virtual Bool rotationallySymmetric() {return False;};
00157   };
00158 
00159 };
00160 };
00161 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1