Skip to content

Modified version of RIFT to work with LISA/3g sources.

License

Notifications You must be signed in to change notification settings

AasimZJan/LISA-RIFT

This branch is 275 commits ahead of, 233 commits behind oshaughn/research-projects-RIT:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

673cc3f · Oct 25, 2024
Feb 8, 2020
Apr 3, 2024
Oct 8, 2024
Apr 2, 2024
Sep 30, 2023
Aug 28, 2021
Mar 8, 2019
May 3, 2024
Sep 30, 2023
Jan 24, 2020
Sep 22, 2023
Aug 29, 2022
Feb 22, 2019
Apr 8, 2024
Aug 30, 2022
Oct 25, 2024
Jun 1, 2021
Aug 9, 2018
May 10, 2019
Apr 5, 2024
Apr 22, 2023
Aug 8, 2024
Apr 3, 2024

Repository files navigation

Introduction


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

Structure of this 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.

Structure of this code:

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

Setting up a run:

Ingredients to set up a run.

  1. 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.
  2. 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.
  3. ini file: This file contains the options for your run, including priors, template fmin, modes, number of iterations etc.
  4. 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 use RIFT/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 .

Future plans

  1. Cleaning up the code.
  2. Thorough documentation.
  3. User friendly options.
  4. An end to end example LISA-RIFT run.

About

Modified version of RIFT to work with LISA/3g sources.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 85.9%
  • TeX 7.4%
  • Makefile 4.5%
  • Shell 1.1%
  • Jupyter Notebook 1.0%
  • Mathematica 0.1%