Components
The QSFit.jl package implements the following GModelFit-compatible components:
balmercont
Balmer continuum (λ < 3645Å) and pseudo-continuum (i.e. unresolved Balmer emission lines at λ < 3645Å).
using GModelFit, Gnuplot, QSFit
comp = QSFit.balmercont(1, 1)
@gp "set grid" :-
@gp :- xlab="Wavelength [A]" ylab="Lum. density [arb.units]" :-
@gp :- 3645.07.*[1,1] [0, 1.1] "w l notit dt 4 lc rgb 'black'" :-
x = Domain(1000.:4500)
@gp :- coords(x) comp(x, ratio=1) "w l notit lw 2 lc rgb 'red'"
@gp :- coords(x) comp(x, ratio=0.5) "w l notit lw 2 lc rgb 'blue'"
cutoff_powerlaw
Continuum cutoff-powerlaw
gaussconv
Convolution of a spectrum sampled on a log-regular grid with a Gaussian kernel.
hostgalaxy
Host galaxy templates
SWIRE templates:
using GModelFit, Gnuplot, QSFit x = Domain(3e3:1.:2e4) @gp xr=[3500,6700] "set grid" :- for t in filter(x -> x[:library] == "swire", QSFit.list_hostgalaxy_templates()) local comp = QSFit.hostgalaxy(t[:template], library=t[:library]) @gp :- coords(x) comp(x) "w l t '$(t[:template])'" end
Ilbert+09 templates:
using GModelFit, Gnuplot, QSFit x = Domain(3e3:1.:2e4) @gp xr=[3500,6700] "set grid" :- for t in filter(x -> x[:library] == "ILBERT2009", QSFit.list_hostgalaxy_templates()) local comp = QSFit.hostgalaxy(t[:template], library=t[:library]) @gp :- coords(x) comp(x) "w l t '$(t[:template])'" end
interpolator
Interpolate generic template on a wavelength grid.
ironopt
Iron complex emission lines at optical wavelengths (from Véron-Cetty et al. 2004).
using GModelFit, Gnuplot, QSFit
x = Domain(3.5e3:7e3)
@gp "set grid"
comp = QSFit.ironopt_broad(5000.)
@gp :- coords(x) comp(x) "w l t '$(comp.fwhm)'"
comp = QSFit.ironopt_narrow(1000.)
@gp :- coords(x) comp(x) "w l t '$(comp.fwhm)'"
ironuv
Iron complex emission lines at UV wavelengths (from Vestergaard & Wilkes 2001).
using GModelFit, Gnuplot, QSFit
x = Domain(1e3:1:3.5e3)
comp = QSFit.ironuv(3000.)
@gp "set grid" coords(x) comp(x) "w l notit"
powerlaw
Continuum powerlaw.
sbpl
Continuum smoothly broken powerlaw.
using GModelFit, Gnuplot, QSFit
comp = QSFit.sbpl(20)
comp.alpha1.val = 2
comp.alpha2.val = -2
comp.delta.val = 0.5
x = Domain(0.7:0.01:500)
@gp coords(x) comp(x, delta=0.5) "w l notit" xlog=true ylog=true
@gp :- coords(x) comp(x, delta=0.3) "w l notit"
@gp :- coords(x) comp(x, delta=0.1) "w l notit"
Emission lines
SpecLineAsymmGauss
: Emission line with asymmetric Gaussian profile;SpecLineGauss
: Emission line with Gaussian profile;SpecLineLorentz
: Emission line with Lorentz profile;SpecLineVoigt
: Emission line with Voigt profile;
using GModelFit, Gnuplot, QSFit, Statistics
dom = Domain(3.485e3:0.1:3.515e3)
c1 = QSFit.SpecLineGauss(mean(coords(dom)))
c2 = QSFit.SpecLineLorentz(mean(coords(dom)))
c3 = QSFit.SpecLineVoigt(mean(coords(dom)))
@gp coords(dom) c1(dom, fwhm=300) "w l t 'Gauss' lw 3 "
@gp :- coords(dom) c2(dom, fwhm=300) "w l t 'Lorentz' lw 3 "
@gp :- coords(dom) c3(dom, fwhm=300, log_a=-2) "w l t 'Voigt-2' dt 2"
@gp :- coords(dom) c3(dom, fwhm=300, log_a=-1) "w l t 'Voigt-1'"
@gp :- coords(dom) c3(dom, fwhm=300, log_a= 0) "w l t 'Voigt+0'"
@gp :- coords(dom) c3(dom, fwhm=300, log_a= 1) "w l t 'Voigt+1'"
@gp :- coords(dom) c3(dom, fwhm=300, log_a= 2) "w l t 'Voigt+2' dt 2"