From e11ebac19b2014c45cd9c58cb2f5ba5e284f58a6 Mon Sep 17 00:00:00 2001
From: Gregory Ashton <gregory.ashton@ligo.org>
Date: Fri, 22 Jun 2018 07:52:49 +1000
Subject: [PATCH] Revert "Track changes to inject_signal in a378ba9 to the
 examples"

This reverts commit 2ab4bddd03fbfaff7ef266f161724c751b5db32c.
---
 examples/injection_examples/basic_tutorial.py     | 12 ++++--------
 .../basic_tutorial_dist_time_phase_marg.py        |  3 ++-
 .../basic_tutorial_time_phase_marg.py             |  3 ++-
 .../change_sampled_parameters.py                  | 12 ++++--------
 .../create_your_own_source_model.py               |  3 ++-
 .../create_your_own_time_domain_source_model.py   | 15 +++++++--------
 .../how_to_specify_the_prior.py                   |  3 ++-
 .../injection_examples/marginalized_likelihood.py | 12 ++++--------
 .../injection_examples/sine_gaussian_example.py   |  3 ++-
 test/detector_tests.py                            |  6 +++---
 test/make_standard_data.py                        |  3 ++-
 11 files changed, 34 insertions(+), 41 deletions(-)

diff --git a/examples/injection_examples/basic_tutorial.py b/examples/injection_examples/basic_tutorial.py
index cb1b81c7b..c3548b4d4 100644
--- a/examples/injection_examples/basic_tutorial.py
+++ b/examples/injection_examples/basic_tutorial.py
@@ -41,17 +41,13 @@ waveform_generator = tupak.WaveformGenerator(time_duration=time_duration,
                                              frequency_domain_source_model=tupak.gw.source.lal_binary_black_hole,
                                              parameters=injection_parameters,
                                              waveform_arguments=waveform_arguments)
+hf_signal = waveform_generator.frequency_domain_strain()
 
 # Set up interferometers.  In this case we'll use three interferometers (LIGO-Hanford (H1), LIGO-Livingston (L1),
 # and Virgo (V1)).  These default to their design sensitivity
-IFOs = []
-for name in ['H1', 'L1', 'V1']:
-    IFOs.append(
-        tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-            name, waveform_generator=waveform_generator,
-            injection_parameters=injection_parameters,
-            time_duration=time_duration,
-            sampling_frequency=sampling_frequency, outdir=outdir))
+IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
+    name, injection_polarizations=hf_signal, injection_parameters=injection_parameters, time_duration=time_duration,
+    sampling_frequency=sampling_frequency, outdir=outdir) for name in ['H1', 'L1']]
 
 # Set up prior, which is a dictionary
 # By default we will sample all terms in the signal models.  However, this will take a long time for the calculation,
diff --git a/examples/injection_examples/basic_tutorial_dist_time_phase_marg.py b/examples/injection_examples/basic_tutorial_dist_time_phase_marg.py
index 3a9770f03..2d90386e1 100644
--- a/examples/injection_examples/basic_tutorial_dist_time_phase_marg.py
+++ b/examples/injection_examples/basic_tutorial_dist_time_phase_marg.py
@@ -39,11 +39,12 @@ waveform_generator = tupak.WaveformGenerator(time_duration=time_duration,
                                              frequency_domain_source_model=tupak.gw.source.lal_binary_black_hole,
                                              parameters=injection_parameters,
                                              waveform_arguments=waveform_arguments)
+hf_signal = waveform_generator.frequency_domain_strain()
 
 # Set up interferometers.  In this case we'll use three interferometers (LIGO-Hanford (H1), LIGO-Livingston (L1),
 # and Virgo (V1)).  These default to their design sensitivity
 IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-    name, waveform_generator=waveform_generator, injection_parameters=injection_parameters, time_duration=time_duration,
+    name, injection_polarizations=hf_signal, injection_parameters=injection_parameters, time_duration=time_duration,
     sampling_frequency=sampling_frequency, outdir=outdir) for name in ['H1', 'L1']]
 
 # Set up prior, which is a dictionary
diff --git a/examples/injection_examples/basic_tutorial_time_phase_marg.py b/examples/injection_examples/basic_tutorial_time_phase_marg.py
index 370539586..3f7525db6 100644
--- a/examples/injection_examples/basic_tutorial_time_phase_marg.py
+++ b/examples/injection_examples/basic_tutorial_time_phase_marg.py
@@ -38,11 +38,12 @@ waveform_generator = tupak.WaveformGenerator(time_duration=time_duration,
                                              frequency_domain_source_model=tupak.gw.source.lal_binary_black_hole,
                                              parameters=injection_parameters,
                                              waveform_arguments=waveform_arguments)
+hf_signal = waveform_generator.frequency_domain_strain()
 
 # Set up interferometers.  In this case we'll use three interferometers (LIGO-Hanford (H1), LIGO-Livingston (L1),
 # and Virgo (V1)).  These default to their design sensitivity
 IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-    name, waveform_generator=waveform_generator, injection_parameters=injection_parameters, time_duration=time_duration,
