create_crab_spectral_model#

gammapy.modeling.models.create_crab_spectral_model(reference='meyer')[source]#

Create a Crab nebula reference spectral model.

The Crab nebula is often used as a standard candle in gamma-ray astronomy. Fluxes and sensitivities are often quoted relative to the Crab spectrum.

The following references are available:

Parameters:
reference{‘meyer’, ‘hegra’, ‘hess_pl’, ‘hess_ecpl’, ‘magic_lp’, ‘magic_ecpl’}, optional

Which reference to use for the spectral model. Default is ‘meyer’.

Examples

Let’s first import what we need:

>>> import astropy.units as u
>>> from gammapy.modeling.models import PowerLawSpectralModel, create_crab_spectral_model

Plot the ‘hess_ecpl’ reference Crab spectrum between 1 TeV and 100 TeV:

>>> crab_hess_ecpl = create_crab_spectral_model('hess_ecpl')
>>> crab_hess_ecpl.plot([1, 100] * u.TeV)  

Use a reference crab spectrum as unit to measure a differential flux (at 10 TeV):

>>> pwl = PowerLawSpectralModel(
...        index=2.3, amplitude=1e-12 * u.Unit('1 / (cm2 s TeV)'), reference=1 * u.TeV
...    )
>>> crab = create_crab_spectral_model('hess_pl')
>>> energy = 10 * u.TeV
>>> dnde_cu = (pwl(energy) / crab(energy)).to('%')
>>> print(dnde_cu)
6.196991563774588 %

And the same for integral fluxes (between 1 and 10 TeV):

>>> # compute integral flux in crab units
>>> emin, emax = [1, 10] * u.TeV
>>> flux_int_cu = (pwl.integral(emin, emax) / crab.integral(emin, emax)).to('%')
>>> print(flux_int_cu)
3.535058216604496 %