def integrated_luminosities(self,out ,all_nus_rest, nuLnus4plotting):
"""
Calculates the integrated luminosities for
all model templates chosen by the user in out['intlum_models'],
within the integration ranges given by out['intlum_freqranges'].
##input:
- settings dictionary out[]
- all_nus_rest
- nuLnus4plotting: nu*luminosities for the four models corresponding
to each element of the total chain
"""
SBnuLnu, BBnuLnu, GAnuLnu, TOnuLnu, TOTALnuLnu, BBnuLnu_deredd =nuLnus4plotting
out['intlum_freqranges'] = (out['intlum_freqranges']*out['intlum_freqranges_unit']).to(u.Hz, equivalencies=u.spectral())
int_lums = []
for m in range(len(out['intlum_models'])):
if out['intlum_models'][m] == 'sb':
nuLnu= SBnuLnu
elif out['intlum_models'][m] == 'bbb':
nuLnu= BBnuLnu
elif out['intlum_models'][m] == 'bbbdered':
nuLnu=BBnuLnu_deredd
elif out['intlum_models'][m] == 'gal':
nuLnu=GAnuLnu
elif out['intlum_models'][m] == 'tor':
nuLnu=TOnuLnu
index = ((all_nus_rest >= np.log10(out['intlum_freqranges'][m][1].value)) & (all_nus_rest<= np.log10(out['intlum_freqranges'][m][0].value)))
all_nus_rest_int = 10**(all_nus_rest[index])
Lnu = nuLnu[:,index] / all_nus_rest_int
Lnu_int = scipy.integrate.trapz(Lnu, x=all_nus_rest_int)
int_lums.append(Lnu_int)
return np.array(int_lums)
评论列表
文章目录