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

Loading

Here is an example of loading the H100 dataset:

h100 = DLASurvey.load_H100()

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