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;
136 const GTime& srcTime,
137 const double distance,
138 const double cosdist,
139 const double sindist,
141 const double cosmodrad) :
151 double eval(
const double& rho);
171 const GTime& srcTime) :
177 double eval(
const double& omega);
262 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.
circle_int_kern_omega(const GModelSpatial *model, const GSkyRegionCircle *reg, const double &rho, const GEnergy &srcEng, const GTime &srcTime)
GTime m_srcTime
Photon time.
const GSkyRegionCircle * m_reg
Integration region.
GEnergy m_srcEng
Photon energy.
double eval(const double &omega)
Kernel for circular sky region azimuth angle integration.
GEnergy m_srcEng
Photon energy.
GTime m_srcTime
Photon time.
double m_sindist
Sin of distance model-region.
circle_int_kern_rho(const GModelSpatial *model, const GSkyRegionCircle *reg, const GEnergy &srcEng, const GTime &srcTime, const double distance, const double cosdist, const double sindist, const double modrad, const double cosmodrad)
const GModelSpatial * m_model
Spatial model.
double m_cosmodrad
Cos of model radius.
const GSkyRegionCircle * m_reg
Integration region.
double m_cosdist
Cos of distance model-region.
double m_dist
Distance model-region (rad)
double eval(const double &rho)
Kernel for circular sky region radial integration.
double m_modrad
Model radius (rad)
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 integrated in circular 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.