Integrate P_Astro model into SPIIR pipeline
All search pipelines are required to produce their own internal P_Astro method - a source classification method that makes a prediction about the probability of a trigger being one of either Binary Black Hole (BBH), Binary Neutron Star (BNS), Neutron Star - Black Hole (NSBH), or terrestrial noise.
Currently, the aim is to refactor https://git.ligo.org/lscsoft/p-astro/ with a few changes. In particular, our first model will implement a version of PyCBC's method for relative astrophysical source classification (https://arxiv.org/abs/2203.10080) to replace the following make_weights_from_hardcuts
function here: https://git.ligo.org/lscsoft/p-astro/-/blob/master/ligo/p_astro_computation.py#L103. Then, a prediction model for Astro vs. Terra will be fit by examining the recovered triggers from simulation studies across BBH, BNS, and NSBH injections, and comparing the observed counts of recovered real signals from noise.
Additionally, this code has a Python3 dependency. In order to incorporate this directly with the SPIIR pipeline, either SPIIR will have to upgrade to Python3, or we will have to instantiate a new Python3 process running separately to the Python2.7 process per node, or alternatively use some form of separate message passing/pubsub system such as Redis or a database. Note that the latter approach will need to consider how to handle distributed communication between nodes.
These methods may change depending on the progress of SPIIR's research and development.
At present a work-in-progress repository is located here: https://github.com/tanghyd/spiir-pastro
This is a required feature for O4 - and ideally should be tested during an MDC well before our production system is finalised.