Line data Source code
1 : // -*- C++ -*-
2 : //# AWConvFunc.h: Definition of the AWConvFunc class
3 : //# Copyright (C) 1997,1998,1999,2000,2001,2002,2003
4 : //# Associated Universities, Inc. Washington DC, USA.
5 : //#
6 : //# This library is free software; you can redistribute it and/or modify it
7 : //# under the terms of the GNU Library General Public License as published by
8 : //# the Free Software Foundation; either version 2 of the License, or (at your
9 : //# option) any later version.
10 : //#
11 : //# This library is distributed in the hope that it will be useful, but WITHOUT
12 : //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 : //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
14 : //# License for more details.
15 : //#
16 : //# You should have received a copy of the GNU Library General Public License
17 : //# along with this library; if not, write to the Free Software Foundation,
18 : //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
19 : //#
20 : //# Correspondence concerning AIPS++ should be addressed as follows:
21 : //# Internet email: casa-feedback@nrao.edu.
22 : //# Postal address: AIPS++ Project Office
23 : //# National Radio Astronomy Observatory
24 : //# 520 Edgemont Road
25 : //# Charlottesville, VA 22903-2475 USA
26 : //#
27 : //# $Id$
28 : //
29 : #ifndef SYNTHESIS_AWCONVFUNCEPJONES_H
30 : #define SYNTHESIS_AWCONVFUNCEPJONES_H
31 :
32 : #include <synthesis/TransformMachines/AWConvFunc.h>
33 : #include <casacore/coordinates/Coordinates/DirectionCoordinate.h>
34 : #include <synthesis/TransformMachines/PSTerm.h>
35 : #include <synthesis/TransformMachines/WTerm.h>
36 : #include <synthesis/TransformMachines/ATerm.h>
37 : #include <casacore/images/Images/ImageInterface.h>
38 : #include <casacore/images/Images/TempImage.h>
39 : #include <casacore/casa/Logging/LogIO.h>
40 : #include <casacore/casa/Logging/LogSink.h>
41 : #include <casacore/casa/Logging/LogOrigin.h>
42 :
43 : namespace casa { //# NAMESPACE CASA - BEGIN
44 : //
45 : //-------------------------------------------------------------------------------------------
46 : //
47 : class AWConvFuncEPJones : public AWConvFunc
48 : {
49 : public:
50 0 : AWConvFuncEPJones(const casacore::CountedPtr<ATerm> ATerm,
51 : const casacore::CountedPtr<PSTerm> psTerm,
52 : const casacore::CountedPtr<WTerm> wTerm,
53 : const casacore::Bool wbAWP=false,
54 0 : const casacore::Bool conjPB=casacore::True):
55 0 : AWConvFunc(ATerm,psTerm,wTerm,wbAWP,conjPB), imageDC_p(),imageObsInfo_p(),
56 0 : nx_p(-1), ny_p(-1),nchan_p(-1),npol_p(-1),csys_p(),dc_p(),pointToPix_p(),
57 0 : pointFrame_p(),timeMType_p(),timeUnit_p(),directionIndex_p(-1),
58 0 : direction1_p(), direction2_p()
59 0 : {};
60 0 : ~AWConvFuncEPJones() {};
61 : AWConvFuncEPJones& operator=(const AWConvFuncEPJones& other);
62 :
63 : // MosaicFT related
64 : virtual void makeConvFunction(const casacore::ImageInterface<casacore::Complex>& image,
65 : const VisBuffer& vb,
66 : const casacore::Int wConvSize,
67 : const casacore::CountedPtr<PolOuterProduct>& pop,
68 : const casacore::Float pa,
69 : const casacore::Float dpa,
70 : const casacore::Vector<casacore::Double>& uvScale, const casacore::Vector<casacore::Double>& uvOffset,
71 : const casacore::Matrix<casacore::Double>& vbFreqSelection,
72 : CFStore2& cfs,
73 : CFStore2& cfwts,
74 : casacore::Bool fillCF=true);
75 : virtual casacore::Vector<casacore::Double> findPointingOffset(const casacore::ImageInterface<casacore::Complex>& image,
76 : const VisBuffer& vb);
77 :
78 : void toPix(const VisBuffer& vb);
79 : void storeImageParams(const casacore::ImageInterface<casacore::Complex>& iimage,
80 : const VisBuffer& vb);
81 : private:
82 : // MosaicFT related
83 : casacore::DirectionCoordinate imageDC_p;
84 : casacore::ObsInfo imageObsInfo_p;
85 : casacore::Int nx_p;
86 : casacore::Int ny_p;
87 : casacore::Int nchan_p;
88 : casacore::Int npol_p;
89 : casacore::CoordinateSystem csys_p;
90 : casacore::DirectionCoordinate dc_p;
91 : casacore::MDirection::Convert pointToPix_p;
92 : casacore::MeasFrame pointFrame_p;
93 : casacore::MEpoch::Types timeMType_p;
94 : casacore::Unit timeUnit_p;
95 : casacore::Int directionIndex_p;
96 : casacore::MDirection direction1_p;
97 : casacore::MDirection direction2_p;
98 : };
99 : //
100 : //-------------------------------------------------------------------------------------------
101 : //
102 : };
103 : #endif
|