casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
WOnlyConvFunc.h
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //# WOnlyConvFunc.h: Definition of the WOnlyConvFunc class
00003 //# Copyright (C) 1997,1998,1999,2000,2001,2002,2003
00004 //# Associated Universities, Inc. Washington DC, USA.
00005 //#
00006 //# This library is free software; you can redistribute it and/or modify it
00007 //# under the terms of the GNU Library General Public License as published by
00008 //# the Free Software Foundation; either version 2 of the License, or (at your
00009 //# option) any later version.
00010 //#
00011 //# This library is distributed in the hope that it will be useful, but WITHOUT
00012 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00013 //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
00014 //# License for more details.
00015 //#
00016 //# You should have received a copy of the GNU Library General Public License
00017 //# along with this library; if not, write to the Free Software Foundation,
00018 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
00019 //#
00020 //# Correspondence concerning AIPS++ should be addressed as follows:
00021 //#        Internet email: aips2-request@nrao.edu.
00022 //#        Postal address: AIPS++ Project Office
00023 //#                        National Radio Astronomy Observatory
00024 //#                        520 Edgemont Road
00025 //#                        Charlottesville, VA 22903-2475 USA
00026 //#
00027 //# $Id$
00028 //
00029 #ifndef SYNTHESIS_WONLYCONVFUNC_H
00030 #define SYNTHESIS_WONLYCONVFUNC_H
00031 
00032 #include <synthesis/TransformMachines/ConvolutionFunction.h>
00033 #include <synthesis/TransformMachines/CFStore.h>
00034 #include <synthesis/MeasurementComponents/WTerm.h>
00035 #include <synthesis/MeasurementComponents/PSTerm.h>
00036 #include <images/Images/ImageInterface.h>
00037 #include <images/Images/TempImage.h>
00038 #include <casa/Logging/LogIO.h>
00039 #include <casa/Logging/LogSink.h>
00040 #include <casa/Logging/LogOrigin.h>
00041 
00042 namespace casa { //# NAMESPACE CASA - BEGIN
00043   template<class T> class ImageInterface;
00044   template<class T> class Matrix;
00045   class VisBuffer;
00046   //
00047   //-------------------------------------------------------------------------------------------
00048   //
00049   class WOnlyConvFunc : public ConvolutionFunction
00050   {
00051   public:
00052     WOnlyConvFunc(const CountedPtr<WTerm>& wTerm,
00053                   const CountedPtr<PSTerm>& psTerm):
00054       ConvolutionFunction(),wTerm_p(wTerm), psTerm_p(psTerm)
00055     {};
00056     ~WOnlyConvFunc() {};
00057     WOnlyConvFunc& operator=(const WOnlyConvFunc& other);
00058 
00059 
00060     void makeConvFunction(const ImageInterface<Complex>& image,
00061                           const VisBuffer& vb,
00062                           const Int wConvSize,
00063                           const Float pa,
00064                           const Float dpa,
00065                           CFStore& cfs,
00066                           CFStore& cfwts);
00067 
00068     virtual int getVisParams(const VisBuffer& vb) {return wTerm_p->getVisParams(vb);};
00069     virtual void setPolMap(const Vector<Int>& polMap) {wTerm_p->setPolMap(polMap);};
00070 
00071     virtual Bool findSupport(Array<Complex>& func, Float& threshold,Int& origin, Int& R);
00072 
00073     //
00074     // Pedgree baggage (NoOps).  
00075     //
00076     Bool makeAverageResponse(const VisBuffer& /*vb*/, 
00077                              const ImageInterface<Complex>& /*image*/,
00078                              ImageInterface<Float>& /*theavgPB*/,
00079                              Bool /*reset*/=True) {};
00080     Bool makeAverageResponse(const VisBuffer& /*vb*/, 
00081                              const ImageInterface<Complex>& /*image*/,
00082                              ImageInterface<Complex>& /*theavgPB*/,
00083                              Bool /*reset*/=True) {};
00084   protected:
00085     void setSupport(Array<Complex>& convFunc, CFStore& cfs);
00086 
00087   private:
00088     CountedPtr<WTerm> wTerm_p;
00089     CountedPtr<PSTerm> psTerm_p;
00090   };
00091   //
00092   //-------------------------------------------------------------------------------------------
00093   //
00094 };
00095 #endif