27 #ifndef GMODELSPATIALRADIALRING_HPP
28 #define GMODELSPATIALRADIALRING_HPP
62 const std::string&
coordsys =
"CEL");
71 virtual void clear(
void);
73 virtual std::string
classname(
void)
const;
74 virtual double eval(
const double& theta,
77 const bool& gradients =
false)
const;
82 const double& margin = 0.0)
const;
91 void radius(
const double& radius);
92 double width(
void)
const;
93 void width(
const double& width);
126 return (
"GModelSpatialRadialRing");
virtual std::string classname(void) const
Return class name.
double m_outer_radius_rad
Outer radius in radians.
virtual double theta_min(void) const
Return minimum model radius (in radians)
virtual std::string print(const GChatter &chatter=NORMAL) const
Print information.
Abstract radial spatial model base class interface definition.
GModelPar m_width
Ring width (degrees)
double m_last_width
Last ring width.
double m_norm
Normalization.
std::string coordsys(void) const
Return coordinate system.
Random number generator class.
void init_members(void)
Initialise class members.
void free_members(void)
Delete class members.
virtual void read(const GXmlElement &xml)
Read model from XML element.
virtual GModelSpatialRadialRing * clone(void) const
Clone radial ring model.
virtual ~GModelSpatialRadialRing(void)
Destructor.
GModelPar m_radius
Ring inner radius (degrees)
Model parameter class interface definition.
Class that handles photons.
virtual double theta_max(void) const
Return maximum model radius (in radians)
void update(void) const
Update precomputation cache.
virtual void write(GXmlElement &xml) const
Write model into XML element.
virtual GModelSpatialRadialRing & operator=(const GModelSpatialRadialRing &model)
Assignment operator.
virtual bool contains(const GSkyDir &dir, const double &margin=0.0) const
Checks whether model contains specified sky direction.
Abstract interface for the sky region class.
const GSkyDir & dir(void) const
Return position of radial spatial model.
double width(void) const
Return ring width.
virtual double eval(const double &theta, const GEnergy &energy, const GTime &time, const bool &gradients=false) const
Evaluate function (in units of sr^-1)
void copy_members(const GModelSpatialRadialRing &model)
Copy class members.
virtual void set_region(void) const
Set boundary sky region.
double m_cos_outer_radius_rad
Cosine of outer radius in radians.
virtual GSkyDir mc(const GEnergy &energy, const GTime &time, GRan &ran) const
Return MC sky direction.
double value(void) const
Return parameter value.
Abstract radial spatial model base class.
double radius(void) const
Return ring inner radius.
double m_last_radius
Last ring radius.
double m_inner_radius_rad
Inner radius in radians.
double m_cos_inner_radius_rad
Cosine of inner radius in radians.
virtual void clear(void)
Clear radial ring model.
GModelSpatialRadialRing(void)
Void constructor.
Class that handles energies in a unit independent way.