+    name, injection_polarizations=hf_signal, injection_parameters=injection_parameters, time_duration=time_duration,
     sampling_frequency=sampling_frequency, outdir=outdir) for name in ['H1', 'L1']]
 
 # Set up prior, which is a dictionary
diff --git a/examples/injection_examples/change_sampled_parameters.py b/examples/injection_examples/change_sampled_parameters.py
index 8114c4734..d5766e547 100644
--- a/examples/injection_examples/change_sampled_parameters.py
+++ b/examples/injection_examples/change_sampled_parameters.py
@@ -32,16 +32,12 @@ waveform_generator = tupak.gw.waveform_generator.WaveformGenerator(
     parameter_conversion=tupak.gw.conversion.convert_to_lal_binary_black_hole_parameters,
     non_standard_sampling_parameter_keys=['chirp_mass', 'mass_ratio'],
     parameters=injection_parameters, waveform_arguments=waveform_arguments)
+hf_signal = waveform_generator.frequency_domain_strain()
 
 # Set up interferometers.
-IFOs = []
-for name in ['H1', 'L1', 'V1']:
-    IFOs.append(
-        tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-            name, waveform_generator=waveform_generator,
-            injection_parameters=injection_parameters,
-            time_duration=time_duration,
-            sampling_frequency=sampling_frequency, outdir=outdir))
+IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
+    name, injection_polarizations=hf_signal, injection_parameters=injection_parameters, time_duration=time_duration,
+    sampling_frequency=sampling_frequency, outdir=outdir) for name in ['H1', 'L1', 'V1']]
 
 # Set up prior
 priors = tupak.gw.prior.BBHPriorSet()
diff --git a/examples/injection_examples/create_your_own_source_model.py b/examples/injection_examples/create_your_own_source_model.py
index 10dd2b0a3..a59569504 100644
--- a/examples/injection_examples/create_your_own_source_model.py
+++ b/examples/injection_examples/create_your_own_source_model.py
@@ -29,10 +29,11 @@ waveform_generator = tupak.gw.waveform_generator.WaveformGenerator(time_duration
                                                                    sampling_frequency=sampling_frequency,
                                                                    frequency_domain_source_model=sine_gaussian,
                                                                    parameters=injection_parameters)
+hf_signal = waveform_generator.frequency_domain_strain()
 
 # Set up interferometers.
 IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-    name, waveform_generator=waveform_generator,
+    name, injection_polarizations=hf_signal,
     injection_parameters=injection_parameters, time_duration=time_duration,
     sampling_frequency=sampling_frequency, outdir=outdir)
     for name in ['H1', 'L1', 'V1']]
diff --git a/examples/injection_examples/create_your_own_time_domain_source_model.py b/examples/injection_examples/create_your_own_time_domain_source_model.py
index 8c4f57aff..f89bb0f77 100644
--- a/examples/injection_examples/create_your_own_time_domain_source_model.py
+++ b/examples/injection_examples/create_your_own_time_domain_source_model.py
@@ -36,6 +36,7 @@ waveform = tupak.gw.waveform_generator.WaveformGenerator(time_duration=time_dura
                                                          time_domain_source_model=time_domain_damped_sinusoid,
                                                          parameters=injection_parameters)
 
+hf_signal = waveform.frequency_domain_strain()
 #note we could plot the time domain signal with the following code
 # import matplotlib.pyplot as plt
 # plt.plot(waveform.time_array, waveform.time_domain_strain()['plus'])
@@ -46,14 +47,12 @@ waveform = tupak.gw.waveform_generator.WaveformGenerator(time_duration=time_dura
 
 
 # inject the signal into three interferometers
-IFOs = []
-for name in ['H1', 'L1', 'V1']:
-    IFOs.append(
-        tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-            name, waveform_generator=waveform,
-            injection_parameters=injection_parameters,
-            time_duration=time_duration,
-            sampling_frequency=sampling_frequency, outdir=outdir))
+IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
+        name, injection_polarizations=hf_signal,
+        injection_parameters=injection_parameters, time_duration=time_duration,
+        sampling_frequency=sampling_frequency, outdir=outdir)
+        for name in ['H1', 'L1']]
+
 
 #  create the priors
 prior = injection_parameters.copy()
diff --git a/examples/injection_examples/how_to_specify_the_prior.py b/examples/injection_examples/how_to_specify_the_prior.py
index 10ba8d0c1..d33fc7534 100644
--- a/examples/injection_examples/how_to_specify_the_prior.py
+++ b/examples/injection_examples/how_to_specify_the_prior.py
@@ -28,10 +28,11 @@ waveform_generator = tupak.WaveformGenerator(time_duration=time_duration,
                                              frequency_domain_source_model=tupak.gw.source.lal_binary_black_hole,
                                              parameters=injection_parameters,
                                              waveform_arguments=waveform_arguments)
