27#ifndef GMODELSPATIALRADIALPROFILEDMZHAO_HPP
28#define GMODELSPATIALRADIALPROFILEDMZHAO_HPP
62 virtual void clear(
void);
64 virtual std::string
classname(
void)
const;
78 double alpha(
void)
const;
80 double beta(
void)
const;
82 double gamma(
void)
const;
104 const double& core_radius) :
112 double eval(
const double& los);
150 return (
"GModelSpatialRadialProfileDMZhao");
Single parameter function abstract base class definition.
Integration class interface definition.
Model parameter class interface definition.
Radial profile model class interface definition.
double angle(const GVector &a, const GVector &b)
Computes angle between vectors.
Single parameter function abstract base class.
halo_kernel_los(const double &scale_radius, const double &halo_distance, const double &alpha, const double &beta, const double &gamma, const double &theta, const double &core_radius)
double eval(const double &los)
Kernel for zhao halo density profile squared.
virtual double theta_max(void) const
Return maximum model radius (in radians)
virtual GModelSpatialRadialProfileDMZhao & operator=(const GModelSpatialRadialProfileDMZhao &model)
Assignment operator.
double scale_radius(void) const
Return scale radius.
void copy_members(const GModelSpatialRadialProfileDMZhao &model)
Copy class members.
double halo_distance(void) const
Return halo distance.
GModelSpatialRadialProfileDMZhao(void)
Void constructor.
virtual std::string print(const GChatter &chatter=NORMAL) const
Print information.
double m_scale_density_squared
virtual void write(GXmlElement &xml) const
Write model into XML element.
virtual void read(const GXmlElement &xml)
Read model from XML element.
virtual ~GModelSpatialRadialProfileDMZhao(void)
Destructor.
GModelPar m_theta_min
Minimum theta angle.
virtual double profile_value(const double &theta) const
Radial profile.
GModelPar m_scale_density
Scale density of halo profile.
double jfactor(const double &angle) const
Calculate J-factor.
double beta(void) const
Return Zhao beta power index.
double gamma(void) const
Return Zhao gamma power index.
double m_last_scale_radius
double scale_density(void) const
Return scale density.
GModelPar m_halo_distance
Distance from earth to halo center.
virtual std::string classname(void) const
Return class name.
GModelPar m_alpha
Power index, inverse transition region width.
virtual GModelSpatialRadialProfileDMZhao * clone(void) const
Clone radial DMZhao profile model.
void init_members(void)
Initialise class members.
GModelPar m_theta_max
Maximum theta angle.
virtual double theta_min(void) const
Return minimum model radius (in radians)
virtual void clear(void)
Clear radial DMZhao profile model.
GModelPar m_beta
Power index, slope at >> m_scale_radius.
double alpha(void) const
Return Zhao alpha power index.
void free_members(void)
Delete class members.
GModelPar m_scale_radius
Scale radius of halo profile.
double mass_density(const double &radius) const
Calculate Halo Mass Density.
GModelPar m_core_radius
Core radius.
double m_last_scale_density
void update(void) const
Update precomputation cache.
GModelPar m_gamma
Power index, slope at << m_scale_radius.
double value(void) const
Return parameter value.