From 8a9b5adc3c1cd1ca8b072e01555c4875ebfdd35b Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Sun, 17 Feb 2013 21:50:39 +0100 Subject: [PATCH] Rename Radial models to SpatialRadial. --- include/GModelSpatialRadialDisk.hpp | 48 ++++++++++++++++++++++++------------------------ include/GModelSpatialRadialGauss.hpp | 48 ++++++++++++++++++++++++------------------------ include/GModelSpatialRadialShell.hpp | 48 ++++++++++++++++++++++++------------------------ include/GammaLib.hpp | 6 +++--- include/Makefile.am | 6 +++--- pyext/GModelSky.i | 18 +++++++++--------- pyext/GModelSpatialRadialDisk.i | 44 ++++++++++++++++++++++---------------------- pyext/GModelSpatialRadialGauss.i | 44 ++++++++++++++++++++++---------------------- pyext/GModelSpatialRadialShell.i | 44 ++++++++++++++++++++++---------------------- pyext/gammalib/model.i | 6 +++--- src/model/GModelSpatialRadialDisk.cpp | 77 +++++++++++++++++++++++++++++++++++++---------------------------------------- src/model/GModelSpatialRadialGauss.cpp | 70 +++++++++++++++++++++++++++++++++++++--------------------------------- src/model/GModelSpatialRadialShell.cpp | 85 +++++++++++++++++++++++++++++++++++++++++++++---------------------------------------- src/model/Makefile.am | 6 +++--- 14 files changed, 278 insertions(+), 272 deletions(-) diff --git a/include/GModelSpatialRadialDisk.hpp b/include/GModelSpatialRadialDisk.hpp index a796e5d..3e891d8 100644 --- a/include/GModelSpatialRadialDisk.hpp +++ b/include/GModelSpatialRadialDisk.hpp @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialDisk.hpp - Radial disk source model class * + * GModelSpatialRadialDisk.hpp - Radial disk source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Christoph Deil * * ----------------------------------------------------------------------- * @@ -19,13 +19,13 @@ * * ***************************************************************************/ /** - * @file GModelRadialDisk.hpp + * @file GModelSpatialRadialDisk.hpp * @brief Radial disk model class interface definition * @author Christoph Deil */ -#ifndef GMODELRADIALDISK_HPP -#define GMODELRADIALDISK_HPP +#ifndef GMODELSPATIALRADIALDISK_HPP +#define GMODELSPATIALRADIALDISK_HPP /* __ Includes ___________________________________________________________ */ #include @@ -36,7 +36,7 @@ /************************************************************************** - * @class GModelRadialDisk + * @class GModelSpatialRadialDisk * * @brief Disk source model class * @@ -44,30 +44,30 @@ * model for a disk source, i.e. constant surface brightness within some * radius and no emission outside. ***************************************************************************/ -class GModelRadialDisk : public GModelSpatialRadial { +class GModelSpatialRadialDisk : public GModelSpatialRadial { public: // Constructors and destructors - GModelRadialDisk(void); - explicit GModelRadialDisk(const GSkyDir& dir, const double& radius); - explicit GModelRadialDisk(const GXmlElement& xml); - GModelRadialDisk(const GModelRadialDisk& model); - virtual ~GModelRadialDisk(void); + GModelSpatialRadialDisk(void); + explicit GModelSpatialRadialDisk(const GSkyDir& dir, const double& radius); + explicit GModelSpatialRadialDisk(const GXmlElement& xml); + GModelSpatialRadialDisk(const GModelSpatialRadialDisk& model); + virtual ~GModelSpatialRadialDisk(void); // Operators - virtual GModelRadialDisk& operator=(const GModelRadialDisk& model); + virtual GModelSpatialRadialDisk& operator=(const GModelSpatialRadialDisk& model); // Implemented pure virtual methods - virtual void clear(void); - virtual GModelRadialDisk* clone(void) const; - virtual std::string type(void) const { return "DiskFunction"; } - virtual double eval(const double& theta) const; - virtual double eval_gradients(const double& theta) const; - virtual GSkyDir mc(GRan& ran) const; - virtual double theta_max(void) const; - virtual void read(const GXmlElement& xml); - virtual void write(GXmlElement& xml) const; - virtual std::string print(void) const; + virtual void clear(void); + virtual GModelSpatialRadialDisk* clone(void) const; + virtual std::string type(void) const { return "DiskFunction"; } + virtual double eval(const double& theta) const; + virtual double eval_gradients(const double& theta) const; + virtual GSkyDir mc(GRan& ran) const; + virtual double theta_max(void) const; + virtual void read(const GXmlElement& xml); + virtual void write(GXmlElement& xml) const; + virtual std::string print(void) const; // Other methods double radius(void) const { return m_radius.real_value(); } @@ -76,7 +76,7 @@ public: protected: // Protected methods void init_members(void); - void copy_members(const GModelRadialDisk& model); + void copy_members(const GModelSpatialRadialDisk& model); void free_members(void); void update(void) const; @@ -89,4 +89,4 @@ protected: mutable double m_norm; //!< Normalization }; -#endif /* GMODELRADIALDISK_HPP */ +#endif /* GMODELSPATIALRADIALDISK_HPP */ diff --git a/include/GModelSpatialRadialGauss.hpp b/include/GModelSpatialRadialGauss.hpp index a50d613..1f9e9ba 100644 --- a/include/GModelSpatialRadialGauss.hpp +++ b/include/GModelSpatialRadialGauss.hpp @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialGauss.hpp - Radial Gaussian source model class * + * GModelSpatialRadialGauss.hpp - Radial Gaussian source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * @@ -19,13 +19,13 @@ * * ***************************************************************************/ /** - * @file GModelRadialGauss.hpp + * @file GModelSpatialRadialGauss.hpp * @brief Radial Gaussian model class interface definition * @author Juergen Knoedlseder */ -#ifndef GMODELRADIALGAUSS_HPP -#define GMODELRADIALGAUSS_HPP +#ifndef GMODELSPATIALRADIALGAUSS_HPP +#define GMODELSPATIALRADIALGAUSS_HPP /* __ Includes ___________________________________________________________ */ #include @@ -36,37 +36,37 @@ /***********************************************************************//** - * @class GModelRadialGauss + * @class GModelSpatialRadialGauss * * @brief Radial Gaussian model class * * This class implements the spatial component of the factorised source * model for a Gaussian source. ***************************************************************************/ -class GModelRadialGauss : public GModelSpatialRadial { +class GModelSpatialRadialGauss : public GModelSpatialRadial { public: // Constructors and destructors - GModelRadialGauss(void); - explicit GModelRadialGauss(const GSkyDir& dir, const double& sigma); - explicit GModelRadialGauss(const GXmlElement& xml); - GModelRadialGauss(const GModelRadialGauss& model); - virtual ~GModelRadialGauss(void); + GModelSpatialRadialGauss(void); + explicit GModelSpatialRadialGauss(const GSkyDir& dir, const double& sigma); + explicit GModelSpatialRadialGauss(const GXmlElement& xml); + GModelSpatialRadialGauss(const GModelSpatialRadialGauss& model); + virtual ~GModelSpatialRadialGauss(void); // Operators - virtual GModelRadialGauss& operator=(const GModelRadialGauss& model); + virtual GModelSpatialRadialGauss& operator=(const GModelSpatialRadialGauss& model); // Implemented pure virtual methods - virtual void clear(void); - virtual GModelRadialGauss* clone(void) const; - virtual std::string type(void) const { return "GaussFunction"; } - virtual double eval(const double& theta) const; - virtual double eval_gradients(const double& theta) const; - virtual GSkyDir mc(GRan& ran) const; - virtual double theta_max(void) const; - virtual void read(const GXmlElement& xml); - virtual void write(GXmlElement& xml) const; - virtual std::string print(void) const; + virtual void clear(void); + virtual GModelSpatialRadialGauss* clone(void) const; + virtual std::string type(void) const { return "GaussFunction"; } + virtual double eval(const double& theta) const; + virtual double eval_gradients(const double& theta) const; + virtual GSkyDir mc(GRan& ran) const; + virtual double theta_max(void) const; + virtual void read(const GXmlElement& xml); + virtual void write(GXmlElement& xml) const; + virtual std::string print(void) const; // Other methods double sigma(void) const { return m_sigma.real_value(); } @@ -75,11 +75,11 @@ public: protected: // Protected methods void init_members(void); - void copy_members(const GModelRadialGauss& model); + void copy_members(const GModelSpatialRadialGauss& model); void free_members(void); // Protected members GModelPar m_sigma; //!< Gaussian width (deg) }; -#endif /* GMODELRADIALGAUSS_HPP */ +#endif /* GMODELSPATIALRADIALGAUSS_HPP */ diff --git a/include/GModelSpatialRadialShell.hpp b/include/GModelSpatialRadialShell.hpp index 3169435..41b9077 100644 --- a/include/GModelSpatialRadialShell.hpp +++ b/include/GModelSpatialRadialShell.hpp @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialShell.hpp - Radial shell source model class * + * GModelSpatialRadialShell.hpp - Radial shell source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Christoph Deil * * ----------------------------------------------------------------------- * @@ -19,13 +19,13 @@ * * ***************************************************************************/ /** - * @file GModelRadialShell.hpp + * @file GModelSpatialRadialShell.hpp * @brief Radial shell model class interface definition * @author Christoph Deil */ -#ifndef GMODELRADIALSHELL_HPP -#define GMODELRADIALSHELL_HPP +#ifndef GMODELSPATIALRADIALSHELL_HPP +#define GMODELSPATIALRADIALSHELL_HPP /* __ Includes ___________________________________________________________ */ #include @@ -36,7 +36,7 @@ /************************************************************************** - * @class GModelRadialShell + * @class GModelSpatialRadialShell * * @brief Shell source model class * @@ -54,32 +54,32 @@ * the gamma-ray domain, and improves the convergence of the fitting * algorithms. ***************************************************************************/ -class GModelRadialShell : public GModelSpatialRadial { +class GModelSpatialRadialShell : public GModelSpatialRadial { public: // Constructors and destructors - GModelRadialShell(void); - explicit GModelRadialShell(const GSkyDir& dir, + GModelSpatialRadialShell(void); + explicit GModelSpatialRadialShell(const GSkyDir& dir, const double& radius, const double& width, const bool& small_angle = true); - explicit GModelRadialShell(const GXmlElement& xml); - GModelRadialShell(const GModelRadialShell& model); - virtual ~GModelRadialShell(void); + explicit GModelSpatialRadialShell(const GXmlElement& xml); + GModelSpatialRadialShell(const GModelSpatialRadialShell& model); + virtual ~GModelSpatialRadialShell(void); // Operators - virtual GModelRadialShell& operator=(const GModelRadialShell& model); + virtual GModelSpatialRadialShell& operator=(const GModelSpatialRadialShell& model); // Implemented pure virtual methods - virtual void clear(void); - virtual GModelRadialShell* clone(void) const; - virtual std::string type(void) const { return "ShellFunction"; } - virtual double eval(const double& theta) const; - virtual double eval_gradients(const double& theta) const; - virtual GSkyDir mc(GRan& ran) const; - virtual double theta_max(void) const; - virtual void read(const GXmlElement& xml); - virtual void write(GXmlElement& xml) const; - virtual std::string print(void) const; + virtual void clear(void); + virtual GModelSpatialRadialShell* clone(void) const; + virtual std::string type(void) const { return "ShellFunction"; } + virtual double eval(const double& theta) const; + virtual double eval_gradients(const double& theta) const; + virtual GSkyDir mc(GRan& ran) const; + virtual double theta_max(void) const; + virtual void read(const GXmlElement& xml); + virtual void write(GXmlElement& xml) const; + virtual std::string print(void) const; // Other methods double radius(void) const { return m_radius.real_value(); } @@ -92,7 +92,7 @@ public: protected: // Protected methods void init_members(void); - void copy_members(const GModelRadialShell& model); + void copy_members(const GModelSpatialRadialShell& model); void free_members(void); void update(void) const; static double f1(double x); @@ -113,4 +113,4 @@ protected: mutable double m_norm; //!< Shell normalization }; -#endif /* GMODELRADIALSHELL_HPP */ +#endif /* GMODELSPATIALRADIALSHELL_HPP */ diff --git a/include/GammaLib.hpp b/include/GammaLib.hpp index b7a7f9a..bb3232a 100644 --- a/include/GammaLib.hpp +++ b/include/GammaLib.hpp @@ -166,9 +166,9 @@ #include "GModelSpatialRegistry.hpp" #include "GModelSpatialPointSource.hpp" #include "GModelSpatialRadial.hpp" -#include "GModelRadialDisk.hpp" -#include "GModelRadialGauss.hpp" -#include "GModelRadialShell.hpp" +#include "GModelSpatialRadialDisk.hpp" +#include "GModelSpatialRadialGauss.hpp" +#include "GModelSpatialRadialShell.hpp" #include "GModelSpatialConst.hpp" #include "GModelSpatialCube.hpp" #include "GModelSpatialMap.hpp" diff --git a/include/Makefile.am b/include/Makefile.am index 096891d..0b8873c 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -111,9 +111,9 @@ pkginclude_HEADERS = GammaLib.hpp \ GModelSpatialRegistry.hpp \ GModelSpatialPointSource.hpp \ GModelSpatialRadial.hpp \ - GModelRadialDisk.hpp \ - GModelRadialGauss.hpp \ - GModelRadialShell.hpp \ + GModelSpatialRadialDisk.hpp \ + GModelSpatialRadialGauss.hpp \ + GModelSpatialRadialShell.hpp \ GModelSpatialConst.hpp \ GModelSpatialCube.hpp \ GModelSpatialMap.hpp \ diff --git a/pyext/GModelSky.i b/pyext/GModelSky.i index 2d145f2..2170f27 100644 --- a/pyext/GModelSky.i +++ b/pyext/GModelSky.i @@ -28,9 +28,9 @@ #include "GModelSky.hpp" #include "GModelSpatial.hpp" #include "GModelSpatialRadial.hpp" -#include "GModelRadialDisk.hpp" -#include "GModelRadialGauss.hpp" -#include "GModelRadialShell.hpp" +#include "GModelSpatialRadialDisk.hpp" +#include "GModelSpatialRadialGauss.hpp" +#include "GModelSpatialRadialShell.hpp" #include "GModelSpatialConst.hpp" #include "GModelSpatialCube.hpp" #include "GModelSpatialMap.hpp" @@ -49,14 +49,14 @@ /* __ Typemaps ___________________________________________________________ */ %typemap(out) GModelSpatial* { if (dynamic_cast($1) != NULL) { - if (dynamic_cast($1) != NULL) { - $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_GModelRadialDisk, 0 | 0 ); + if (dynamic_cast($1) != NULL) { + $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_GModelSpatialRadialDisk, 0 | 0 ); } - else if (dynamic_cast($1) != NULL) { - $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_GModelRadialGauss, 0 | 0 ); + else if (dynamic_cast($1) != NULL) { + $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_GModelSpatialRadialGauss, 0 | 0 ); } - else if (dynamic_cast($1) != NULL) { - $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_GModelRadialShell, 0 | 0 ); + else if (dynamic_cast($1) != NULL) { + $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_GModelSpatialRadialShell, 0 | 0 ); } else { $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_GModelSpatialRadial, 0 | 0 ); diff --git a/pyext/GModelSpatialRadialDisk.i b/pyext/GModelSpatialRadialDisk.i index c76639f..dc6e5e8 100644 --- a/pyext/GModelSpatialRadialDisk.i +++ b/pyext/GModelSpatialRadialDisk.i @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialDisk.i - Radial disk source model class * + * GModelSpatialRadialDisk.i - Radial disk source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Christoph Deil * * ----------------------------------------------------------------------- * @@ -19,18 +19,18 @@ * * ***************************************************************************/ /** - * @file GModelRadialDisk.i + * @file GModelSpatialRadialDisk.i * @brief Radial disk model class Python interface definition * @author Christoph Deil */ %{ /* Put headers and other declarations here that are needed for compilation */ -#include "GModelRadialDisk.hpp" +#include "GModelSpatialRadialDisk.hpp" #include "GTools.hpp" %} /************************************************************************** - * @class GModelRadialDisk + * @class GModelSpatialRadialDisk * * @brief Disk source model class * @@ -38,25 +38,25 @@ * model for a disk source, i.e. constant surface brightness within some * radius and no emission outside. ***************************************************************************/ -class GModelRadialDisk : public GModelSpatialRadial { +class GModelSpatialRadialDisk : public GModelSpatialRadial { public: // Constructors and destructors - GModelRadialDisk(void); - explicit GModelRadialDisk(const GSkyDir& dir, const double& radius); - explicit GModelRadialDisk(const GXmlElement& xml); - GModelRadialDisk(const GModelRadialDisk& model); - virtual ~GModelRadialDisk(void); + GModelSpatialRadialDisk(void); + explicit GModelSpatialRadialDisk(const GSkyDir& dir, const double& radius); + explicit GModelSpatialRadialDisk(const GXmlElement& xml); + GModelSpatialRadialDisk(const GModelSpatialRadialDisk& model); + virtual ~GModelSpatialRadialDisk(void); // Implemented pure virtual methods - virtual void clear(void); - virtual GModelRadialDisk* clone(void) const; - virtual std::string type(void) const; - virtual double eval(const double& theta) const; - virtual double eval_gradients(const double& theta) const; - virtual GSkyDir mc(GRan& ran) const; - virtual double theta_max(void) const; - virtual void read(const GXmlElement& xml); - virtual void write(GXmlElement& xml) const; + virtual void clear(void); + virtual GModelSpatialRadialDisk* clone(void) const; + virtual std::string type(void) const; + virtual double eval(const double& theta) const; + virtual double eval_gradients(const double& theta) const; + virtual GSkyDir mc(GRan& ran) const; + virtual double theta_max(void) const; + virtual void read(const GXmlElement& xml); + virtual void write(GXmlElement& xml) const; // Other methods double radius(void) const; @@ -65,10 +65,10 @@ public: /***********************************************************************//** - * @brief GModelRadialDisk class extension + * @brief GModelSpatialRadialDisk class extension ***************************************************************************/ -%extend GModelRadialDisk { - GModelRadialDisk copy() { +%extend GModelSpatialRadialDisk { + GModelSpatialRadialDisk copy() { return (*self); } }; diff --git a/pyext/GModelSpatialRadialGauss.i b/pyext/GModelSpatialRadialGauss.i index d1ddeef..414108c 100644 --- a/pyext/GModelSpatialRadialGauss.i +++ b/pyext/GModelSpatialRadialGauss.i @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialGauss.i - Radial Gaussian source model class * + * GModelSpatialRadialGauss.i - Radial Gaussian source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * @@ -19,41 +19,41 @@ * * ***************************************************************************/ /** - * @file GModelRadialGauss.i + * @file GModelSpatialRadialGauss.i * @brief Radial Gaussian model class Python interface definition * @author Juergen Knoedlseder */ %{ /* Put headers and other declarations here that are needed for compilation */ -#include "GModelRadialGauss.hpp" +#include "GModelSpatialRadialGauss.hpp" #include "GTools.hpp" %} /***********************************************************************//** - * @class GModelRadialGauss + * @class GModelSpatialRadialGauss * * @brief Radial Gaussian model class ***************************************************************************/ -class GModelRadialGauss : public GModelSpatialRadial { +class GModelSpatialRadialGauss : public GModelSpatialRadial { public: // Constructors and destructors - GModelRadialGauss(void); - explicit GModelRadialGauss(const GSkyDir& dir, const double& sigma); - explicit GModelRadialGauss(const GXmlElement& xml); - GModelRadialGauss(const GModelRadialGauss& model); - virtual ~GModelRadialGauss(void); + GModelSpatialRadialGauss(void); + explicit GModelSpatialRadialGauss(const GSkyDir& dir, const double& sigma); + explicit GModelSpatialRadialGauss(const GXmlElement& xml); + GModelSpatialRadialGauss(const GModelSpatialRadialGauss& model); + virtual ~GModelSpatialRadialGauss(void); // Implemented pure virtual methods - virtual void clear(void); - virtual GModelRadialGauss* clone(void) const; - virtual std::string type(void) const; - virtual double eval(const double& theta) const; - virtual double eval_gradients(const double& theta) const; - virtual GSkyDir mc(GRan& ran) const; - virtual double theta_max(void) const; - virtual void read(const GXmlElement& xml); - virtual void write(GXmlElement& xml) const; + virtual void clear(void); + virtual GModelSpatialRadialGauss* clone(void) const; + virtual std::string type(void) const; + virtual double eval(const double& theta) const; + virtual double eval_gradients(const double& theta) const; + virtual GSkyDir mc(GRan& ran) const; + virtual double theta_max(void) const; + virtual void read(const GXmlElement& xml); + virtual void write(GXmlElement& xml) const; // Other methods double sigma(void) const; @@ -62,10 +62,10 @@ public: /***********************************************************************//** - * @brief GModelRadialGauss class extension + * @brief GModelSpatialRadialGauss class extension ***************************************************************************/ -%extend GModelRadialGauss { - GModelRadialGauss copy() { +%extend GModelSpatialRadialGauss { + GModelSpatialRadialGauss copy() { return (*self); } }; diff --git a/pyext/GModelSpatialRadialShell.i b/pyext/GModelSpatialRadialShell.i index ca34936..c9858d6 100644 --- a/pyext/GModelSpatialRadialShell.i +++ b/pyext/GModelSpatialRadialShell.i @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialShell.i - Radial spatial shell source model class * + * GModelSpatialRadialShell.i - Radial spatial shell source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Christoph Deil * * ----------------------------------------------------------------------- * @@ -19,42 +19,42 @@ * * ***************************************************************************/ /** - * @file GModelRadialShell.i + * @file GModelSpatialRadialShell.i * @brief Radial spatial shell model class Python interface definition * @author Christoph Deil */ %{ /* Put headers and other declarations here that are needed for compilation */ -#include "GModelRadialShell.hpp" +#include "GModelSpatialRadialShell.hpp" #include "GTools.hpp" %} /************************************************************************** - * @class GModelRadialShell + * @class GModelSpatialRadialShell * * @brief Radial shell source model class ***************************************************************************/ -class GModelRadialShell : public GModelSpatialRadial { +class GModelSpatialRadialShell : public GModelSpatialRadial { public: // Constructors and destructors - GModelRadialShell(void); - explicit GModelRadialShell(const GSkyDir& dir, + GModelSpatialRadialShell(void); + explicit GModelSpatialRadialShell(const GSkyDir& dir, const double& radius, const double& width, const bool& small_angle = true); - explicit GModelRadialShell(const GXmlElement& xml); - GModelRadialShell(const GModelRadialShell& model); - virtual ~GModelRadialShell(void); + explicit GModelSpatialRadialShell(const GXmlElement& xml); + GModelSpatialRadialShell(const GModelSpatialRadialShell& model); + virtual ~GModelSpatialRadialShell(void); // Implemented pure virtual methods - virtual void clear(void); - virtual GModelRadialShell* clone(void) const; - virtual std::string type(void) const; - virtual double eval(const double& theta) const; - virtual double eval_gradients(const double& theta) const; - virtual GSkyDir mc(GRan& ran) const; - virtual double theta_max(void) const; - virtual void read(const GXmlElement& xml); - virtual void write(GXmlElement& xml) const; + virtual void clear(void); + virtual GModelSpatialRadialShell* clone(void) const; + virtual std::string type(void) const; + virtual double eval(const double& theta) const; + virtual double eval_gradients(const double& theta) const; + virtual GSkyDir mc(GRan& ran) const; + virtual double theta_max(void) const; + virtual void read(const GXmlElement& xml); + virtual void write(GXmlElement& xml) const; // Other methods double radius(void) const; @@ -67,10 +67,10 @@ public: /***********************************************************************//** - * @brief GModelRadialShell class extension + * @brief GModelSpatialRadialShell class extension ***************************************************************************/ -%extend GModelRadialShell { - GModelRadialShell copy() { +%extend GModelSpatialRadialShell { + GModelSpatialRadialShell copy() { return (*self); } }; diff --git a/pyext/gammalib/model.i b/pyext/gammalib/model.i index 9ac71dd..80163af 100644 --- a/pyext/gammalib/model.i +++ b/pyext/gammalib/model.i @@ -54,9 +54,9 @@ %include "GModelSpatialRegistry.i" %include "GModelSpatialPointSource.i" %include "GModelSpatialRadial.i" -%include "GModelRadialDisk.i" -%include "GModelRadialGauss.i" -%include "GModelRadialShell.i" +%include "GModelSpatialRadialDisk.i" +%include "GModelSpatialRadialGauss.i" +%include "GModelSpatialRadialShell.i" %include "GModelSpatialConst.i" %include "GModelSpatialCube.i" %include "GModelSpatialMap.i" diff --git a/src/model/GModelSpatialRadialDisk.cpp b/src/model/GModelSpatialRadialDisk.cpp index e511379..ab45c11 100644 --- a/src/model/GModelSpatialRadialDisk.cpp +++ b/src/model/GModelSpatialRadialDisk.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialDisk.cpp - Radial disk source model class * + * GModelSpatialRadialDisk.cpp - Radial disk source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Christoph Deil * * ----------------------------------------------------------------------- * @@ -19,7 +19,7 @@ * * ***************************************************************************/ /** - * @file GModelRadialDisk.cpp + * @file GModelSpatialRadialDisk.cpp * @brief Radial disk model class implementation * @author Christoph Deil */ @@ -30,18 +30,18 @@ #endif #include "GException.hpp" #include "GTools.hpp" -#include "GModelRadialDisk.hpp" +#include "GModelSpatialRadialDisk.hpp" #include "GModelSpatialRegistry.hpp" /* __ Constants __________________________________________________________ */ /* __ Globals ____________________________________________________________ */ -const GModelRadialDisk g_radial_disk_seed; -const GModelSpatialRegistry g_radial_disk_registry(&g_radial_disk_seed); +const GModelSpatialRadialDisk g_radial_disk_seed; +const GModelSpatialRegistry g_radial_disk_registry(&g_radial_disk_seed); /* __ Method name definitions ____________________________________________ */ -#define G_READ "GModelRadialDisk::read(GXmlElement&)" -#define G_WRITE "GModelRadialDisk::write(GXmlElement&)" +#define G_READ "GModelSpatialRadialDisk::read(GXmlElement&)" +#define G_WRITE "GModelSpatialRadialDisk::write(GXmlElement&)" /* __ Macros _____________________________________________________________ */ @@ -59,7 +59,7 @@ const GModelSpatialRegistry g_radial_disk_registry(&g_radial_disk_seed); /***********************************************************************//** * @brief Void constructor ***************************************************************************/ -GModelRadialDisk::GModelRadialDisk(void) : GModelSpatialRadial() +GModelSpatialRadialDisk::GModelSpatialRadialDisk(void) : GModelSpatialRadial() { // Initialise members init_members(); @@ -75,8 +75,9 @@ GModelRadialDisk::GModelRadialDisk(void) : GModelSpatialRadial() * @param[in] dir Sky position of disk centre. * @param[in] radius Disk radius (degrees). ***************************************************************************/ -GModelRadialDisk::GModelRadialDisk(const GSkyDir& dir, const double& radius) : - GModelSpatialRadial() +GModelSpatialRadialDisk::GModelSpatialRadialDisk(const GSkyDir& dir, + const double& radius) : + GModelSpatialRadial() { // Initialise members init_members(); @@ -96,11 +97,11 @@ GModelRadialDisk::GModelRadialDisk(const GSkyDir& dir, const double& radius) : * @param[in] xml XML element. * * Creates instance of radial disk model by extracting information from an - * XML element. See GModelRadialDisk::read() for more information about the + * XML element. See GModelSpatialRadialDisk::read() for more information about the * expected structure of the XML element. ***************************************************************************/ -GModelRadialDisk::GModelRadialDisk(const GXmlElement& xml) : - GModelSpatialRadial() +GModelSpatialRadialDisk::GModelSpatialRadialDisk(const GXmlElement& xml) : + GModelSpatialRadial() { // Initialise members init_members(); @@ -118,8 +119,8 @@ GModelRadialDisk::GModelRadialDisk(const GXmlElement& xml) : * * @param[in] model Radial disk model. ***************************************************************************/ -GModelRadialDisk::GModelRadialDisk(const GModelRadialDisk& model) : - GModelSpatialRadial(model) +GModelSpatialRadialDisk::GModelSpatialRadialDisk(const GModelSpatialRadialDisk& model) : + GModelSpatialRadial(model) { // Initialise members init_members(); @@ -135,7 +136,7 @@ GModelRadialDisk::GModelRadialDisk(const GModelRadialDisk& model) : /***********************************************************************//** * @brief Destructor ***************************************************************************/ -GModelRadialDisk::~GModelRadialDisk(void) +GModelSpatialRadialDisk::~GModelSpatialRadialDisk(void) { // Free members free_members(); @@ -155,8 +156,9 @@ GModelRadialDisk::~GModelRadialDisk(void) * @brief Assignment operator * * @param[in] model Radial disk model. + * @return Radial disk model. ***************************************************************************/ -GModelRadialDisk& GModelRadialDisk::operator= (const GModelRadialDisk& model) +GModelSpatialRadialDisk& GModelSpatialRadialDisk::operator=(const GModelSpatialRadialDisk& model) { // Execute only if object is not identical if (this != &model) { @@ -189,7 +191,7 @@ GModelRadialDisk& GModelRadialDisk::operator= (const GModelRadialDisk& model) /***********************************************************************//** * @brief Clear instance ***************************************************************************/ -void GModelRadialDisk::clear(void) +void GModelSpatialRadialDisk::clear(void) { // Free class members (base and derived classes, derived class first) free_members(); @@ -209,9 +211,9 @@ void GModelRadialDisk::clear(void) /***********************************************************************//** * @brief Clone instance ***************************************************************************/ -GModelRadialDisk* GModelRadialDisk::clone(void) const +GModelSpatialRadialDisk* GModelSpatialRadialDisk::clone(void) const { - return new GModelRadialDisk(*this); + return new GModelSpatialRadialDisk(*this); } @@ -242,7 +244,7 @@ GModelRadialDisk* GModelRadialDisk::clone(void) const * * is a normalization constant (see the update() method). ***************************************************************************/ -double GModelRadialDisk::eval(const double& theta) const +double GModelSpatialRadialDisk::eval(const double& theta) const { // Update precomputation cache update(); @@ -253,7 +255,7 @@ double GModelRadialDisk::eval(const double& theta) const // Compile option: Check for NaN/Inf #if defined(G_NAN_CHECK) if (isnotanumber(value) || isinfinite(value)) { - std::cout << "*** ERROR: GModelRadialDisk::eval"; + std::cout << "*** ERROR: GModelSpatialRadialDisk::eval"; std::cout << "(theta=" << theta << "): NaN/Inf encountered"; std::cout << " (value=" << value; std::cout << ", m_radius_rad=" << m_radius_rad; @@ -278,7 +280,7 @@ double GModelRadialDisk::eval(const double& theta) const * * See the eval() method for more information. ***************************************************************************/ -double GModelRadialDisk::eval_gradients(const double& theta) const +double GModelSpatialRadialDisk::eval_gradients(const double& theta) const { // Return value return (eval(theta)); @@ -292,7 +294,7 @@ double GModelRadialDisk::eval_gradients(const double& theta) const * * Draws an arbitrary sky position from the 2D disk distribution. ***************************************************************************/ -GSkyDir GModelRadialDisk::mc(GRan& ran) const +GSkyDir GModelSpatialRadialDisk::mc(GRan& ran) const { // Simulate offset from photon arrival direction double cosrad = std::cos(radius()*deg2rad); @@ -311,7 +313,7 @@ GSkyDir GModelRadialDisk::mc(GRan& ran) const /***********************************************************************//** * @brief Return maximum model radius (in radians) ***************************************************************************/ -double GModelRadialDisk::theta_max(void) const +double GModelSpatialRadialDisk::theta_max(void) const { // Return value return (radius()*deg2rad); @@ -336,7 +338,7 @@ double GModelRadialDisk::theta_max(void) const * @todo Implement a test of the radius and radius boundary. The radius * and radius minimum should be >0. ***************************************************************************/ -void GModelRadialDisk::read(const GXmlElement& xml) +void GModelSpatialRadialDisk::read(const GXmlElement& xml) { // Determine number of parameter nodes in XML element int npars = xml.elements("parameter"); @@ -395,7 +397,7 @@ void GModelRadialDisk::read(const GXmlElement& xml) * Write the Disk source information into an XML element. The XML element * will have 3 parameter leafs named "RA", "DEC" and "Radius" ***************************************************************************/ -void GModelRadialDisk::write(GXmlElement& xml) const +void GModelSpatialRadialDisk::write(GXmlElement& xml) const { // Write disk location GModelSpatialRadial::write(xml); @@ -443,14 +445,16 @@ void GModelRadialDisk::write(GXmlElement& xml) const /***********************************************************************//** * @brief Print information + * + * @return String containing model information. ***************************************************************************/ -std::string GModelRadialDisk::print(void) const +std::string GModelSpatialRadialDisk::print(void) const { // Initialise result string std::string result; // Append header - result.append("=== GModelRadialDisk ===\n"); + result.append("=== GModelSpatialRadialDisk ===\n"); // Append parameters result.append(parformat("Number of parameters")+str(size())); @@ -472,7 +476,7 @@ std::string GModelRadialDisk::print(void) const /***********************************************************************//** * @brief Initialise class members ***************************************************************************/ -void GModelRadialDisk::init_members(void) +void GModelSpatialRadialDisk::init_members(void) { // Initialise Radius m_radius.clear(); @@ -508,7 +512,7 @@ void GModelRadialDisk::init_members(void) * should have been done by init_members() that was called before. Otherwise * we would have the radius twice on the stack. ***************************************************************************/ -void GModelRadialDisk::copy_members(const GModelRadialDisk& model) +void GModelSpatialRadialDisk::copy_members(const GModelSpatialRadialDisk& model) { // Copy members m_radius = model.m_radius; @@ -526,7 +530,7 @@ void GModelRadialDisk::copy_members(const GModelRadialDisk& model) /***********************************************************************//** * @brief Delete class members ***************************************************************************/ -void GModelRadialDisk::free_members(void) +void GModelSpatialRadialDisk::free_members(void) { // Return return; @@ -544,7 +548,7 @@ void GModelRadialDisk::free_members(void) * approximation you might have expected: * \f[{\tt m\_norm} = \frac{1}{\pi r ^ 2}\f] ***************************************************************************/ -void GModelRadialDisk::update() const +void GModelSpatialRadialDisk::update() const { // Update if radius has changed if (m_last_radius != radius()) { @@ -564,10 +568,3 @@ void GModelRadialDisk::update() const // Return return; } - - -/*========================================================================== - = = - = Friends = - = = - ==========================================================================*/ diff --git a/src/model/GModelSpatialRadialGauss.cpp b/src/model/GModelSpatialRadialGauss.cpp index 03560a3..0c5216c 100644 --- a/src/model/GModelSpatialRadialGauss.cpp +++ b/src/model/GModelSpatialRadialGauss.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialGauss.cpp - Radial Gaussian source model class * + * GModelSpatialRadialGauss.cpp - Radial Gaussian source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * @@ -19,7 +19,7 @@ * * ***************************************************************************/ /** - * @file GModelRadialGauss.cpp + * @file GModelSpatialRadialGauss.cpp * @brief Radial Gaussian model class implementation * @author Juergen Knoedlseder */ @@ -30,18 +30,18 @@ #endif #include "GException.hpp" #include "GTools.hpp" -#include "GModelRadialGauss.hpp" +#include "GModelSpatialRadialGauss.hpp" #include "GModelSpatialRegistry.hpp" /* __ Constants __________________________________________________________ */ /* __ Globals ____________________________________________________________ */ -const GModelRadialGauss g_radial_gauss_seed; -const GModelSpatialRegistry g_radial_gauss_registry(&g_radial_gauss_seed); +const GModelSpatialRadialGauss g_radial_gauss_seed; +const GModelSpatialRegistry g_radial_gauss_registry(&g_radial_gauss_seed); /* __ Method name definitions ____________________________________________ */ -#define G_READ "GModelRadialGauss::read(GXmlElement&)" -#define G_WRITE "GModelRadialGauss::write(GXmlElement&)" +#define G_READ "GModelSpatialRadialGauss::read(GXmlElement&)" +#define G_WRITE "GModelSpatialRadialGauss::write(GXmlElement&)" /* __ Macros _____________________________________________________________ */ @@ -59,7 +59,7 @@ const GModelSpatialRegistry g_radial_gauss_registry(&g_radial_gauss_seed); /***********************************************************************//** * @brief Void constructor ***************************************************************************/ -GModelRadialGauss::GModelRadialGauss(void) : GModelSpatialRadial() +GModelSpatialRadialGauss::GModelSpatialRadialGauss(void) : GModelSpatialRadial() { // Initialise members init_members(); @@ -78,8 +78,9 @@ GModelRadialGauss::GModelRadialGauss(void) : GModelSpatialRadial() * Creates instance of a Gaussian spatial model using a sky direction and * a Gaussian width parameter \f$\sigma\f$ (in degrees). ***************************************************************************/ -GModelRadialGauss::GModelRadialGauss(const GSkyDir& dir, const double& sigma) : - GModelSpatialRadial() +GModelSpatialRadialGauss::GModelSpatialRadialGauss(const GSkyDir& dir, + const double& sigma) : + GModelSpatialRadial() { // Initialise members init_members(); @@ -99,11 +100,11 @@ GModelRadialGauss::GModelRadialGauss(const GSkyDir& dir, const double& sigma) : * @param[in] xml XML element. * * Creates instance of a Gaussian spatial model by extracting information - * from an XML element. See GModelRadialGauss::read() for more information + * from an XML element. See GModelSpatialRadialGauss::read() for more information * about the expected structure of the XML element. ***************************************************************************/ -GModelRadialGauss::GModelRadialGauss(const GXmlElement& xml) : - GModelSpatialRadial() +GModelSpatialRadialGauss::GModelSpatialRadialGauss(const GXmlElement& xml) : + GModelSpatialRadial() { // Initialise members init_members(); @@ -121,8 +122,8 @@ GModelRadialGauss::GModelRadialGauss(const GXmlElement& xml) : * * @param[in] model Radial Gaussian model. ***************************************************************************/ -GModelRadialGauss::GModelRadialGauss(const GModelRadialGauss& model) : - GModelSpatialRadial(model) +GModelSpatialRadialGauss::GModelSpatialRadialGauss(const GModelSpatialRadialGauss& model) : + GModelSpatialRadial(model) { // Initialise members init_members(); @@ -138,7 +139,7 @@ GModelRadialGauss::GModelRadialGauss(const GModelRadialGauss& model) : /***********************************************************************//** * @brief Destructor ***************************************************************************/ -GModelRadialGauss::~GModelRadialGauss(void) +GModelSpatialRadialGauss::~GModelSpatialRadialGauss(void) { // Free members free_members(); @@ -158,8 +159,9 @@ GModelRadialGauss::~GModelRadialGauss(void) * @brief Assignment operator * * @param[in] model Radial Gaussian model. + * @return Radial Gaussian model. ***************************************************************************/ -GModelRadialGauss& GModelRadialGauss::operator=(const GModelRadialGauss& model) +GModelSpatialRadialGauss& GModelSpatialRadialGauss::operator=(const GModelSpatialRadialGauss& model) { // Execute only if object is not identical if (this != &model) { @@ -192,7 +194,7 @@ GModelRadialGauss& GModelRadialGauss::operator=(const GModelRadialGauss& model) /***********************************************************************//** * @brief Clear instance ***************************************************************************/ -void GModelRadialGauss::clear(void) +void GModelSpatialRadialGauss::clear(void) { // Free class members (base and derived classes, derived class first) free_members(); @@ -212,9 +214,9 @@ void GModelRadialGauss::clear(void) /***********************************************************************//** * @brief Clone instance ***************************************************************************/ -GModelRadialGauss* GModelRadialGauss::clone(void) const +GModelSpatialRadialGauss* GModelSpatialRadialGauss::clone(void) const { - return new GModelRadialGauss(*this); + return new GModelSpatialRadialGauss(*this); } @@ -234,18 +236,18 @@ GModelRadialGauss* GModelRadialGauss::clone(void) const * @todo The Gaussian function is only correct in the small angle * approximation. ***************************************************************************/ -double GModelRadialGauss::eval(const double& theta) const +double GModelSpatialRadialGauss::eval(const double& theta) const { // Compute value double sigma_rad = sigma() * deg2rad; double sigma2 = sigma_rad * sigma_rad; double theta2 = theta * theta; - double value = exp(-0.5 * theta2 / sigma2) / (twopi * sigma2); + double value = std::exp(-0.5 * theta2 / sigma2) / (twopi * sigma2); // Compile option: Check for NaN/Inf #if defined(G_NAN_CHECK) if (isnotanumber(value) || isinfinite(value)) { - std::cout << "*** ERROR: GModelRadialGauss::eval"; + std::cout << "*** ERROR: GModelSpatialRadialGauss::eval"; std::cout << "(theta=" << theta << "): NaN/Inf encountered"; std::cout << " (value=" << value; std::cout << ", sigma_rad=" << sigma_rad; @@ -269,7 +271,7 @@ double GModelRadialGauss::eval(const double& theta) const * gradients will be computed. See GModelRadialShell::eval() for details * about the implemented method. ***************************************************************************/ -double GModelRadialGauss::eval_gradients(const double& theta) const +double GModelSpatialRadialGauss::eval_gradients(const double& theta) const { // Return value return (eval(theta)); @@ -285,7 +287,7 @@ double GModelRadialGauss::eval_gradients(const double& theta) const * * @todo This method is only valid in the small angle approximation. ***************************************************************************/ -GSkyDir GModelRadialGauss::mc(GRan& ran) const +GSkyDir GModelSpatialRadialGauss::mc(GRan& ran) const { // Simulate offset from photon arrival direction double theta = sigma() * ran.chisq2(); @@ -307,7 +309,7 @@ GSkyDir GModelRadialGauss::mc(GRan& ran) const * is of course arbitrary, but allows to limit the integration region for * response computation. ***************************************************************************/ -double GModelRadialGauss::theta_max(void) const +double GModelSpatialRadialGauss::theta_max(void) const { // Return value return (sigma()*deg2rad*5.0); @@ -332,7 +334,7 @@ double GModelRadialGauss::theta_max(void) const * @todo Implement a test of the sigma and sigma boundary. The sigma * and sigma minimum should be >0. ***************************************************************************/ -void GModelRadialGauss::read(const GXmlElement& xml) +void GModelSpatialRadialGauss::read(const GXmlElement& xml) { // Determine number of parameter nodes in XML element int npars = xml.elements("parameter"); @@ -394,7 +396,7 @@ void GModelRadialGauss::read(const GXmlElement& xml) * will have 3 parameter leafs named "RA", "DEC" and "Sigma". The location * leafs are handled by the GModelRadial base class. ***************************************************************************/ -void GModelRadialGauss::write(GXmlElement& xml) const +void GModelSpatialRadialGauss::write(GXmlElement& xml) const { // Write Gaussian location GModelSpatialRadial::write(xml); @@ -442,14 +444,16 @@ void GModelRadialGauss::write(GXmlElement& xml) const /***********************************************************************//** * @brief Print Gaussian source information + * + * @return String containing model information. ***************************************************************************/ -std::string GModelRadialGauss::print(void) const +std::string GModelSpatialRadialGauss::print(void) const { // Initialise result string std::string result; // Append header - result.append("=== GModelRadialGauss ===\n"); + result.append("=== GModelSpatialRadialGauss ===\n"); // Append parameters result.append(parformat("Number of parameters")+str(size())); @@ -475,7 +479,7 @@ std::string GModelRadialGauss::print(void) const * always require numerical gradient computations. The minimum Gaussian * width is set to 1 arcsec. ***************************************************************************/ -void GModelRadialGauss::init_members(void) +void GModelSpatialRadialGauss::init_members(void) { // Initialise Gaussian sigma @@ -506,7 +510,7 @@ void GModelRadialGauss::init_members(void) * should have been done by init_members() that was called before. Otherwise * we would have sigma twice on the stack. ***************************************************************************/ -void GModelRadialGauss::copy_members(const GModelRadialGauss& model) +void GModelSpatialRadialGauss::copy_members(const GModelSpatialRadialGauss& model) { // Copy members m_sigma = model.m_sigma; @@ -519,7 +523,7 @@ void GModelRadialGauss::copy_members(const GModelRadialGauss& model) /***********************************************************************//** * @brief Delete class members ***************************************************************************/ -void GModelRadialGauss::free_members(void) +void GModelSpatialRadialGauss::free_members(void) { // Return return; diff --git a/src/model/GModelSpatialRadialShell.cpp b/src/model/GModelSpatialRadialShell.cpp index f3cdc6f..3793274 100644 --- a/src/model/GModelSpatialRadialShell.cpp +++ b/src/model/GModelSpatialRadialShell.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * GModelRadialShell.cpp - Radial shell source model class * + * GModelSpatialRadialShell.cpp - Radial shell source model class * * ----------------------------------------------------------------------- * * copyright (C) 2011-2013 by Christoph Deil * * ----------------------------------------------------------------------- * @@ -19,7 +19,7 @@ * * ***************************************************************************/ /** - * @file GModelRadialShell.cpp + * @file GModelSpatialRadialShell.cpp * @brief Radial shell model class implementation * @author Christoph Deil */ @@ -30,18 +30,18 @@ #endif #include "GException.hpp" #include "GTools.hpp" -#include "GModelRadialShell.hpp" +#include "GModelSpatialRadialShell.hpp" #include "GModelSpatialRegistry.hpp" /* __ Constants __________________________________________________________ */ /* __ Globals ____________________________________________________________ */ -const GModelRadialShell g_radial_shell_seed; -const GModelSpatialRegistry g_radial_shell_registry(&g_radial_shell_seed); +const GModelSpatialRadialShell g_radial_shell_seed; +const GModelSpatialRegistry g_radial_shell_registry(&g_radial_shell_seed); /* __ Method name definitions ____________________________________________ */ -#define G_READ "GModelRadialShell::read(GXmlElement&)" -#define G_WRITE "GModelRadialShell::write(GXmlElement&)" +#define G_READ "GModelSpatialRadialShell::read(GXmlElement&)" +#define G_WRITE "GModelSpatialRadialShell::write(GXmlElement&)" /* __ Macros _____________________________________________________________ */ @@ -60,7 +60,7 @@ const GModelSpatialRegistry g_radial_shell_registry(&g_radial_shell_seed); /***********************************************************************//** * @brief Void constructor ***************************************************************************/ -GModelRadialShell::GModelRadialShell(void) : GModelSpatialRadial() +GModelSpatialRadialShell::GModelSpatialRadialShell(void) : GModelSpatialRadial() { // Initialise members init_members(); @@ -81,11 +81,11 @@ GModelRadialShell::GModelRadialShell(void) : GModelSpatialRadial() * The small angle approximation is (a little) faster, but incorrect for * shells larger than a few degrees. ***************************************************************************/ -GModelRadialShell::GModelRadialShell(const GSkyDir& dir, +GModelSpatialRadialShell::GModelSpatialRadialShell(const GSkyDir& dir, const double& radius, const double& width, const bool& small_angle) : - GModelSpatialRadial() + GModelSpatialRadial() { // Initialise members init_members(); @@ -107,11 +107,11 @@ GModelRadialShell::GModelRadialShell(const GSkyDir& dir, * @param[in] xml XML element. * * Creates instance of shell spatial model by extracting information from an - * XML element. See GModelRadialShell::read() for more information about the + * XML element. See GModelSpatialRadialShell::read() for more information about the * expected structure of the XML element. ***************************************************************************/ -GModelRadialShell::GModelRadialShell(const GXmlElement& xml) : - GModelSpatialRadial() +GModelSpatialRadialShell::GModelSpatialRadialShell(const GXmlElement& xml) : + GModelSpatialRadial() { // Initialise members init_members(); @@ -129,8 +129,8 @@ GModelRadialShell::GModelRadialShell(const GXmlElement& xml) : * * @param[in] model Radial shell source model. ***************************************************************************/ -GModelRadialShell::GModelRadialShell(const GModelRadialShell& model) : - GModelSpatialRadial(model) +GModelSpatialRadialShell::GModelSpatialRadialShell(const GModelSpatialRadialShell& model) : + GModelSpatialRadial(model) { // Initialise members init_members(); @@ -146,7 +146,7 @@ GModelRadialShell::GModelRadialShell(const GModelRadialShell& model) : /***********************************************************************//** * @brief Destructor ***************************************************************************/ -GModelRadialShell::~GModelRadialShell(void) +GModelSpatialRadialShell::~GModelSpatialRadialShell(void) { // Free members free_members(); @@ -166,8 +166,9 @@ GModelRadialShell::~GModelRadialShell(void) * @brief Assignment operator * * @param[in] model Radial shell source model. + * @return Radial shell source model. ***************************************************************************/ -GModelRadialShell& GModelRadialShell::operator=(const GModelRadialShell& model) +GModelSpatialRadialShell& GModelSpatialRadialShell::operator=(const GModelSpatialRadialShell& model) { // Execute only if object is not identical if (this != &model) { @@ -200,7 +201,7 @@ GModelRadialShell& GModelRadialShell::operator=(const GModelRadialShell& model) /***********************************************************************//** * @brief Clear instance ***************************************************************************/ -void GModelRadialShell::clear(void) +void GModelSpatialRadialShell::clear(void) { // Free class members (base and derived classes, derived class first) free_members(); @@ -219,10 +220,12 @@ void GModelRadialShell::clear(void) /***********************************************************************//** * @brief Clone instance + * + * @return Pointer to deep copy of model. ***************************************************************************/ -GModelRadialShell* GModelRadialShell::clone(void) const +GModelSpatialRadialShell* GModelSpatialRadialShell::clone(void) const { - return new GModelRadialShell(*this); + return new GModelSpatialRadialShell(*this); } @@ -278,7 +281,7 @@ GModelRadialShell* GModelRadialShell::clone(void) const * Here, \f$\theta_{\rm in}\f$ and \f$\theta_{\rm out}\f$ are the shell inner * and outer radius. ***************************************************************************/ -double GModelRadialShell::eval(const double& theta) const +double GModelSpatialRadialShell::eval(const double& theta) const { // Update precomputation cache update(); @@ -296,9 +299,9 @@ double GModelRadialShell::eval(const double& theta) const // Compute value double value = 0.0; if (x < m_x_out) { - value = sqrt(m_x_out - x); + value = std::sqrt(m_x_out - x); if (x < m_x_in) { - value -= sqrt(m_x_in - x); + value -= std::sqrt(m_x_in - x); } } @@ -308,7 +311,7 @@ double GModelRadialShell::eval(const double& theta) const // Compile option: Check for NaN/Inf #if defined(G_NAN_CHECK) if (isnotanumber(result) || isinfinite(result)) { - std::cout << "*** ERROR: GModelRadialShell::eval"; + std::cout << "*** ERROR: GModelSpatialRadialShell::eval"; std::cout << "(theta=" << theta << "): NaN/Inf encountered"; std::cout << " (result=" << result; std::cout << ", m_norm=" << m_norm; @@ -331,11 +334,11 @@ double GModelRadialShell::eval(const double& theta) const * * @param[in] theta Angular distance from shell centre (radians). * - * This method simply calls GModelRadialShell::eval() as no analytical - * gradients will be computed. See GModelRadialShell::eval() for details + * This method simply calls GModelSpatialRadialShell::eval() as no analytical + * gradients will be computed. See GModelSpatialRadialShell::eval() for details * about the implemented method. ***************************************************************************/ -double GModelRadialShell::eval_gradients(const double& theta) const +double GModelSpatialRadialShell::eval_gradients(const double& theta) const { // Return value return (eval(theta)); @@ -349,7 +352,7 @@ double GModelRadialShell::eval_gradients(const double& theta) const * * Draws an arbitrary sky position from the 2D shell distribution. ***************************************************************************/ -GSkyDir GModelRadialShell::mc(GRan& ran) const +GSkyDir GModelSpatialRadialShell::mc(GRan& ran) const { // Update precomputation cache update(); @@ -392,7 +395,7 @@ GSkyDir GModelRadialShell::mc(GRan& ran) const /***********************************************************************//** * @brief Return maximum model radius (in radians) ***************************************************************************/ -double GModelRadialShell::theta_max(void) const +double GModelSpatialRadialShell::theta_max(void) const { // Return value return ((radius()+width())*deg2rad); @@ -418,7 +421,7 @@ double GModelRadialShell::theta_max(void) const * width boundary. The radius and radius boundary should be >=0, the * width and width boundary should be >0. ***************************************************************************/ -void GModelRadialShell::read(const GXmlElement& xml) +void GModelSpatialRadialShell::read(const GXmlElement& xml) { // Determine number of parameter nodes in XML element int npars = xml.elements("parameter"); @@ -495,7 +498,7 @@ void GModelRadialShell::read(const GXmlElement& xml) * element will have 4 parameter leafs named "RA", "DEC", "Radius" and * "Width". The location leafs are handled by the GModelRadial base class. ***************************************************************************/ -void GModelRadialShell::write(GXmlElement& xml) const +void GModelSpatialRadialShell::write(GXmlElement& xml) const { // Write shell location GModelSpatialRadial::write(xml); @@ -550,14 +553,16 @@ void GModelRadialShell::write(GXmlElement& xml) const /***********************************************************************//** * @brief Print information + * + * @return String containing model information. ***************************************************************************/ -std::string GModelRadialShell::print(void) const +std::string GModelSpatialRadialShell::print(void) const { // Initialise result string std::string result; // Append header - result.append("=== GModelRadialShell ===\n"); + result.append("=== GModelSpatialRadialShell ===\n"); // Append parameters result.append(parformat("Number of parameters")+str(size())); @@ -579,7 +584,7 @@ std::string GModelRadialShell::print(void) const /***********************************************************************//** * @brief Initialise class members ***************************************************************************/ -void GModelRadialShell::init_members(void) +void GModelSpatialRadialShell::init_members(void) { // Initialise Radius m_radius.clear(); @@ -634,7 +639,7 @@ void GModelRadialShell::init_members(void) * should have been done by init_members() that was called before. Otherwise * we would have the radius and width twice on the stack. ***************************************************************************/ -void GModelRadialShell::copy_members(const GModelRadialShell& model) +void GModelSpatialRadialShell::copy_members(const GModelSpatialRadialShell& model) { // Copy members m_radius = model.m_radius; @@ -658,7 +663,7 @@ void GModelRadialShell::copy_members(const GModelRadialShell& model) /***********************************************************************//** * @brief Delete class members ***************************************************************************/ -void GModelRadialShell::free_members(void) +void GModelSpatialRadialShell::free_members(void) { // Return return; @@ -695,7 +700,7 @@ void GModelRadialShell::free_members(void) * \frac{\sqrt{2} \cos {\tt m\_theta\_in}} * {\sqrt{2} + \sqrt{1 - \cos 2 {\tt m\_theta\_in}}} \right)\f] ***************************************************************************/ -void GModelRadialShell::update() const +void GModelSpatialRadialShell::update() const { // Set constants const double c1 = twopi / 3.0; @@ -734,7 +739,7 @@ void GModelRadialShell::update() const // Compile option: Check for NaN/Inf #if defined(G_NAN_CHECK) if (isnotanumber(m_norm) || isinfinite(m_norm)) { - std::cout << "*** ERROR: GModelRadialShell::update:"; + std::cout << "*** ERROR: GModelSpatialRadialShell::update:"; std::cout << " NaN/Inf encountered"; std::cout << " (m_norm=" << m_norm; std::cout << ", radius=" << radius(); @@ -758,7 +763,7 @@ void GModelRadialShell::update() const * * Computes \f$f1(x) = \sqrt{1 - \cos 2 x}\f$. ***************************************************************************/ -double GModelRadialShell::f1(double x) +double GModelSpatialRadialShell::f1(double x) { // Compute value double f1 = std::sqrt(1.0 - std::cos(2.0 * x)); @@ -776,7 +781,7 @@ double GModelRadialShell::f1(double x) * \ln \left( \frac{\sqrt{2} \cos x}{\sqrt{2} + \sqrt{ 1 - \cos 2 x}} * \right)\f]. ***************************************************************************/ -double GModelRadialShell::f2(double x) +double GModelSpatialRadialShell::f2(double x) { // Compute value double t1 = (1.0 + std::cos(2.0*x)) / 4.0; diff --git a/src/model/Makefile.am b/src/model/Makefile.am index 8d3ca18..645ce45 100644 --- a/src/model/Makefile.am +++ b/src/model/Makefile.am @@ -16,9 +16,9 @@ sources = GModelPar.cpp \ GModelSpatialRegistry.cpp \ GModelSpatialPointSource.cpp \ GModelSpatialRadial.cpp \ - GModelRadialDisk.cpp \ - GModelRadialGauss.cpp \ - GModelRadialShell.cpp \ + GModelSpatialRadialDisk.cpp \ + GModelSpatialRadialGauss.cpp \ + GModelSpatialRadialShell.cpp \ GModelSpatialConst.cpp \ GModelSpatialCube.cpp \ GModelSpatialMap.cpp \ -- libgit2 0.21.4