SciPy

darkhistory.electrons.ics.ics_spectrum.rel_spec

darkhistory.electrons.ics.ics_spectrum.rel_spec(eleceng, photeng, T, inf_upp_bound=False, as_pairs=False)

Relativistic ICS spectrum of secondary photons.

Parameters:
elecengndarray

Incoming electron energy.

photengndarray

Outgoing photon energy.

Tfloat

CMB temperature.

inf_upp_boundbool

If True, calculates the approximate spectrum that is used for fast interpolation over different values of T. See Notes for more details. Default is False.

as_pairsbool

If true, treats eleceng and photeng as a paired list: produces eleceng.size == photeng.size values. Otherwise, gets the spectrum at each photeng for each eleceng, returning an array of length eleceng.size*photeng.size.

Returns:
TransFuncAtRedshift or ndarray

dN/(dt dE) of the outgoing photons (dt = 1 s). If as_pairs == False, returns a TransFuncAtRedshift, with abscissa given by (eleceng, photeng). Otherwise, returns an ndarray, with abscissa given by each pair of (eleceng, photeng).

Notes

This function accepts the energy of the electron as one of the arguments and not the kinetic energy, unlike the other related ICS functions.

The flag inf_upp_bound determines whether an approximation is taken that only gets the shape of the spectrum correct for \(E_{\gamma,\text{final}} \gtrsim T_\text{CMB}\). This is sufficient from an energy conservation perspective, and is used for building a table that can be interpolated over different values of T quickly.

If inf_upp_bound == False, the spectrum up to \(\mathcal{O}(1/\gamma^2)\) corrections is given. This is a combination of the spectrum derived in Eq. (2.48) of Ref. [1]_ and Eq. (9) of Ref. [2]_, which assumes that electrons only lose energy, and Eq. (8) of Ref. [2]_, which contains the spectrum of photons produced electrons getting upscattered.