Commit 78235a30 authored by Guang's avatar Guang Committed by Guang
Browse files

add E_cut to galaxy X-ray SED

parent 7f76c9fb
......@@ -56,38 +56,41 @@ class Xray(SedModule):
c = cst.c * 1e9
self.c = c
# Define wavelenght corresponding to some energy in units of nm.
lam_0p5keV = c*cst.h / (5e2*cst.eV)
lam_2keV = c*cst.h / (2e3*cst.eV)
lam_300keV = c*cst.h / (3e5*cst.eV)
self.lam_2keV = lam_2keV
self.lam_10keV = c*cst.h / (1e4*cst.eV)
lam_1keV = c*cst.h / (1e3*cst.eV)
lam_0p5keV = lam_1keV*2
lam_100keV = lam_1keV/100
lam_300keV = lam_1keV/300
self.lam_2keV = lam_1keV/2
self.lam_10keV = lam_1keV/10
# Define frequency corresponding to 2 keV in units of Hz.
self.nu_2keV = c / lam_2keV
self.nu_2keV = c / self.lam_2keV
# We define the wavelength grid for the X-ray emission
# corresponding to 0.25-1200 keV
self.wave = np.logspace(-3, 0.7, 1000)
# X-ray emission from galaxies: 1.hot-gas & 2.X-ray binaries
# 1.Hot-gas, assuming power-law index gamma=3
# 1.Hot-gas, assuming power-law index gamma=1, E_cut=1 keV
# normalized such that L(0.5-2 keV) = 1
self.lumin_hotgas = self.wave**0 / (lam_0p5keV - lam_2keV)
self.lumin_hotgas = self.wave**-2 * np.exp(-lam_1keV/self.wave)
lam_idxs = (self.wave<=lam_0p5keV) & (self.wave>=self.lam_2keV)
self.lumin_hotgas /= np.trapz(self.lumin_hotgas[lam_idxs], x=self.wave[lam_idxs])
# 2. X-ray binaries (XRB)
# also have two components:
# 2.1 high-mass X-ray binaries (HMXB)
# 2.2 low-mass X-ray binaries (LMXB)
# Assuming gamma=2. for both components (Wu & Gu 2008)
# normalized such that L(2-10 keV) = 1.
self.lumin_xrb = self.wave**-1 / np.log(5.)
self.lumin_xrb = self.wave**-1 * np.exp(-lam_100keV/self.wave)
lam_idxs = (self.wave<=self.lam_2keV) & (self.wave>=self.lam_10keV)
self.lumin_xrb /= np.trapz(self.lumin_xrb[lam_idxs], x=self.wave[lam_idxs])
# We compute the unobscured AGN corona X-ray emission
# The shape is power-law with high-E exp. cutoff
# with cut-off E=300 keV (Ueda+2014; Aird+2015)
self.lumin_corona = self.wave**(self.gam - 3.) * \
np.exp(-lam_300keV/self.wave)
self.lumin_corona = self.wave**(self.gam - 3.) * np.exp(-lam_300keV/self.wave)
# Normaliz the SED at 2 keV
self.lumin_corona /= lam_2keV**(self.gam - 3.) * \
np.exp(-lam_300keV/lam_2keV)
self.lumin_corona /= self.lam_2keV**(self.gam - 3.) * np.exp(-lam_300keV/self.lam_2keV)
# Calculate total AGN corona X-ray luminosity
self.l_agn_xray_total = np.trapz(self.lumin_corona, x=self.wave)
# Calculate 2-10 keV AGN corona X-ray luminosity
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment