five

Data files for "Curvature in the very-high energy gamma-ray spectrum of M87"

收藏
NIAID Data Ecosystem2026-05-01 收录
下载链接:
https://zenodo.org/record/10781523
下载链接
链接失效反馈
官方服务:
资源简介:
Summary In this repository, we provide some auxiliary material in connection to our paper “Curvature in the very-high energy gamma-ray spectrum of M87" accepted for publication in the Astronomy and Astrophysics (A&A) Journal and available on Arxiv through the ID arXiv:2402.13330. For the full list of authors, please refer to the paper. In the publication, we study the very-high energy gamma-ray spectrum of a stacked high emission state of M87 using H.E.S.S. observations. We detect a curvature in the spectrum that is not related to the EBL absorption. In addition to that, we show that the gamma-gamma absorption by star light from the galaxy is weak to explain the measured curvature and that it is unlikely that different high states with similar spectral distribution could be able to explain the same curvature. Data and example code ECSV tables The ecsv tables provide the means to reproduce the figures found in the paper. They can be opened with `astropy.QTable`  as demonstrated below. from astropy.table import QTable table = QTable.read('Fig1_lightcurve_table.ecsv') print(table) The following example shows how to reproduce Fig. A2 from the paper (the modules imported are needed in the loaded enviroment): from astropy.table import QTable from scipy.stats import gmean %matplotlib inline import matplotlib.pyplot as plt import numpy as np import seaborn as sns from ebltable.ebl_from_model import EBL cmap = sns.color_palette("colorblind", as_cmap=True) colors = sns.color_palette("colorblind", 6) ebl = {} for m in ["finke2022", "kneiske", "dominguez-upper"]: ebl[m] = EBL.readmodel(m) lmu = np.logspace(-1,3.,100) z = 0.0042 nuInu = {} for m, e in ebl.items(): nuInu[m] = e.ebl_array(z,lmu) nuInu table = QTable.read('FigA2_EBL_ULs.ecsv') wavelengths = table["Wavelength"].value wavelengths = wavelengths counter = 0 for m in ["finke2022", "kneiske", "dominguez-upper"]: plt.loglog(lmu,nuInu[m], lw = 2.,label=f"{m} UL", color=colors[counter] ) ULs = table[f"{m} UL"][(wavelengths>12.4)*(wavelengths<40)].value plt.loglog(wavelengths[(wavelengths>12.4)*(wavelengths<40)],ULs, lw = 2., label = f"UL (this work)", ls='dashed', color=colors[counter]) plt.arrow(gmean(wavelengths[(wavelengths>12.4)*(wavelengths<40)]), np.median(ULs), 0, -0.2*np.median(ULs), head_width=5 ,head_length=0.1*np.median(ULs), alpha=0.5, color=colors[counter]) counter+=1 plt.gca().set_xlabel('Wavelength ($\mu$m)',size = 'x-large') plt.gca().set_ylabel(r'$\nu I_\nu (\mathrm{nW}\,\mathrm{sr}^{-1}\mathrm{m}^{-2})$',size = 'x-large') plt.legend(loc = 'lower center', ncol = 2) plt.tight_layout() plt.show() Text files The text files provide the gammapy fit results for the various analyses in the main text of the paper. For a complete definition of the models, we refer the reader to the paper. The name of the file is given by fit_stacked_M87_MODEL_flux_90perc_ENERGYRANGE_90perc.txt, where MODEL is the spectral model fitted (e.g., PLxEBLfinke2022 or PLxEBLfinke2022-free in case the EBL intensity alpha_norm is a free parameter) and ENERGYRANGE is the energy range of the reduced dataset (e.g., 0.3_31.6TeV).
创建时间:
2024-04-25
二维码
社区交流群
二维码
科研交流群
商业服务