casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
VBStore.h
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //# VBStore.h: Definition of the VBStore 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 #ifndef SYNTHESIS_VBSTORE_H
00029 #define SYNTHESIS_VBSTORE_H
00030 #include <synthesis/TransformMachines/Utils.h>
00031 
00032 namespace casa { //# NAMESPACE CASA - BEGIN
00033   class VBStore
00034   {
00035   public:
00036     VBStore():dopsf_p(False) {};
00037     ~VBStore() {};
00038     inline Int nRow()              {return nRow_p;};
00039     inline Int beginRow()          {return beginRow_p;}
00040     inline Int endRow()            {return endRow_p;}
00041     inline Int spwID()             {return spwID_p;}
00042     inline Bool dopsf()            {return dopsf_p;}
00043     inline Bool useCorrected()     {return useCorrected_p;};
00044     Matrix<Double>& uvw()          {return uvw_p;};
00045     Vector<Bool>& rowFlag()        {return rowFlag_p;};
00046     Cube<Bool>& flagCube()         {return flagCube_p;};
00047     Matrix<Float>& imagingWeight() {return imagingWeight_p;};
00048     Cube<Complex>& visCube()       {return visCube_p;};
00049     Vector<Double>& freq()         {return freq_p;};
00050     Cube<Complex>& modelCube()     {return modelCube_p;};
00051     Cube<Complex>& correctedCube() {return correctedCube_p;};
00052     Quantity pa()                  {return paQuant_p;}
00053     const VisBuffer& vb()          {return *vb_p;}
00054     Double imRefFreq()             {return imRefFreq_p;}
00055 
00056     void reference(const VBStore& other)
00057     {
00058       nRow_p=other.nRow_p;  beginRow_p=other.beginRow_p; endRow_p=other.endRow_p;
00059       dopsf_p = other.dopsf_p;
00060       useCorrected_p = other.useCorrected_p;
00061 
00062       uvw_p.reference(other.uvw_p);
00063       rowFlag_p.reference(other.rowFlag_p);
00064       flagCube_p.reference(other.flagCube_p);
00065       imagingWeight_p.reference(other.imagingWeight_p);
00066       freq_p.reference(other.freq_p);
00067       // if (useCorrected_p) correctedCube_p.reference(other.correctedCube_p);
00068       // else visCube_p.reference(other.visCube_p);
00069       // if (useCorrected_p) 
00070       //        {
00071       //          correctedCube_p.reference(other.correctedCube_p);
00072       //          visCube_p.reference(other.correctedCube_p);
00073       //        }
00074       // else visCube_p.reference(other.visCube_p);
00075       correctedCube_p.reference(other.correctedCube_p);
00076       visCube_p.reference(other.visCube_p);
00077       modelCube_p.reference(other.modelCube_p);
00078 
00079       // uvw_p.assign(other.uvw_p);
00080       // rowFlag_p.assign(other.rowFlag_p);
00081       // flagCube_p.assign(other.flagCube_p);
00082       // imagingWeight_p.assign(other.imagingWeight_p);
00083       // freq_p.assign(other.freq_p);
00084       // visCube_p.assign(other.visCube_p);
00085       // modelCube_p.assign(other.modelCube_p);
00086       // correctedCube_p.assign(other.correctedCube_p);
00087     }
00088 
00089     Int nRow_p, beginRow_p, endRow_p, spwID_p, startChan_p, endChan_p;
00090     Matrix<Double> uvw_p;
00091     Vector<Bool> rowFlag_p;
00092     Cube<Bool> flagCube_p;
00093     Matrix<Float> imagingWeight_p;
00094     Cube<Complex> visCube_p, modelCube_p, correctedCube_p;
00095     Vector<Double> freq_p;
00096     Bool dopsf_p,useCorrected_p, conjBeams_p;
00097     Vector<Int> corrType_p;
00098     Quantity paQuant_p;
00099     Vector<Int> antenna1_p, antenna2_p;
00100     const VisBuffer *vb_p;
00101     Double imRefFreq_p;
00102   };
00103 
00104 } //# NAMESPACE CASA - END
00105 #endif