LCOV - code coverage report
Current view: top level - synthesis/TransformMachines2 - WTerm.h (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 3 22 13.6 %
Date: 2024-12-11 20:54:31 Functions: 4 17 23.5 %

          Line data    Source code
       1             : //# WTerm.h: Definition for WTerm
       2             : //# Copyright (C) 2007
       3             : //# Associated Universities, Inc. Washington DC, USA.
       4             : //#
       5             : //# This library is free software; you can redistribute it and/or modify it
       6             : //# under the terms of the GNU Library General Public License as published by
       7             : //# the Free Software Foundation; either version 2 of the License, or (at your
       8             : //# option) any later version.
       9             : //#
      10             : //# This library is distributed in the hope that it will be useful, but WITHOUT
      11             : //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      12             : //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
      13             : //# License for more details.
      14             : //#
      15             : //# You should have received a copy of the GNU Library General Public License
      16             : //# along with this library; if not, write to the Free Software Foundation,
      17             : //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
      18             : //#
      19             : //# Correspondence concerning AIPS++ should be adressed as follows:
      20             : //#        Internet email: casa-feedback@nrao.edu.
      21             : //#        Postal address: AIPS++ Project Office
      22             : //#                        National Radio Astronomy Observatory
      23             : //#                        520 Edgemont Road
      24             : //#                        Charlottesville, VA 22903-2475 USA
      25             : //#
      26             : //#
      27             : //# $Id$
      28             : 
      29             : #ifndef SYNTHESIS_TRANSFORM2_WTERM_H
      30             : #define SYNTHESIS_TRANSFORM2_WTERM_H
      31             : 
      32             : 
      33             : #include <casacore/casa/Arrays/Vector.h>
      34             : #include <msvis/MSVis/VisBuffer2.h>
      35             : #include <casacore/images/Images/ImageInterface.h>
      36             : #include <casacore/images/Images/PagedImage.h>
      37             : #include <casacore/images/Images/TempImage.h>
      38             : #include <synthesis/TransformMachines2/CFTerms.h>
      39             : 
      40             : 
      41             : namespace casa{
      42             :   namespace refim{
      43             :   // <summary>  A class to apply the W-Term to the given image </summary>
      44             :   
      45             :   // <use visibility=export>
      46             :   // <prerequisite>
      47             :   // </prerequisite>
      48             :   // <etymology>
      49             :   // W-Term to account for non co-planar baselines
      50             :   // </etymology>
      51             :   //
      52             :   // <synopsis> 
      53             :   // 
      54             :   //</synopsis>
      55             :   class WTerm: public CFTerms
      56             :   {
      57             :   public:
      58         135 :     WTerm () : CFTerms() {};
      59         270 :     ~WTerm () {};
      60             : 
      61             :     virtual void applySky(casacore::Matrix<casacore::Complex>& screen, 
      62             :                           const casacore::Int wPixel, 
      63             :                           const casacore::Vector<casacore::Double>& sampling,
      64             :                           const casacore::Double wScale,
      65             :                           const casacore::Int inner);
      66             :     virtual void applySky(casacore::Matrix<casacore::Complex>& screen, 
      67             :                           const casacore::Vector<casacore::Double>& sampling,
      68             :                           const casacore::Double wValue,
      69             :                           const casacore::Int inner);
      70           0 :     int getVisParams(const VisBuffer2& vb,const casacore::CoordinateSystem& skyCoord=casacore::CoordinateSystem()) 
      71           0 :     {(void)vb;(void)skyCoord;return 0;};
      72           0 :     void setPolMap(const casacore::Vector<casacore::Int>& polMap) {(void)polMap;};
      73           0 :     virtual casacore::Float getSupportThreshold() {return 1e-3;};
      74             : 
      75             :     // WTerm normalizes the image be unity
      76           0 :     virtual void normalizeImage(casacore::Lattice<casacore::Complex>& skyImage,
      77             :                                 const casacore::Matrix<casacore::Float>& weights) 
      78           0 :     {(void)skyImage;(void)weights;};
      79           0 :     virtual casacore::String name() {return casacore::String("W Term");};
      80             :     //
      81             :     // The following functions are not required for W-Term but need to
      82             :     // be implemented here since they are pure virtuals in CFTerms
      83             :     // base class.
      84           0 :     void applySky(casacore::ImageInterface<casacore::Float>&,// outputImages,
      85             :                   const VisBuffer2&,// vb, 
      86             :                   const casacore::Bool,/* doSquint=true,*/
      87             :                   const casacore::Int&,/* cfKey=0,*/
      88             :                   const casacore::Int&,/* muellerTerm=0,*/
      89             :                   const casacore::Double /*freqVal*=-1*/) 
      90           0 :     {};
      91           0 :     void applySky(casacore::ImageInterface<casacore::Complex>&,// outputImages,
      92             :                   const VisBuffer2&,// vb, 
      93             :                   const casacore::Bool,/* doSquint=true,*/
      94             :                   const casacore::Int&,/* cfKey=0,*/
      95             :                   const casacore::Int&,/* muellerTerm=0,*/
      96             :                   const casacore::Double /*freqVal=-1*/) 
      97           0 :     {};
      98           0 :     casacore::Vector<casacore::Int> vbRow2CFKeyMap(const VisBuffer2& vb, casacore::Int& nUnique) 
      99           0 :     {(void)vb;(void)nUnique;return casacore::Vector<casacore::Int>();};
     100           0 :     casacore::Int makePBPolnCoords(const VisBuffer2& vb,
     101             :                          const casacore::Int& convSize,
     102             :                          const casacore::Int& convSampling,
     103             :                          const casacore::CoordinateSystem& skyCoord,
     104             :                          const casacore::Int& skyNx, const casacore::Int& skyNy,
     105             :                          casacore::CoordinateSystem& feedCoord) 
     106             :     {
     107             :       (void)vb;(void)convSize;(void)convSampling;(void)skyCoord;(void)skyNx;(void)skyNy;(void)feedCoord;
     108           0 :       return 0;
     109             :     };
     110             : 
     111           0 :     casacore::Bool rotationallySymmetric() {return true;};
     112             : 
     113             : 
     114           0 :     casacore::Int getConvSize() {return 0;};
     115          41 :     casacore::Int getOversampling() {return 4;};
     116           0 :     void setConvSize(const casacore::Int) {};
     117           0 :     casacore::Float getConvWeightSizeFactor() {return 1.0;};
     118             :   };
     119             :   };
     120             : };
     121             : 
     122             : #endif

Generated by: LCOV version 1.16