Skip to content

sensitivity - Sensitivity Classes

Calculate sensitivity curves using Gammapy for gamma-ray observatories.

Sensitivity(
irf: IRF,
observatory: str,
radius: u.Quantity,
min_energy: u.Quantity = 0.02 * u.TeV,
max_energy: u.Quantity = 100 * u.TeV,
min_time: u.Quantity = 10 * u.s,
max_time: u.Quantity = 43200 * u.s,
ebl: str | None = None,
n_sensitivity_points: int = 16,
sensitivity_curve: u.Quantity | None = None,
photon_flux_curve: u.Quantity | None = None,
)

Key Parameters:

ParameterTypeDescriptionDefault
irfIRFInstrument response functionRequired
observatorystrObservatory name (e.g., "ctao_south")Required
radiusu.QuantityExtraction region radiusRequired
min_energyu.QuantityMinimum energy0.02 TeV
max_energyu.QuantityMaximum energy100 TeV
n_sensitivity_pointsintNumber of time points16

Example:

from sensipy.sensitivity import Sensitivity
from astropy import units as u
sens = Sensitivity(
irf=irf,
observatory="ctao_south",
min_energy=20 * u.GeV,
max_energy=10 * u.TeV,
radius=3.0 * u.deg,
)

Compute sensitivity curve for a given source.

get_sensitivity_curve(source: Source) -> None

Calculates sensitivity and photon flux curves, stored in sensitivity_curve and photon_flux_curve attributes.

sens.get_sensitivity_curve(source=source)
print(sens.sensitivity_curve)

Get sensitivity or photon flux at a specific time.

get(
t: u.Quantity | int | float,
mode: Literal["sensitivity", "photon_flux"] = "sensitivity",
) -> u.Quantity
# Differential sensitivity
diff_sens = sens.get(1000 * u.s, mode="sensitivity")
# Photon flux
phot_flux = sens.get(1000 * u.s, mode="photon_flux")

Returns the computed sensitivity curve as u.Quantity.

Returns the computed photon flux curve as u.Quantity.

Returns sensitivity data as an Astropy Table.

table = sens.table
print(table)

Returns sensitivity data as a Pandas DataFrame.

df = sens.pandas
df.plot(x='time', y='sensitivity', loglog=True)

Scaled template spectral model used internally for sensitivity calculations.

ScaledTemplateModel(scaling_factor: int | float = 1e-6, *args, **kwargs)

Create from an existing TemplateSpectralModel.

@classmethod
from_template(
cls,
model: TemplateSpectralModel,
scaling_factor: int | float = 1,
) -> ScaledTemplateModel
  • scaling_factor: Get/set the scaling factor
  • values: Get/set template values