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 Bool dopsf()            {return dopsf_p;}
00042     inline Bool useCorrected()     {return useCorrected_p;};
00043     Matrix<Double>& uvw()          {return uvw_p;};
00044     Vector<Bool>& rowFlag()        {return rowFlag_p;};
00045     Cube<Bool>& flagCube()         {return flagCube_p;};
00046     Matrix<Float>& imagingWeight() {return imagingWeight_p;};
00047     Cube<Complex>& visCube()       {return visCube_p;};
00048     Vector<Double>& freq()         {return freq_p;};
00049     Cube<Complex>& modelCube()     {return modelCube_p;};
00050     Cube<Complex>& correctedCube() {return correctedCube_p;};
00051 
00052     void reference(const VBStore& other)
00053     {
00054       nRow_p=other.nRow_p;  beginRow_p=other.beginRow_p; endRow_p=other.endRow_p;
00055       dopsf_p = other.dopsf_p;
00056       useCorrected_p = other.useCorrected_p;
00057 
00058       uvw_p.reference(other.uvw_p);
00059       rowFlag_p.reference(other.rowFlag_p);
00060       flagCube_p.reference(other.flagCube_p);
00061       imagingWeight_p.reference(other.imagingWeight_p);
00062       freq_p.reference(other.freq_p);
00063       // if (useCorrected_p) correctedCube_p.reference(other.correctedCube_p);
00064       // else visCube_p.reference(other.visCube_p);
00065       // if (useCorrected_p) 
00066       //        {
00067       //          correctedCube_p.reference(other.correctedCube_p);
00068       //          visCube_p.reference(other.correctedCube_p);
00069       //        }
00070       // else visCube_p.reference(other.visCube_p);
00071       correctedCube_p.reference(other.correctedCube_p);
00072       visCube_p.reference(other.visCube_p);
00073       modelCube_p.reference(other.modelCube_p);
00074 
00075       // uvw_p.assign(other.uvw_p);
00076       // rowFlag_p.assign(other.rowFlag_p);
00077       // flagCube_p.assign(other.flagCube_p);
00078       // imagingWeight_p.assign(other.imagingWeight_p);
00079       // freq_p.assign(other.freq_p);
00080       // visCube_p.assign(other.visCube_p);
00081       // modelCube_p.assign(other.modelCube_p);
00082       // correctedCube_p.assign(other.correctedCube_p);
00083     }
00084 
00085     Int nRow_p, beginRow_p, endRow_p;
00086     Matrix<Double> uvw_p;
00087     Vector<Bool> rowFlag_p;
00088     Cube<Bool> flagCube_p;
00089     Matrix<Float> imagingWeight_p;
00090     Cube<Complex> visCube_p, modelCube_p, correctedCube_p;
00091     Vector<Double> freq_p;
00092     Bool dopsf_p,useCorrected_p;
00093   };
00094 
00095 } //# NAMESPACE CASA - END
00096 #endif