gwastro / pycbc

Core package to analyze gravitational-wave data, find signals, and study their parameters. This package was used in the first direct detection of gravitational waves (GW150914), and is used in the ongoing analysis of LIGO/Virgo data.
http://pycbc.org
GNU General Public License v3.0
307 stars 342 forks source link

Time difference between reference frames for LISA inference #4785

Open HumphreyWang opened 3 weeks ago

HumphreyWang commented 3 weeks ago

When using the Gaussian noise model to run LISA inference, a time stamp difference showed in PE results if set ref_frame = SSB (in both injection and inference configs) instead of ref_frame = LISA. It indicates epochs in data and likelihood calculation might be inconsistent for LISA with SSB parameters

Take settings from #4686 but with ref_frame changed only, here's the result: lisa_smbhb_mass_tc

WuShichao commented 3 weeks ago

I just tested it with relbin example https://pycbc.org/pycbc/latest/html/inference/examples/lisa_smbhb_inj_pe.html in SSB frame: image It works here.

HumphreyWang commented 3 weeks ago

@WuShichao You are right, it works for rebin model. BBHx will return an Array instead of a FrequencySeries if a frequency sequence is given. Then my suspicion is waveforms in rebin model do not need to keep epochs aligned (Array doesn't have this attribute), but in the Gaussian model they need to. So potential time inconsistency emerges for the Gaussian model.

I don't know if my description is misleading, maybe @spxiwh or @mj-will can help explain the issue.

mj-will commented 2 weeks ago

@WuShichao to add some more context to this. As it stands, BBHx always returns the waveform in the LISA reference frame if sample_points is not specified, see here. This leads to a discrepancy between the waveform and tc here which results in the waveform being shifted by an incorrect amount.

As @HumphreyWang mentioned, this doesn't apply to the relative binning case because it specifies samples_points.

Whilst we're observing this in BBHx this could occur with any waveform where tc is defined in a different frame to that of the waveform returned directly by the generator. It also therefore likely may not be a problem if the LISA response was being computed by PyCBC.