Line Emission Sources

LineSourceModel assumes that the emission is occuring at a single energy, and that it may or may not be broadened by thermal or other motions. In the former case, the emission is a delta function at a single rest-frame energy \(E_0\):

\[\varepsilon(E) = A\delta(E-E_0)\]

In the latter case, the emission is represented by a Gaussian with mean \(E_0\) and standard deviation \(\sigma_E\):

\[\varepsilon(E) = \frac{A}{\sigma_E\sqrt{2\pi}}e^{-\frac{(E-E_0)^2}{2\sigma_E^2}}\]

When creating a LineSourceModel, it is initialized with the line rest-frame energy e0 and an emission_field field specification that represents the normalization \(A\) in the equations above, which must be in units of counts/s. Optionally, the line may be broadened by passing in a sigma parameter, which can be a field specification or YTQuantity, corresponding to either a spatially varying field or a single constant value. In either case, sigma may have units of energy or velocity; if the latter, it will be converted to a broadening in energy units via \(\sigma_E = \sigma_v\frac{E_0}{c}\).

Note

In most cases, you will want velocity broadening of lines to be handled by the inputted velocity fields instead of by the sigma parameter. This parameter is designed for thermal or other sources of “intrinsic” broadening.

Examples

An example of an unbroadened line:

e0 = YTQuantity(5.0, "keV") # Rest-frame line energy
emission_field = ("gas", "line_emission") # Line emission field (normalization)
line_model = pyxsim.LineSourceModel(e0, line_emission)

An example of a line with a constant broadening in km/s:

e0 = YTQuantity(6.0, "keV")
emission_field = ("gas", "line_emission") # Line emission field (normalization)
sigma = (500., "km/s")
line_model = pyxsim.LineSourceModel(e0, line_emission, sigma=sigma)

An example of a line with a spatially varying broadening field:

e0 = YTQuantity(6.0, "keV")
emission_field = ("gas", "line_emission") # Line emission field (normalization)
sigma = "dark_matter_velocity_dispersion" # Has dimensions of velocity
line_model = pyxsim.LineSourceModel(e0, line_emission, sigma=sigma)