casa  $Rev:20696$
SpecFitter.h
Go to the documentation of this file.
00001 /*
00002  * SpecFitter.h
00003  *
00004  *  Created on: May 16, 2012
00005  *      Author: slovelan
00006  *
00007  *  This abstract class is an interface that specifies the basic functionality that
00008  *  spectral line profiling should implement.  It is expected that it will be subclassed
00009  *  by implementation classes to provide specialized spectral line fitting behavior.
00010  *
00011  */
00012 
00013 #ifndef SPECFITTER_H_
00014 #define SPECFITTER_H_
00015 
00016 #include <QString>
00017 #include <casa/BasicSL/String.h>
00018 #include <casa/Arrays/Vector.h>
00019 namespace casa {
00020 
00021 class QtCanvas;
00022 class SpecFitMonitor;
00023 class LogIO;
00024 template <class T> class ImageInterface;
00025 
00026 class SpecFitter {
00027 public:
00028         SpecFitter();
00029         virtual ~SpecFitter();
00030 
00031         virtual void specLineFit() = 0;
00032         virtual void setUnits( QString units ) = 0;
00033         virtual void setRange(float start, float end )=0;
00034         virtual void resetSpectralFitter() = 0;
00035 
00036         virtual void setCanvas( QtCanvas* pixelCanvas );
00037         virtual void setSpecFitMonitor( SpecFitMonitor* monitor );
00038         virtual void setLogger( LogIO* log );
00039         virtual void plotMainCurve();
00040 
00041         virtual QString getFileName();
00042         virtual void logWarning(String msg );
00043         virtual void postStatus( String status );
00044         virtual Vector<Float> getXValues() const;
00045         virtual Vector<Float> getYValues() const;
00046         virtual Vector<Float> getZValues() const;
00047         virtual QString getYUnit() const;
00048         virtual QString getYUnitPrefix() const;
00049         virtual String getXAxisUnit() const;
00050         virtual const ImageInterface<Float>* getImage() const;
00051         virtual const String getPixelBox() const;
00052 
00053 protected:
00054         QtCanvas* pixelCanvas;
00055         SpecFitMonitor* specFitMonitor;
00056         LogIO* logger;
00057 };
00058 
00059 } /* namespace casa */
00060 #endif /* SPECFITTER_H_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines