Skip to content

Change to LALInference ROQ to avoid Mchirp biases

There has been problems with LALInference_ROQ runs recovering biased Mchirp posteriors. This was especially problematic for lowMass analyses.

I have found the culprit for this behaviour, it's the way the lalinference_compute_roq_weights.py script gets its deltaF variable. Previously this was done through deltaF = fseries[1] - fseries[0], but when using a non-power-of-two seglen, the way at which the fseries were written to file meant that the spacing was not equal across the bandwidth and also not equal to its definition of deltaF = 1/seglen. This discrepancy meant that when defining the bandwidth to use, through options like data[fLow_index:fHigh_index] the indices fLow_index and fHigh_index were sometimes one number too high (or low).

This MR solves this inconsistency by strictly calling deltaF = 1./options.seglen.

As evidence for this being the solutoin I'll present two LALInference analyses of exactly the same BNS injection, analysed before the fix and after the fix. Apart from the fix introduced in this MR, the two analyses uses the exact same codebase.

This MR also includes a removal of the enforcing of srate < 8192, a limitation which can cause similar problems due to truncation of the data.

Merge request reports