casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
MSAnalysis.h
Go to the documentation of this file.
00001 //# MSAnalysis.h: MS analysis and handling tool
00002 //# Copyright (C) 2007
00003 //# Associated Universities, Inc. Washington DC, USA.
00004 //#
00005 //# This program is free software; you can redistribute it and/or modify it
00006 //# under the terms of the GNU General Public License as published by the Free
00007 //# Software Foundation; either version 2 of the License, or (at your option)
00008 //# any later version.
00009 //#
00010 //# This program is distributed in the hope that it will be useful, but WITHOUT
00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00012 //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
00013 //# more details.
00014 //#
00015 //# You should have received a copy of the GNU General Public License along
00016 //# with this program; if not, write to the Free Software Foundation, Inc.,
00017 //# 675 Massachusetts Ave, Cambridge, MA 02139, USA.
00018 //#
00019 //# Correspondence concerning AIPS++ should be addressed as follows:
00020 //#        Internet email: aips2-request@nrao.edu.
00021 //#        Postal address: AIPS++ Project Office
00022 //#                        National Radio Astronomy Observatory
00023 //#                        520 Edgemont Road
00024 //#                        Charlottesville, VA 22903-2475 USA
00025 
00026 #ifndef _MS_MSALYSIS_H_
00027 #define _MS_MSANALYSIS_H_
00028 
00029 // includes
00030 #include <synthesis/MSVis/MSMoments.h>
00031 #include <ms/MeasurementSets/MeasurementSet.h>
00032 #include <casa/Logging/LogIO.h>
00033 
00034 namespace casa {
00035 
00036 class MeasurementSet ;
00037 template<class T> class MSMoments ;
00038 
00039 // <summary>
00040 // This class is a single dish spectral data analysis tool
00041 // </summary>
00042 
00043 // <use visibility=export>
00044 
00045 // <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos="">
00046 // </reviewed>
00047 
00048 // <etymology>
00049 // This class is a single dish spectral data analysis tool.
00050 // </etymology>
00051 //
00052 // <synopsis>
00053 // MSAnalysis is a single dish spectral data analysis tool.
00054 // Input data should be in the form of MeasurementSet with 
00055 // FLOAT_DATA column (autocorrelation data).
00056 //
00057 // </synopsis>
00058 //
00059 class MSAnalysis
00060 {
00061 public:
00062 
00063   // Constructor
00064   MSAnalysis( const casa::MeasurementSet *inMS ) ;
00065 
00066   // Destructor
00067   virtual ~MSAnalysis() ;
00068 
00069   // moment calculation
00070   MeasurementSet *moments( const Vector<Int> &whichmoments,
00071                            //const String &mask,
00072                            const String &antenna,
00073                            const String &field,
00074                            const String &spw,
00075                            const Vector<String> &method,
00076                            const Vector<Int> &smoothAxes,
00077                            const Vector<String> &kernels,
00078                            const Vector<Quantity> &kernelWidths,
00079                            const Vector<Float> &includemask,
00080                            const Vector<Float> &excludemask,
00081                            const Double peaksnr,
00082                            const Double stddev,
00083                            const String &velocityType,
00084                            const String &out,
00085                            const String &smoothOut,
00086                            //const String &pgdevice,
00087                            //const Int nx,
00088                            //const Int ny,
00089                            //const Bool yind,
00090                            const Bool overwrite
00091                            ) ;
00092 private:
00093   // Set other data
00094   // <group>
00095   void setMS( casa::MeasurementSet *inMS ) ;
00096   void setMS( const casa::String name ) ;
00097   // </group>
00098 
00099   // Select data from input MS
00100   void selectMS( const String antenna, const String field, const String spw ) ;
00101 
00102   // Clean up temporary files
00103   void cleanup() ;
00104 
00105   // Initialization
00106   void init( const casa::MeasurementSet *inMS ) ;
00107 
00108   // Add comments on HISTORY table
00109   void addHistory( String tableName, String suffix ) ;
00110 
00111   // MeasurementSet data (should have FLOAT_DATA column)
00112   MeasurementSet *ms_p ;
00113 
00114   // Selected Table name
00115   String tableName_ ;
00116 
00117   // Original Table name
00118   String tableIn_ ;
00119 
00120   // Logger
00121   LogIO *itsLog ;
00122 
00123 };
00124 
00125 } // casac namespace
00126 #endif