Skip to content

Adding support for filtering with precessing/HM templates

Stefano Schmidt requested to merge precession_hm into master

Overview

In this merge request, we make all the required changes to the pipeline in order to support matched filtering with precessing and/or HM templates. In doing so, we do not change the behavior of the pipeline for the non precessing case. We follow 1709.09181 for the definition of the search statistics.

The changes happened in different places:

  • cbc_template_fir.py and templates.py: added new lal precessing approximants, added support for reading in-plane spins and inclination from the sngl_inspiral table and added support for template generation in the precessing/HM case
  • gstlal_inspiral_plotsummary: added some plots showing the injection recovery as a function of some interesting quantities (namely chi_p and inclination).
  • gstlal_inspiral_injection_template_match: the former method to match injections based on voronoi cells crashed frequently during our tests. We replaced it with a more robust KDTree

The chisq computation has not been changed, since it doesn't appear to harm the search sensitivity. However, from a theory perspective a new chisq expression should be introduced. This raises the issue of why the "non-precessing" chisq works so well, even for the precessing/HM case. This is still under investigation and requires further studies.

Validation

A small scale run has been performed to check the robustness of the new method, targeting a small precessing region with total mass in [24, 25] M_sun and q in [10, 10.5]. To avoid SNR loss due to the bank, the injections were done matching exactly the templates. More details can be found here and the summary pages are linked here.

The new SNR method shows excellent SNR recovery, as shown in the picture below, showing recovered SNR vs injected SNR:

SNR_recovery_zoom.png

Such precessing search shows a sensitivity (VT comparison) improvements of a factor of 3/5 with respect to a non-precessing search (with the same injection set).

VT_comparison_H1V1L1.png

Comparison with master

I run a comparison with the master branch for a small non-spinning BNS search (bank and mass model here), injections are home made). Results for both runs are shown here.

SNR & Chisq comparison

Below, we report the results of the differences in recovered SNR, chisq and trigger time for the injection in the two runs.

diff_chisq.png

diff_end_time.png

diff_rec_snr.png

The results of the two runs are consistent with each other, with occasional injections recovered with a large snr difference (|ΔSNR| > 1). The large discrepancies in recovered SNR seem to be clustered at high SNRs (SNR>100): maybe this can be explained by the presence of loud glitches?

BG vs FG plot

Background and foreground are plotted together for the two branches below.

snr_chisq_plots.png

The two plots look consistent, with some differences in the background (especially at high SNR). Are the discrepancies in the background concerning?

SVD bank

I also checked the output of `svd_bank`: the svd reduced templates (and the reconstructed templates) agree up to numerical precision among the two branches.

Edited by Stefano Schmidt

Merge request reports