Waveform systematics in GW231028: improved analysis and model-consistent results
Description
This repository contains the analysis script and input files needed to reproduce the calibration-included time-frequency-domain parameter-estimation runs for GW231028_153006 (GW231028b).
The main script is:
-
tfd_calib.py
The repository should also include the following input files in the working directory from which the script is executed:
-
GW231028b_calibration_envelope_H1.dat -
GW231028b_calibration_envelope_L1.dat -
Mine_offsource_acf_psd_GW231028b_10-1024Hz_block32s_acf1-0s_biased_v0.npy
Purpose
The script performs Bayesian parameter estimation for GW231028b using bilby, dynesty, detector calibration uncertainty, and several waveform approximants. It loads the event strain data and PSD estimate, applies a bandpass filter and Tukey window, attaches calibration spline models to the H1 and L1 interferometers, and runs a gravitational-wave transient likelihood.
The paper mainly uses results with lower frequency cutoffs of 10 Hz and 20 Hz.
Requirements
The script was written for a Python environment with gravitational-wave analysis packages installed, including:
-
python 3.10 - bilby : 2.7.1
- numpy : 2.2.6
- scipy : 1.13.1
- astropy : 6.1.7
- pycbc : 2.8.2
- lalsuite : 7.7.0
The waveform data required by LALSuite must be available locally. In the script, LAL_DATA_PATH is set relative to the user's home directory:
~/Allthing/Data/lalsuite-waveform-data/waveform_data
If your waveform data are stored elsewhere, update the LAL_DATA_PATH assignment in Data/tfd_calib.py before running the analysis.
Input Files
The script expects the strain and PSD file:
Mine_offsource_acf_psd_GW231028b_10-1024Hz_block32s_acf1-0s_biased_v0.npy
This file should contain a Python dictionary with at least the following entries:
-
psd_average['pycbc_psd'] -
strain_data_around_event
The calibration envelope files are loaded separately for each detector:
GW231028b_calibration_envelope_H1.dat
GW231028b_calibration_envelope_L1.dat
These are used to construct detector-specific calibration priors.
Usage
Run the script from the directory containing the input .dat and .npy files.
The script requires two command-line arguments:
-
--flow: lower frequency cutoff in Hz -
--approx: waveform approximant
Allowed waveform approximants are:
-
NRSur7dq4 -
IMRPhenomXPHM-SpinTaylor -
IMRPhenomXO4a
The main analyses in the paper use --flow 10 and --flow 20.
Example runs:
python Data/tfd_calib.py --flow 10 --approx NRSur7dq4
python Data/tfd_calib.py --flow 20 --approx NRSur7dq4
python Data/tfd_calib.py --flow 10 --approx IMRPhenomXPHM-SpinTaylor
python Data/tfd_calib.py --flow 20 --approx IMRPhenomXPHM-SpinTaylor
python Data/tfd_calib.py --flow 10 --approx IMRPhenomXO4a
python Data/tfd_calib.py --flow 20 --approx IMRPhenomXO4a
Output
For each run, output is written to:
TFD_results-v1/f<flow>Hz_d8s_<approximant>_calib/
For example:
TFD_results-v1/f10Hz_d8s_NRSur7dq4_calib/
TFD_results-v1/f20Hz_d8s_IMRPhenomXO4a_calib/
The sampler is run with resume=True, so interrupted or restarted jobs will continue from existing checkpoint files when available.
The script also saves a corner plot for selected parameters:
<outdir>/<label>_part_corner.pdf
where the plotted parameters are:
-
redshifted chirp mass
-
mass ratio
-
luminosity distance
-
inclination angle
theta_jn
Notes for Reproducibility
The script uses:
-
sampling frequency: 1024 Hz
-
segment duration: 8 s
-
detectors: H1 and L1
-
event reference time: GPS 1382542224.2
-
10 calibration spline nodes per detector
-
dynestywith 1000 live points
Because the sampler is stochastic and computationally expensive, exact wall time and posterior samples may vary slightly depending on hardware, software versions, random seeds, and parallelization settings.
Citation
If you use this code or the accompanying input files, please cite the associated
Files
Files
(36.1 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:c0f4c46a3e2ab8579b7b42960d746eda
|
36.0 kB | Download |
|
md5:df385181f152900aff56b2d0d7fceb48
|
36.1 kB | Download |
|
md5:8fd30e51c5ddf052b4df06cce4f3b026
|
36.0 MB | Download |
|
md5:3170d4d921d2d4f5609b04733dd2d846
|
7.0 kB | Download |