Address segfaults in itacac when checkerboarding + misc
Main item this PR tackles is addressing #82 (closed), these segfaults and other issues cropping up in the online analysis from itacac.
When I set GStreamer in debug mode (GST_DEBUG=3
):
0:00:29.416929942 2304570 0x122ad80 ERROR lal_itacac gstlal_itacac.c:406:gstlal_itacac_pad_set_property:<gstlalitacac0:sink_0> vector length (669) does not match number of templates (335)
...
0:00:33.378427198 2304570 0x122ad80 ERROR lal_itacac gstlal_itacac.c:406:gstlal_itacac_pad_set_property:<gstlalitacac6:sink_2> vector length (200) does not match number of templates (100)
Looking at where this error gets raised, it comes from setting the sigmasq
property in the itacac element. It's off by a factor of two(-ish) because of the checkerboarding scheme which didn't take into account adjusting sigmasq
. Unsure why this wasn't an issue before (maybe it was?) but also the various correlation properties stored within the SVD banks now correctly get adjusted when the checkerboarding is done.
Two other things encountered when trying to resolve this problem:
- Fix issue in
gstlal_inspiral_svd_checkerboard
with output files whenout_path
didn't have a backslash. This now usesos.path.join
to better handle this case. - Add in the
bankcorrelation_matrix
property initacac
when being invoked fromgstlal_inspiral
. Somehow this got dropped during the stream API changes so this adds this back in.
Closes #82 (closed).
Edited by Patrick Godwin