This is the code behind 'Waveform errors for binary black hole populations in next-generation gravitational wave detectors'.
We use a Fisher matrix approach along with thhe Cutler & Vallisneri (2007) formalism to understand the distribution of waveform calibration biases in 3G gravitational wave detectors over an astrophysical population of binary black holes (BBHs).
The BBH populaiton is inspired by the TRUNCATED model from R. Abbott (LIGO Lab., Caltech) et al. model, with a smoothing factor at the low-mass end.
- Run src/sample_smooth_powerlaw_pop.py to generate a population of BBHs. e.g.
python src/sample_smooth_powerlaw_pop.py -N 100000 -o "../data/smooth_powerlaw_pop.npz" --alpha -3.5 --mmin 5.0 --mmin_lim 3.0 --mmax 60.0 --chi_alpha 2.0 --chi_beta 7.0
- To compute the Fisher matrix errors, waveform derivatives, Cutler-Vallisneri biases, etc. using
GWBENCH, run:
python sbatch_scripts/python_hybrid_powerlaw_3G.py
The script runs the src/compute_hybrid_fisher.py in parallel across a range of hybr parameters. You can also call the source script manually, e.g. to compute errors using IMRPhenomXAS and IMRPhenomD for a 3G detector network in parallel using MPI,
mpirun -np 48 python src/compute_hybrid_fisher.py -N 100000 -i "../data/smooth_powerlaw_pop.npz" -o "../data/powerlaw_smooth_hybrid_3G_production/hybr_0.0/" --hybr 0.0 --offset 0 --approx1 "IMRPhenomXAS" --approx2 "IMRPhenomD" --net_key "3G"
The --offset flag is used to numerically offset the index of the simulated binaries, which is helpful to split the population into batches. To compute errors using hybrid waveforms instead, use the hybr parameter:
mpirun -np 48 python src/compute_hybrid_fisher.py -N 100000 -i "../data/smooth_powerlaw_pop.npz" -o "../data/powerlaw_smooth_hybrid_3G_production/hybr_0.0/" --hybr 0.9 --offset 0 --approx1 "IMRPhenomXAS" --approx2 "IMRPhenomD" --net_key "3G"
- Finally, to combine all the binaries into batches of 20k each, and save the relevant biases and errors, run:
python sbatch_scripts/python_postprocess_hybrid_powerlaw_3G.py
This script deploys src/combine_fisher_binaries.py to combine the output files produced by GWBENCH into a csv file. This script also propagates biases and errors to a few astrophysically relevant parameters such as source-frame mass, redshift, mass-ratio, etc. To manually perform such a calculation, you may run
python src/combine_fisher_binaries.py -i "../data/powerlaw_smooth_hybrid_3G_production" -o "../output/powerlaw_smooth_hybrid_3G_production" -N 100000 --offset 0
The output files used for publication can be found in output/powerlaw_smooth_hybrid_3G_production/.
Overall distribution of biases across the population between IMRPhenomXAS and ``IMRPhenomD:

Behavior of bias distribution for various hybrid waveform models:

Fraction of events with 