Skip to content

Higher order modes

This MR has two small updates and one bigger added feature.

Small updates:

  1. The FileNotFoundError in gw/utils.py has been changed to an IOError for compatibility with python2.
  2. The gw_data_find function now queries the environment variable LIGO_DATAFIND_SERVER for whichever cluster you're running on and passes that as an argument. This fixed a bug when submitting GraceDB trigger jobs to condor, since it can't automatically determine the server like it does on the head node.

Major update:
I have added support for running with higher order modes. This consisted of adding some new waveform_arguments like pn_amplitude_order and pn_amplitude_phase_order. After consulting with @cjhaster we decided the best defaults would be to keep whatever LAL uses in the lal.CreateDict() command for everything except pn_amplitude_order, which is set to 0 by default. I have added these defaults to each of the binary source functions, so there will be no change in the required user inputs. This gives the user the flexibility to decide which modes they want, instead of using all of the available modes for a given waveform, as was the default previously.
I have also added a function to calculate the lower starting frequency to use in the waveform calculation. In order for the HOM effects to be included at the minimum_frequency you want to use in your likelihood, you need to start your waveform at a lower frequency depending on the number of the amplitude modes you want to use. This function was adapted from the corresponding version in LALSimulation (check the doc string).
I've tested these changes both with a higher order mode waveform and with the standard fast_tutorial to make sure nothing basic had broken.

Merge request reports