Components Package#

class jaxqsofit.components.SpectralComponentConfig(use_lines=True, use_feii=False, use_balmer_continuum=False, use_multiplicative_tilt=False, use_tied_lines=True, line_table=None, line_prior_config=None, line_flux_scale_mjy=1.0, include_elg_narrow_lines=False, include_high_ionization_lines=False, line_centers_rest=None, line_names=None, broad_line_names=(), line_amp_prior_sigma=2.0, broad_fwhm_kms_default=3000.0, narrow_fwhm_kms_default=500.0, fixed_narrow_fwhm_kms=None, fixed_narrow_amp_scale=None, line_velocity_sigma_kms=500.0, feii_fwhm_kms_default=3000.0, balmer_velocity_kms_default=3000.0, feii_fnu_pivot_rest=None, balmer_fnu_pivot_rest=3000.0)[source]#

Bases: object

Reusable jaxqsofit spectral-component settings for external joint models.

evaluate_joint_spectral_components operates in f_nu units because the external SED continuum is passed as continuum_mjy. Internally generated Fe II and Balmer-continuum templates are native f_lambda shapes; before they are added to the mJy continuum, their shapes are converted to f_nu by multiplying by (lambda / pivot)^2. The sampled Fe/Balmer normalizations therefore remain mJy-like amplitudes at the configured pivot.

Parameters:
  • use_lines (bool)

  • use_feii (bool)

  • use_balmer_continuum (bool)

  • use_multiplicative_tilt (bool)

  • use_tied_lines (bool)

  • line_table (Sequence[Mapping[str, Any]] | None)

  • line_prior_config (Mapping[str, Any] | None)

  • line_flux_scale_mjy (float)

  • include_elg_narrow_lines (bool)

  • include_high_ionization_lines (bool)

  • line_centers_rest (Sequence[float] | None)

  • line_names (Sequence[str] | None)

  • broad_line_names (Sequence[str])

  • line_amp_prior_sigma (float)

  • broad_fwhm_kms_default (float)

  • narrow_fwhm_kms_default (float)

  • fixed_narrow_fwhm_kms (Any | None)

  • fixed_narrow_amp_scale (Any | None)

  • line_velocity_sigma_kms (float)

  • feii_fwhm_kms_default (float)

  • balmer_velocity_kms_default (float)

  • feii_fnu_pivot_rest (float | None)

  • balmer_fnu_pivot_rest (float | None)

use_lines: bool = True#
use_feii: bool = False#
use_balmer_continuum: bool = False#
use_multiplicative_tilt: bool = False#
use_tied_lines: bool = True#
line_table: Sequence[Mapping[str, Any]] | None = None#
line_prior_config: Mapping[str, Any] | None = None#
line_flux_scale_mjy: float = 1.0#
include_elg_narrow_lines: bool = False#
include_high_ionization_lines: bool = False#
line_centers_rest: Sequence[float] | None = None#
line_names: Sequence[str] | None = None#
broad_line_names: Sequence[str] = ()#
line_amp_prior_sigma: float = 2.0#
broad_fwhm_kms_default: float = 3000.0#
narrow_fwhm_kms_default: float = 500.0#
fixed_narrow_fwhm_kms: Any | None = None#
fixed_narrow_amp_scale: Any | None = None#
line_velocity_sigma_kms: float = 500.0#
feii_fwhm_kms_default: float = 3000.0#
balmer_velocity_kms_default: float = 3000.0#
feii_fnu_pivot_rest: float | None = None#
balmer_fnu_pivot_rest: float | None = 3000.0#
__init__(use_lines=True, use_feii=False, use_balmer_continuum=False, use_multiplicative_tilt=False, use_tied_lines=True, line_table=None, line_prior_config=None, line_flux_scale_mjy=1.0, include_elg_narrow_lines=False, include_high_ionization_lines=False, line_centers_rest=None, line_names=None, broad_line_names=(), line_amp_prior_sigma=2.0, broad_fwhm_kms_default=3000.0, narrow_fwhm_kms_default=500.0, fixed_narrow_fwhm_kms=None, fixed_narrow_amp_scale=None, line_velocity_sigma_kms=500.0, feii_fwhm_kms_default=3000.0, balmer_velocity_kms_default=3000.0, feii_fnu_pivot_rest=None, balmer_fnu_pivot_rest=3000.0)#
Parameters:
  • use_lines (bool)

  • use_feii (bool)

  • use_balmer_continuum (bool)

  • use_multiplicative_tilt (bool)

  • use_tied_lines (bool)

  • line_table (Sequence[Mapping[str, Any]] | None)

  • line_prior_config (Mapping[str, Any] | None)

  • line_flux_scale_mjy (float)

  • include_elg_narrow_lines (bool)

  • include_high_ionization_lines (bool)

  • line_centers_rest (Sequence[float] | None)

  • line_names (Sequence[str] | None)

  • broad_line_names (Sequence[str])

  • line_amp_prior_sigma (float)

  • broad_fwhm_kms_default (float)

  • narrow_fwhm_kms_default (float)

  • fixed_narrow_fwhm_kms (Any | None)

  • fixed_narrow_amp_scale (Any | None)

  • line_velocity_sigma_kms (float)

  • feii_fwhm_kms_default (float)

  • balmer_velocity_kms_default (float)

  • feii_fnu_pivot_rest (float | None)

  • balmer_fnu_pivot_rest (float | None)

Return type:

None

jaxqsofit.components.evaluate_joint_spectral_components(wave_obs, redshift, continuum_mjy, *, config=None, feii_template_wave_rest=None, feii_template_flux=None, site_prefix='jqf')[source]#

Evaluate jaxqsofit spectral components around an external continuum.

Parameters:
  • wave_obs – Observed-frame wavelength grid in Angstrom.

  • redshift – Source redshift.

  • continuum_mjy – External continuum prediction on wave_obs in mJy. In a joint grahspj fit this is the shared AGN+host continuum.

  • feii_template_wave_rest – Rest-frame Fe II template sampled as an f_lambda-shaped relative spectrum. The evaluated Fe II component is converted to f_nu shape before being added to the mJy continuum.

  • feii_template_flux – Rest-frame Fe II template sampled as an f_lambda-shaped relative spectrum. The evaluated Fe II component is converted to f_nu shape before being added to the mJy continuum.

  • config (SpectralComponentConfig | None)

  • site_prefix (str)

Returns:

JAX arrays for total model and individual component contributions in mJy. The function samples NumPyro parameters with names prefixed by site_prefix so it can run inside a larger joint model.

Return type:

dict