Line data Source code
1 : // -*- C++ -*- 2 : //# PhaseGrad.h: Definition of the PhaseGrad 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: aips2-request@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_TRANSFORM2_PHASEGRAD_H 30 : #define SYNTHESIS_TRANSFORM2_PHASEGRAD_H 31 : 32 : #include <casacore/casa/Arrays/Matrix.h> 33 : #include <casacore/casa/Arrays/Vector.h> 34 : #include <msvis/MSVis/VisBuffer2.h> 35 : #include <synthesis/TransformMachines2/CFBuffer.h> 36 : #include <synthesis/TransformMachines2/PointingOffsets.h> 37 : 38 : // #include <coordinates/Coordinates/DirectionCoordinate.h> 39 : // #include <images/Images/ImageInterface.h> 40 : // #include <images/Images/TempImage.h> 41 : // #include <msvis/MSVis/VisBuffer2.h> 42 : // #include <synthesis/MeasurementComponents/SolvableVisCal.h> 43 : // class SolvableVisJones; 44 : 45 : namespace casa { //# NAMESPACE CASA - BEGIN 46 : namespace refim{ 47 : // 48 : //------------------------------------------------------------------------------------------- 49 : // 50 : class PhaseGrad 51 : { 52 : public: 53 : // PhaseGrad():field_phaseGrad_p(), antenna_phaseGrad_p(), cached_FieldOffset_p(), cachedCFBPtr_p(NULL), maxCFShape_p(2), needsNewFieldPG_p(false), needsNewPOPG_p(false) 54 190 : PhaseGrad():field_phaseGrad_p(), antenna_phaseGrad_p(), cached_FieldOffset_p(), maxCFShape_p(2), needsNewFieldPG_p(false), needsNewPOPG_p(false), 55 190 : needCFPhaseGrad_p(true) 56 : 57 190 : {}; 58 : 59 190 : ~PhaseGrad() {}; 60 : 61 : PhaseGrad& operator=(const PhaseGrad& other); 62 : 63 : inline const casacore::Matrix<casacore::Complex>& getFieldPointingGrad() {return field_phaseGrad_p;} 64 : inline const casacore::Matrix<casacore::Complex>& getAntennaPointingGrad() {return antenna_phaseGrad_p;} 65 : bool needsNewPhaseGrad(const vi::VisBuffer2& vb, 66 : const int& row); 67 : // void getPhaseGrad(casacore::Matrix<casacore::Complex>& fullPhaseGrad) {fullPhaseGrad = antenna_phaseGrad_p + sky_phaseGrad_p;} 68 : 69 : bool ComputeFieldPointingGrad(const casacore::CountedPtr<PointingOffsets>& pointingOffset, 70 : const casacore::CountedPtr<CFBuffer>& cfb, 71 : const vi::VisBuffer2& vb); 72 : bool ComputeFieldPointingGrad(const casacore::CountedPtr<PointingOffsets>& pointingOffset, 73 : const vi::VisBuffer2& vb, 74 : const int& row, 75 : const pair<int,int> antGrp); 76 : // bool ComputeFieldPointingGrad(const casacore::Vector<double>& pointingOffset, 77 : // const casacore::Vector<int>&cfShape, 78 : // const casacore::Vector<int>& convOrigin, 79 : // const double& /*cfRefFreq*/, 80 : // const double& /*imRefFreq*/, 81 : // const int& spwID, const int& fieldId); 82 : 83 : // private: 84 : casacore::Matrix<casacore::Complex> field_phaseGrad_p; 85 : casacore::Matrix<casacore::Complex> antenna_phaseGrad_p; 86 : casacore::Vector<casacore::RigidVector<double, 2> > cached_FieldOffset_p; 87 : // CFBuffer* cachedCFBPtr_p; 88 : casacore::Vector<int> maxCFShape_p; 89 : bool needsNewFieldPG_p, needsNewPOPG_p, needCFPhaseGrad_p; 90 : }; 91 : // 92 : //------------------------------------------------------------------------------------------- 93 : // 94 : }; 95 : }; 96 : #endif