ZhaoProfile#

class gammapy.astro.darkmatter.ZhaoProfile(r_s=None, alpha=None, beta=None, gamma=None, rho_s=<Quantity 1. GeV / cm3>)[source]#

Bases: gammapy.astro.darkmatter.profiles.DMProfile

Zhao Profile.

This is taken from equation 1 from Zhao (1996). It is a generalization of the NFW profile. The volume density is parametrized with a double power-law. Scale radii smaller than the scale radius are described with a slope of \(-\gamma\) and scale radii larger than the scale radius are described with a slope of \(-\beta\). \(\alpha\) is a measure for the width of the transition region.

\[\rho(r) = \rho_s \left(\frac{r_s}{r}\right)^\gamma \left(1 + \left(\frac{r}{r_s}\right)^\frac{1}{\alpha} \right)^{(\gamma - \beta) \alpha}\]
Parameters
r_sQuantity

Scale radius, \(r_s\).

alphaQuantity

\(\alpha\).

beta: `~astropy.units.Quantity`

\(\beta\).

gammaQuantity

\(\gamma\).

rho_sQuantity

Characteristic density, \(\rho_s\).

References

Attributes Summary

DEFAULT_ALPHA

DEFAULT_BETA

DEFAULT_GAMMA

(alpha, beta, gamma) = (1,3,1) is NFW profile.

DEFAULT_SCALE_RADIUS

DISTANCE_GC

Distance to the Galactic Center as given in reference 2

LOCAL_DENSITY

Local dark matter density as given in reference 2

Methods Summary

__call__(radius)

Call evaluate method of derived classes.

evaluate(radius, r_s, alpha, beta, gamma, rho_s)

Evaluate the profile.

integral(rmin, rmax, separation, ndecade[, ...])

Integrate dark matter profile numerically.

integrate_spectrum_separation(func, xmin, ...)

Squared dark matter profile integral.

scale_to_local_density()

Scale to local density.

Attributes Documentation

DEFAULT_ALPHA = 1#
DEFAULT_BETA = 3#
DEFAULT_GAMMA = 1#

(alpha, beta, gamma) = (1,3,1) is NFW profile. Default scale radius as given in reference 2 (same as for NFW profile)

DEFAULT_SCALE_RADIUS = <Quantity 24.42 kpc>#
DISTANCE_GC = <Quantity 8.5 kpc>#

Distance to the Galactic Center as given in reference 2

LOCAL_DENSITY = <Quantity 0.39 GeV / cm3>#

Local dark matter density as given in reference 2

Methods Documentation

__call__(radius)#

Call evaluate method of derived classes.

static evaluate(radius, r_s, alpha, beta, gamma, rho_s)[source]#

Evaluate the profile.

integral(rmin, rmax, separation, ndecade, squared=True)#

Integrate dark matter profile numerically.

\[\begin{split}F(r_{min}, r_{max}) = \int_{r_{min}}^{r_{max}}\rho(r)^\gamma dr \\ \gamma = 2 \text{for annihilation} \\ \gamma = 1 \text{for decay}\end{split}\]
Parameters
rmin, rmaxQuantity

Lower and upper bound of integration range.

separationndarray

Separation angle in radians.

ndecadeint, optional

Number of grid points per decade used for the integration. Default is 10000.

squaredbool, optional

Square the profile before integration. Default is True.

integrate_spectrum_separation(func, xmin, xmax, separation, ndecade, squared=True)#

Squared dark matter profile integral.

Parameters
xmin, xmaxQuantity

Lower and upper bound of integration range.

separationndarray

Separation angle in radians.

ndecadeint

Number of grid points per decade used for the integration.

squaredbool

Square the profile before integration. Default is True.

scale_to_local_density()#

Scale to local density.