LISA-RIFT: A modified version of RIFT for LISA sources. In its current state, it can used for analyzing MBHB signals. If you are using this code, please cite: Adapting a novel framework for rapid inference of massive black hole binaries for LISA.
Original RIFT paper: Rapid and accurate parameter inference for coalescing, precessing compact binaries (git repo
All codes reside in MonteCarloMarginalizeCode/Code
with all main RIFT executables in the bin
directory and modifications in the RIFT/LISA
directory.
The samplers reside in RIFT/integrators
directory. The workhorse for LISA-RIFT is the AdaptiveVolume (AV) sampler, based on the Varaha sampler.
The FFT routines and waveforms calls are in RIFT/lalsimutils
. The marginalized likelihood codes are in RIFT/likelihood
with the LISA specific code being factored_likelihood_LISA.py
.
The underlying algorithm is a two-stage iterative process, in the first stage marginalized likelihood is evaluated for points on a grid and in the second stage the marginalized likelihood values are used to generate posteriors. Both steps are highly parallelizable, enabling this code to use large datasets and costly models for analysis. The main executables are:
First stage: likelihood evaluation (called ILE) integrate_likelihood_extrinsic_batchmode
Second stage: interpolation and posterior construction (called CIP) util_ConstructIntrinsicPosterior_GenericCoordinates.py
The entire pipeline is created using util_RIFT_pseudo_pipe.py
with a template ini file for MBHB analysis in RIFT/LISA/template_ini
Ingredients to set up a run.
- Data: You can use either model waveforms or numerical relativity waveforms as injections. The injections are stored as h5 files. You can use
RIFT/LISA/injections/generate_injections.py
to generate injections. - PSDs: The noise curves for each of the three A, E, T channels. They should be in .xml.gz format.
bin/convert_psd_ascii2xml
can be used to convert a PSD in .txt format to .xml.gz format. This will output figures too for sanity checks. - ini file: This file contains the options for your run, including priors, template fmin, modes, number of iterations etc.
- initial grid: The initial grid over mass, spin, and sky location parameters.
bin/util_ManualOverlapGrid.py
can be used to generate this grid, the output will be a .xml.gz file. You could also useRIFT/LISA/initial_grid/fisher_errors.py
to generate the initial grid using information from Fisher errors.
These ingredients are then passed to bin/util_RIFT_pseudo_pipe.py
and it will create a run directory, including submit files. Then all you need to do is submit your run, and after a few hours you can plot your results using bin/plot_posterior_corner.py
.
- Cleaning up the code.
- Thorough documentation.
- User friendly options.
- An end to end example LISA-RIFT run.