Searching for precessing compact objects

Repository for the precessing search paper

This project is maintained by icg-gravwaves

Identifying the number of components to use for the precessing bank

In the paper we describe how we identify the optimal number of components in the precessing bank. This is done to balance noise background, and computational load, with desired sensitivity to precessing signals. Even though we later restrict to no more than 3 components, here we demonstrate how we would identify templates that could use 4, or 5, harmonics.

Code base

We used a modified branch of PyCBC to do this step. This is the same branch as used for other stages later on. The code we used is here

https://github.com/spxiwh/pycbc/tree/tha_development_work_rebased_again

We will aim to merge these changes back into the main PyCBC branch, but this was the branch used when creating the banks used in the paper.

Computing the harmonics and adding this information into the template bank

For this step we will need

With these files in place, we run the condor script to run 500 instances of comps_selector.py each doing 1/500th of the full template bank. We do this using condor by just running:

condor_submit condor.sub

Do look over the submit script before running. You will need to point to the appropriate bank file. You may also need to change settings based on your cluster, and if running on a SLURM cluster, this would need some modification.

Once this completes we do:

bash cat_all.sh

to combine the outputs into one file. It is important to preserve order in this step, as line 100 in the combined output must correspond to template 100 in the HDF file.

Finally we run

python extract_num_harms.py

To add the information to the precessing bank. The path to the precessing bank, and the output of the step above, are hardcoded in here, so may need changing.