SpectrumEvaluator

class gammapy.spectrum.SpectrumEvaluator(model, aeff=None, edisp=None, livetime=None, e_true=None)[source]

Bases: object

Calculate number of predicted counts (npred).

The true and reconstructed energy binning are inferred from the provided IRFs.

Parameters:
model : SpectralModel

Spectral model

aeff : EffectiveAreaTable

EffectiveArea

edisp : EnergyDispersion, optional

EnergyDispersion

livetime : Quantity

Observation duration (may be contained in aeff)

e_true : Quantity, optional

Desired energy axis of the prediced counts vector if no IRFs are given

Examples

Calculate predicted counts in a desired reconstruced energy binning

import numpy as np
import astropy.units as u
import matplotlib.pyplot as plt
from gammapy.irf import EffectiveAreaTable, EnergyDispersion
from gammapy.modeling.models import PowerLawSpectralModel
from gammapy.spectrum import SpectrumEvaluator

e_true = np.logspace(-2, 2.5, 109) * u.TeV
e_reco = np.logspace(-2, 2, 73) * u.TeV

aeff = EffectiveAreaTable.from_parametrization(energy=e_true)
edisp = EnergyDispersion.from_gauss(e_true=e_true, e_reco=e_reco, sigma=0.3, bias=0)

model = PowerLawSpectralModel(index=2.3, amplitude="2.5e-12 cm-2 s-1 TeV-1", reference="1 TeV")

predictor = SpectrumEvaluator(model=model, aeff=aeff, edisp=edisp, livetime="1 hour")
predictor.compute_npred().plot_hist()
plt.show()

(png, hires.png, pdf)

../_images/gammapy-spectrum-SpectrumEvaluator-1.png

Methods Summary

apply_aeff(self, integral_flux)
apply_edisp(self, true_counts)
compute_npred(self)

Methods Documentation

apply_aeff(self, integral_flux)[source]
apply_edisp(self, true_counts)[source]
compute_npred(self)[source]