27#ifndef GMODELSPATIAL_HPP
28#define GMODELSPATIAL_HPP
96 const bool& gradients =
false)
const = 0;
100 const double& radius)
const = 0;
102 const double& margin = 0.0)
const = 0;
113 std::string
type(
void)
const;
117 bool has_par(
const std::string& name)
const;
119 int size(
void)
const;
137 const GTime& srcTime) :
143 double eval(
const double& rho);
160 const GTime& srcTime) :
167 double eval(
const double& omega);
253 return (
int)
m_pars.size();
Definition of interface for all GammaLib classes.
Energy value class definition.
Single parameter function abstract base class definition.
Integration class interface definition.
Model parameter class interface definition.
Random number generator class definition.
Sky direction class interface definition.
Circular sky region class interface definition.
Time class interface definition.
XML element node class interface definition.
Interface class for all GammaLib classes.
Class that handles energies in a unit independent way.
Single parameter function abstract base class.
const GModelSpatial * m_model
Spatial model.
double m_rho
Offset from center of the region.
GTime m_srcTime
Photon time.
const GSkyRegion & m_region
Sky region.
const GSkyDir & m_centre
Model centre.
GEnergy m_srcEng
Photon energy.
circle_int_kern_omega(const GModelSpatial *model, const GSkyRegion ®ion, const GSkyDir ¢re, const double &rho, const GEnergy &srcEng, const GTime &srcTime)
double eval(const double &omega)
Kernel for spatial model azimuth angle integration.
GEnergy m_srcEng
Photon energy.
GTime m_srcTime
Photon time.
const GSkyDir & m_centre
Model centre.
const GModelSpatial * m_model
Spatial model.
const GSkyRegion & m_region
Sky region.
circle_int_kern_rho(const GModelSpatial *model, const GSkyRegion ®ion, const GSkyDir ¢re, const GEnergy &srcEng, const GTime &srcTime)
double eval(const double &rho)
Kernel for spatial model radial integration.
Abstract spatial model base class.
virtual void clear(void)=0
Clear object.
void autoscale(void)
Autoscale parameters.
std::string m_type
Spatial model type.
std::string type(void) const
Return model type.
bool has_free_pars(void) const
Checks if the spatial model has free parameters.
const GSkyRegion * region(void) const
Return boundary sky region.
virtual void write(GXmlElement &xml) const =0
virtual ~GModelSpatial(void)
Destructor.
virtual std::string classname(void) const =0
Return class name.
virtual GModelSpatial * clone(void) const =0
Clones object.
virtual GSkyDir mc(const GEnergy &energy, const GTime &time, GRan &ran) const =0
virtual GClassCode code(void) const =0
virtual double flux(const GSkyRegion ®ion, const GEnergy &srcEng=GEnergy(), const GTime &srcTime=GTime()) const
Returns model flux within sky region.
GModelPar & at(const int &index)
Returns model parameter.
virtual bool contains(const GSkyDir &dir, const double &margin=0.0) const =0
virtual double eval(const GPhoton &photon, const bool &gradients=false) const =0
bool has_par(const std::string &name) const
Checks if parameter name exists.
virtual double mc_norm(const GSkyDir &dir, const double &radius) const =0
GModelSpatial(void)
Void constructor.
std::vector< GModelPar * > m_pars
Parameter pointers.
virtual std::string print(const GChatter &chatter=NORMAL) const =0
Print content of object.
void copy_members(const GModelSpatial &model)
Copy class members.
virtual GModelSpatial & operator=(const GModelSpatial &model)
Assignment operator.
void init_members(void)
Initialise class members.
int size(void) const
Return number of parameters.
void free_members(void)
Delete class members.
GSkyRegionCircle m_region
Bounding circle.
virtual void set_region(void) const =0
virtual void read(const GXmlElement &xml)=0
virtual GModelPar & operator[](const int &index)
Returns model parameter.
Class that handles photons.
Random number generator class.
Interface for the circular sky region class.
Abstract interface for the sky region class.