+hf_signal = waveform_generator.frequency_domain_strain()
 
 # Set up interferometers.
 IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-    name, waveform_generator=waveform_generator, injection_parameters=injection_parameters, time_duration=time_duration,
+    name, injection_polarizations=hf_signal, injection_parameters=injection_parameters, time_duration=time_duration,
     sampling_frequency=sampling_frequency, outdir=outdir) for name in ['H1', 'L1', 'V1']]
 
 # Set up prior
diff --git a/examples/injection_examples/marginalized_likelihood.py b/examples/injection_examples/marginalized_likelihood.py
index 8d1e0ac0d..6ada10098 100644
--- a/examples/injection_examples/marginalized_likelihood.py
+++ b/examples/injection_examples/marginalized_likelihood.py
@@ -26,16 +26,12 @@ waveform_generator = tupak.WaveformGenerator(
     time_duration=time_duration, sampling_frequency=sampling_frequency,
     frequency_domain_source_model=tupak.gw.source.lal_binary_black_hole, parameters=injection_parameters,
     waveform_arguments=waveform_arguments)
+hf_signal = waveform_generator.frequency_domain_strain()
 
 # Set up interferometers.
-IFOs = []
-for name in ['H1', 'L1', 'V1']:
-    IFOs.append(
-        tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-            name, waveform_generator=waveform_generator,
-            injection_parameters=injection_parameters,
-            time_duration=time_duration,
-            sampling_frequency=sampling_frequency, outdir=outdir))
+IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
+    name, injection_polarizations=hf_signal, injection_parameters=injection_parameters, time_duration=time_duration,
+    sampling_frequency=sampling_frequency, outdir=outdir) for name in ['H1', 'L1', 'V1']]
 
 # Set up prior
 priors = tupak.gw.prior.BBHPriorSet()
diff --git a/examples/injection_examples/sine_gaussian_example.py b/examples/injection_examples/sine_gaussian_example.py
index e06536374..adc1e9bbb 100644
--- a/examples/injection_examples/sine_gaussian_example.py
+++ b/examples/injection_examples/sine_gaussian_example.py
@@ -29,11 +29,12 @@ waveform_generator = tupak.gw.waveform_generator.WaveformGenerator(time_duration
                                                                    sampling_frequency=sampling_frequency,
                                                                    frequency_domain_source_model=tupak.gw.source.sinegaussian,
                                                                    parameters=injection_parameters)
+hf_signal = waveform_generator.frequency_domain_strain()
 
 # Set up interferometers.  In this case we'll use three interferometers (LIGO-Hanford (H1), LIGO-Livingston (L1),
 # and Virgo (V1)).  These default to their design sensitivity
 IFOs = [tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(
-    name, waveform_generator=waveform_generator, injection_parameters=injection_parameters, time_duration=time_duration,
+    name, injection_polarizations=hf_signal, injection_parameters=injection_parameters, time_duration=time_duration,
     sampling_frequency=sampling_frequency, outdir=outdir) for name in ['H1', 'L1', 'V1']]
 
 # Set up prior, which is a dictionary
diff --git a/test/detector_tests.py b/test/detector_tests.py
index 9e2c5838d..e241c5422 100644
--- a/test/detector_tests.py
+++ b/test/detector_tests.py
@@ -247,9 +247,9 @@ class TestDetector(unittest.TestCase):
             parameters=dict(ra=0, dec=0, geocent_time=0, psi=0))
         self.assertTrue(np.array_equal(response, (plus+cross)*self.ifo.frequency_mask*np.exp(-0j)))
 
-    #def test_inject_signal_no_waveform_generator(self):
-    #    with self.assertRaises(ValueError):
-    #        self.ifo.inject_signal(waveform_generator=None, parameters=None)
+    def test_inject_signal_no_waveform_polarizations(self):
+        with self.assertRaises(ValueError):
+            self.ifo.inject_signal(waveform_polarizations=None, parameters=None)
 
     def test_unit_vector_along_arm_default(self):
         with self.assertRaises(ValueError):
diff --git a/test/make_standard_data.py b/test/make_standard_data.py
index 59df56fde..cc9731bf4 100644
--- a/test/make_standard_data.py
+++ b/test/make_standard_data.py
@@ -36,8 +36,9 @@ waveform_generator = WaveformGenerator(time_duration=time_duration, sampling_fre
                                        frequency_domain_source_model=tupak.gw.source.lal_binary_black_hole,
                                        parameters=simulation_parameters)
 
+signal = waveform_generator.frequency_domain_strain()
 
-IFO = tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(name='H1', waveform_generator=waveform_generator,
+IFO = tupak.gw.detector.get_interferometer_with_fake_noise_and_injection(name='H1', injection_polarizations=signal,
                                                                          injection_parameters=simulation_parameters,
                                                                          time_duration=time_duration, plot=False,
                                                                          sampling_frequency=sampling_frequency)
-- 
GitLab