27 #ifndef GMODELSPATIALRADIALSHELL_HPP
28 #define GMODELSPATIALRADIALSHELL_HPP
73 const std::string&
coordsys =
"CEL");
82 virtual void clear(
void);
84 virtual std::string
classname(
void)
const;
85 virtual double eval(
const double& theta,
88 const bool& gradients =
false)
const;
93 const double& margin = 0.0)
const;
100 double radius(
void)
const;
101 double width(
void)
const;
102 void radius(
const double& radius);
103 void width(
const double& width);
111 static double f1(
double x);
112 static double f2(
double x);
138 return (
"GModelSpatialRadialShell");
double width(void) const
Return shell width.
GModelPar m_width
Shell thickness (deg)
virtual GModelSpatialRadialShell & operator=(const GModelSpatialRadialShell &model)
Assignment operator.
double m_last_width
Last shell width (deg)
void init_members(void)
Initialise class members.
Abstract radial spatial model base class interface definition.
virtual void set_region(void) const
Set boundary sky region.
std::string coordsys(void) const
Return coordinate system.
virtual void read(const GXmlElement &xml)
Read model from XML element.
Random number generator class.
static double f2(double x)
Return function 2 value needed for precomputation.
double m_x_in
sin(m_theta_in)^2
Model parameter class interface definition.
Class that handles photons.
double radius(void) const
Return shell radius.
void free_members(void)
Delete class members.
void copy_members(const GModelSpatialRadialShell &model)
Copy class members.
Abstract interface for the sky region class.
void update(void) const
Update precomputation cache.
const GSkyDir & dir(void) const
Return position of radial spatial model.
virtual double theta_max(void) const
Return maximum model radius (in radians)
virtual void write(GXmlElement &xml) const
Write model into XML element.
virtual ~GModelSpatialRadialShell(void)
Destructor.
virtual GModelSpatialRadialShell * clone(void) const
Clone radial shell model.
double m_last_radius
Last shell radius (deg)
virtual bool contains(const GSkyDir &dir, const double &margin=0.0) const
Checks where model contains specified sky direction.
virtual GSkyDir mc(const GEnergy &energy, const GTime &time, GRan &ran) const
Returns MC sky direction.
std::string type(void) const
Return model type.
GModelPar m_radius
Inner shell radius (deg)
GModelSpatialRadialShell(void)
Void constructor.
virtual void clear(void)
Clear radial shell model.
double m_theta_in
Inner shell radius (rad)
virtual std::string classname(void) const
Return class name.
virtual double eval(const double &theta, const GEnergy &energy, const GTime &time, const bool &gradients=false) const
Evaluate function (in units of sr^-1)
double value(void) const
Return parameter value.
double m_theta_out
Outer shell radius (rad)
static double f1(double x)
Return function 1 value needed for precomputation.
Abstract radial spatial model base class.
double m_norm
Shell normalization.
double m_x_out
sin(m_theta_out)^2
Class that handles energies in a unit independent way.
virtual std::string print(const GChatter &chatter=NORMAL) const
Print information.