DLASurvey Class¶
Notebooks¶
DLASurvey¶
This Class, a child of IGMSurvey, is designed to organize and analyze a survey of DLA systems (using DLASystem objects).
In general, a DLASurvey is a unique collection of DLASystem objects. It is specified by the number of systems and the references.
Instantiation¶
The DLASystem Class may be instantiated in a few ways. The default sets the properties listed above:
dlas = DLASurvey(ref='null')
One may instantiate and then add one or more DLASystem objects:
coord = SkyCoord(ra=123.1143, dec=-12.4321, unit='deg')
dlasys = DLASystem(coord, 1.244, [-300,300.]*u.km/u.s, 20.4)
dlasys.name = 'Sys1'
#
coord2 = SkyCoord(ra=223.1143, dec=42.4321, unit='deg')
dlasys2 = DLASystem(coord2, 1.744, [-300,300.]*u.km/u.s, 21.7)
dlasys2.name = 'Sys2'
# Add systems
dlas.add_abs_sys(dlasys)
dlas.add_abs_sys(dlasys2)
Attributes/Properties¶
Variable | Type | Description |
---|---|---|
nsys | int | Number of systems in the survey |
ref | str | References for the survey |
Datasets¶
We are striving to include all of the major DLA survey data published by the community.
Here is a Table describing the various samples that may be accessed.
Survey | Call | Reference(s) | Description |
---|---|---|---|
P03 | DLASurvey.load_P03() | Peroux03 | DLAs discovered from APM quasars |
SDSS_DR5 | DLASurvey.load_SDSS_DR5() | PW09 | DR5 |
G09 | DLASurvey.load_G09() | G09 | ESI survey by Guimaraes |
H100 | DLASurvey.load_H100() | Neeleman+13 | 100 unbiased HIRES spectra |
GGG | DLASurvey.load_GGG() | Crighton+15 | DLAs from the GGG Survey |
XQ-100 | DLASurvey.load_XQ100() | Sanchez+16 | DLAs from the XQ-100 Survey |
HST16 | DLASurvey.load_HST16() | Neeleman+16 | Sample of DLAs drawn from HST spectra |
Metallicities¶
If the DLA systems have measured metallicites in the dataset, one may access them with the ZH attribute:
ZH = h100.ZH
Ionic column densities¶
Similarly, some datasets include ionic measurements. These are loaded into each system but a Table of measurements may be generated:
SiII_clms = h100.ions((14,2)) # SiII
This astropy Table includes name (of the DLA), flagN, logN, sig_logN, attributes.
Plots¶
Binned Evaluations¶
One can calculate standard DLA statistics in bins of redshift, NHI, etc. with the following methods. Each requires that a sightline Table exists, so that g(z) may be evaluated.
g(z)¶
Provide the sightlines Table is filled and has keys Z_START and Z_END, this method will generate a selection function \(g(z)\) curve:
sdss = DLASurvey.load_SDSS_DR5()
zeval, gz = sdss.calculate_gz()
f(N,X)¶
Calculate the NHI frequency distribituion in bins of NHI and z. e.g.,
fN, fN_lo, fN_hi = sdss_stat.binned_fn([20.3, 20.5, 21., 21.5, 22.], [2, 2.5], log=True)
Setting log=True returns log10 values for f(N) and its error.
l(X)¶
Calculate the incidence per unit dX in binned redshift intervals. Default is over all NHI values. Here is an example:
lX, lX_lo, lX_hi = sdss_stat.binned_lox([2., 2.5, 3])
This calculates lX and its error in the intervals z=[2,2.5] and z=[2.5,3.].
rhoHI¶
Similar to the last two methods but now for the HI mass density. Here is an example:
zbins = [2., 2.5, 3.]
NHImnx = (20.3, 23.)
rho, rho_lo, rho_hi = sdss_stat.binned_rhoHI(zbins, NHImnx)
rho will have units of Solar mass per Mpc^3.
Fitted¶
By default, the Class loads pre-evaluated fits for various DLA quantities. These are drawn from the literature and are summarized in this Table:
Stat | Form | Reference | Description |
---|---|---|---|
l(z) | A + B*atan(z-C) | PN17 | Full redshift fit to l(z) |
f(N) | Double power law | PHW05 | Fitted only to DR3 |
ne/nH | log10 (ne/NH) for logNHI | Neeleman+15 | Based on CII* analysis |
Here are a few examples:
dlas = DLASurvey()
# f(N)
fN = dlas.fitted_fN(21.) # Not normalized
# l(z)
lz = dlas.fitted_lz(1.)
# nenH
nenH = dlas.fitted_nenH(21.)
Analysis¶
There are methods to fit aspects of the DLAs in pyigm.surveys.analysis, but these are mainly for the developers