Skip to content

PyGRB Injection Development

Andrew R. Williamson edited this page Dec 17, 2020 · 15 revisions

PyGRB Injection Development

We want to move away from using lalapps_inspinj to generate injection sets as xml files, with all the complication that entails. Ideally, a single job should be able to produce the injections in a format that can be passed to the filtering code, with perhaps a second stage to apportion them for analysis.

Currently, the process is as follows:

  1. lalapps_inspinj creates a set of injections whose parameters are drawn from desired distributions, placed at a single sky point
  2. pycbc_dark_vs_bright_injections sifts through these to select only those that meet an "EM-bright" criterion
  3. ligolw_cbc_jitter_skyloc spreads the injections out on the sky to cover the GRB positional uncertainty region by drawing new sky positions from some localisation distribution
  4. ligolw_cbc_align_total_spin takes the inclination iota of the binary (defined as the angle between line-of-sight and orbital angular momentum axis) and translates this so that theta_jn (the angle between line-of-sight and total angular momentum axis) takes the old value of iota
  5. pycbc_split_inspinj takes the resulting injection files and divides the injections up into chunks for analysis to parallelise the computation

We believe all this should be possible in two steps:

  1. pycbc_create_injections to take care of steps 1–4 above
  2. pycbc_hdf5_splitbank for step 5

In doing so, we will not only streamline the process but, importantly, can remove old dependencies on lalapps and pylal codes, as well as the constraints that come with using ligolw_xml tables.