darkhistory.low_energy.lowE_deposition.compute_fs¶
-
darkhistory.low_energy.lowE_deposition.
compute_fs
(MEDEA_interp, elec_spec, phot_spec, x, dE_dVdt_inj, dt, highengdep, cmbloss, method='old', separate_higheng=True)¶ Compute f(z) fractions for continuum photons, photoexcitation of HI, and photoionization of HI, HeI, HeII
Given a spectrum of deposited electrons and photons, resolve their energy into H ionization, and ionization, H excitation, heating, and continuum photons in that order.
Parameters: - phot_spec : Spectrum object
spectrum of photons. Assumed to be in dNdE mode. spec.totN() should return number per baryon.
- elec_spec : Spectrum object
spectrum of electrons. Assumed to be in dNdE mode. spec.totN() should return number per baryon.
- x : list of floats
number of (HI, HeI, HeII) divided by nH at redshift photon_spectrum.rs
- dE_dVdt_inj : float
DM energy injection rate, dE/dVdt injected. This is for unclustered DM (i.e. without structure formation).
- dt : float
time in seconds over which these spectra were deposited.
- highengdep : list of floats
total amount of energy deposited by high energy particles into {H_ionization, H_excitation, heating, continuum} per baryon per time, in that order.
- cmbloss : float
Total amount of energy in upscattered photons that came from the CMB, per baryon per time, (1/n_B)dE/dVdt
- method : {‘old’,’helium’,’new’}
‘old’: All photons >= 13.6eV ionize hydrogen, within [10.2, 13.6)eV excite hydrogen, < 10.2eV are labelled continuum. ‘helium’: Same as ‘old’, but now photons >= 13.6 can ionize HeI and HeII also. ‘new’: Same as ‘ion’, but now [10.2, 13.6)eV photons treated more carefully.
- separate_higheng : bool, optional
If True, returns separate high energy deposition.
Returns: - ndarray or tuple of ndarray
- f_c(z) for z within spec.rs +/- dt/2
- The order of the channels is {H Ionization, He Ionization, H Excitation, Heating and Continuum}
Notes
The CMB component hasn’t been subtracted from the continuum photons yet Think about the exceptions that should be thrown (elec_spec.rs should equal phot_spec.rs)