Skip to content

PyGRB Injection Development

Francesco Pannarale edited this page Oct 11, 2022 · 15 revisions

PyGRB Injection Development

Issue: #3468

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. Completed - 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. Completed - 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.

1. Generation

pycbc_create_injections exists already and does (almost?) everything we might need it to.

2. EM-bright

EM-bright condition is based upon the remnant mass function.

Explicitly, we want a function in conversions.py that goes from:

  • eta: symmetric mass ratio
  • ns_g_mass: Gravitational mass of NS
  • ns_sequence [or potentially name (see lalsuite module)]
  • chi: BH spin magnitude
  • incl: angle between BH spin vector and NS orbital plane

to remnant mass (in solar masses)

Questions

  1. Will we keep anything under tmpltbank or move all the EM-bright stuff elsewhere?
  2. What goes into conversions.py, and what (if anything) goes into a module for EM-bright (or more broadly NS physics) calculations?

3. Sky jitter

4. Align the binary

PR: #3756

Use transforms.py to perform this transformation when calling pycbc_create_injections