calc_energy_flux

sherpa.astro.ui.calc_energy_flux(lo=None, hi=None, id=None, bkg_id=None, model=None)

Integrate the unconvolved source model over a pass band.

Calculate the integral of E * S(E) over a pass band, where E is the energy of the bin and S(E) the spectral model evaluated for that bin (that is, the model without any instrumental responses applied to it).

Changed in version 4.12.1: The model parameter was added.

Parameters
  • lo (number, optional) – If both are None or both are set then calculate the flux over the given band. If only one is set then calculate the flux density at that point. The units for lo and hi are given by the current analysis setting.

  • hi (number, optional) – If both are None or both are set then calculate the flux over the given band. If only one is set then calculate the flux density at that point. The units for lo and hi are given by the current analysis setting.

  • id (int or str, optional) – Use the source expression associated with this data set. If not given then the default identifier is used, as returned by get_default_id.

  • bkg_id (int or str, optional) – If set, use the model associated with the given background component rather than the source model.

  • model (model, optional) – The model to integrate. If left as None then the source model for the dataset will be used. This can be used to calculate the unabsorbed flux, as shown in the examples.

Returns

flux – The flux or flux density. For X-Spec style models the flux units will be erg/cm^2/s and the flux density units will be either erg/cm^2/s/keV or erg/cm^2/s/Angstrom, depending on the analysis setting.

Return type

number

See also

calc_data_sum

Sum up the data values over a pass band.

calc_model_sum

Sum up the fitted model over a pass band.

calc_source_sum

Sum up the source model over a pass band.

calc_photon_flux

Integrate the unconvolved source model over a pass band.

set_analysis

Set the units used when fitting and displaying spectral data

set_model

Set the source model expression for a data set.

Notes

The units of lo and hi are determined by the analysis setting for the data set (e.g. get_analysis).

Any existing filter on the data set - e.g. as created by ignore or notice - is ignored by this function.

The units of the answer depend on the model components used in the source expression and the axis or axes of the data set. It is unlikely to give sensible results for 2D data sets.

Examples

Calculate the integral of the unconvolved model over the full range of the default data set:

>>> calc_energy_flux()

Return the flux for the data set labelled “core”:

>>> calc_energy_flux(id='core')

Calculate the energy flux over the ranges 0.5 to 2 and 0.5 to 7 keV:

>>> set_analysis('energy')
>>> calc_energy_flux(0.5, 2)
5.7224906878061796e-10
>>> calc_energy_flux(0.5, 7)
1.3758131915063825e-09

Calculate the energy flux density at 0.5 keV for the source “core”:

>>> calc_energy_flux(0.5, id="core")
5.2573786652855304e-10

Calculate the flux for the model applied to the second background component of the ‘jet’ data set, for the wavelength range 20 to 22 Angstroms:

>>> set_analysis('jet', 'wave')
>>> calc_energy_flux(20, 22, id='jet', bkg_id=2)

For the following example, the source model is an absorbed powerlaw - xsphabs.gal * powerlaw.pl - so that the fabs value represents the absorbed flux, and funabs the unabsorbed flux (i.e. just the power-law component):

>>> fabs = calc_energy_flux(0.5, 7)
>>> funabs = calc_energy_flux(0.5, 7, model=pl)