LCOV - code coverage report
Current view: top level - synthesis/MeasurementComponents - CEMemImageSkyModel.h (source / functions) Hit Total Coverage
Test: ctest_coverage.info Lines: 0 5 0.0 %
Date: 2023-11-02 14:27:30 Functions: 0 5 0.0 %

          Line data    Source code
       1             : //# CEMemImageSkyModel.h: Definition for CEMemImageSkyModel
       2             : //# Copyright (C) 1996,1997,1998,1999,2000
       3             : //# Associated Universities, Inc. Washington DC, USA.
       4             : //#
       5             : //# This library is free software; you can redistribute it and/or modify it
       6             : //# under the terms of the GNU Library General Public License as published by
       7             : //# the Free Software Foundation; either version 2 of the License, or (at your
       8             : //# option) any later version.
       9             : //#
      10             : //# This library is distributed in the hope that it will be useful, but WITHOUT
      11             : //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      12             : //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
      13             : //# License for more details.
      14             : //#
      15             : //# You should have received a copy of the GNU Library General Public License
      16             : //# along with this library; if not, write to the Free Software Foundation,
      17             : //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
      18             : //#
      19             : //# Correspondence concerning AIPS++ should be adressed as follows:
      20             : //#        Internet email: aips2-request@nrao.edu.
      21             : //#        Postal address: AIPS++ Project Office
      22             : //#                        National Radio Astronomy Observatory
      23             : //#                        520 Edgemont Road
      24             : //#                        Charlottesville, VA 22903-2475 USA
      25             : //#
      26             : //#
      27             : //# $Id$
      28             : 
      29             : #ifndef SYNTHESIS_CEMEMIMAGESKYMODEL_H
      30             : #define SYNTHESIS_CEMEMIMAGESKYMODEL_H
      31             : 
      32             : #include <synthesis/MeasurementComponents/CleanImageSkyModel.h>
      33             : namespace casa { //# NAMESPACE CASA - BEGIN
      34             : 
      35             : //forward
      36             : class SkyEquation;
      37             : class CEMemProgress;
      38             : 
      39             : // <summary> Image Sky Model for the Cornwell-Evens maximum entropy algorithm </summary>
      40             : 
      41             : // <use visibility=export>
      42             : 
      43             : // <reviewed reviewer="" date="" tests="" demos="">
      44             : 
      45             : // <prerequisite>
      46             : //   <li> <linkto class=ImageSkyModel>ImageSkyModel</linkto> class
      47             : //   <li> <linkto class=CEMemLatModel>CEMemModel</linkto> class
      48             : // </prerequisite>
      49             : //
      50             : // <etymology>
      51             : // CEMemImageSkyModel implements the Cornwell-Evens MEM algorithm.
      52             : // It is derived from <linkto class=CleanImageSkyModel>CleanImageSkyModel</linkto>.
      53             : // </etymology>
      54             : //
      55             : // <synopsis> 
      56             : // We need to add more stuff here.
      57             : //
      58             : //
      59             : //
      60             : // Masking is optionally performed using a mask image: only points
      61             : // where the mask is non-zero are cleaned. If no mask is specified
      62             : // all points in the inner quarter of the image are cleaned.
      63             : // </synopsis> 
      64             : //
      65             : // <example>
      66             : // See the example for <linkto class=CleanImageSkyModel>CleanImageSkyModel</linkto>.
      67             : // </example>
      68             : //
      69             : // <motivation>
      70             : // </motivation>
      71             : //
      72             : // <todo asof="99/11/01">
      73             : // <ul> Some of the "CleanImageSkyModel" functionality should be moved to "ImageSkyModel"
      74             : // <ul> Create another virtual base class, "MemImageSkyModel", derived from "ImageSkyModel"
      75             : // <ul> THEN: derive CEMemImageSkyModel from "MemImageSkyModel"
      76             : // <ul> However, now we are just doing what works quickly: deriving from CleanImageSkyModel
      77             : // </todo>
      78             : 
      79             : class CEMemImageSkyModel : public CleanImageSkyModel {
      80             : public:
      81             : 
      82             :   // constructor
      83             :   CEMemImageSkyModel(casacore::Float sigma, 
      84             :                      casacore::Float targetFlux,
      85             :                      casacore::Bool constrainFlux,
      86             :                      const casacore::Vector<casacore::String>& priors,
      87             :                      const casacore::String& entropy);
      88             : 
      89             :   // destructor
      90             :   ~CEMemImageSkyModel();
      91             : 
      92             :   // Solve for this SkyModel
      93             :   virtual casacore::Bool solve (SkyEquation& me);
      94             : 
      95             :   // Set control parameters which are different from Clean:
      96             :   //<group>
      97             :   void setSigma(const casacore::Float targetSigma) {itsSigma = targetSigma; }
      98             :   void setTargetFlux(const casacore::Float targetFlux) {itsTargetFlux = targetFlux; }
      99             :   void setConstrainTargetFlux(const casacore::Bool constrainFlux) { itsConstrainFlux = constrainFlux; }
     100             :   void setPrior(const casacore::Vector<casacore::String>& prior) { itsPrior = prior; }
     101             :   void setEntropy(const casacore::String& ent) { itsEntropy = ent; }
     102             :   //</group>
     103             : 
     104             :   // Get the various control parameters which are different from Clean:
     105             :   //<group>
     106           0 :   casacore::Float sigma() { return itsSigma; }
     107           0 :   casacore::Float targetFlux() { return itsTargetFlux; }
     108           0 :   casacore::Bool constrainFlux() { return itsConstrainFlux; }
     109             :   casacore::Vector<casacore::String> prior() { return itsPrior; }
     110           0 :   casacore::String entropy() { return itsEntropy; }
     111             :   //</group>
     112             : 
     113             : protected:
     114             : 
     115           0 :   casacore::Bool initializeModel() { return itsInitializeModel; }
     116             :   
     117             :   casacore::Float itsSigma;
     118             :   casacore::Float itsTargetFlux;
     119             :   casacore::Bool itsConstrainFlux;
     120             :   casacore::Vector<casacore::String> itsPrior;
     121             :   casacore::String itsEntropy;
     122             :   casacore::Bool itsInitializeModel;
     123             : 
     124             :   CEMemProgress *itsProgress;
     125             : 
     126             : };
     127             : 
     128             : 
     129             : } //# NAMESPACE CASA - END
     130             : 
     131             : #endif
     132             : 
     133             : 

Generated by: LCOV version 1.16