From daec275abbdba82c196ae618a253536792917f05 Mon Sep 17 00:00:00 2001
From: Yifan Wang <yifan.wang@aei.mpg.de>
Date: Wed, 8 Sep 2021 22:34:31 +0200
Subject: [PATCH] add another parametrization to solve the degeneracy issue

---
 IMRPDT_waveform/IMRPhenomDNRTparity.py        | 22 -------------
 NRSur7dq4Parity/parity_NR.py                  | 19 -----------
 NRSur7dq4Parity/setup.py                      | 32 -------------------
 {testwaveform => test}/README                 |  0
 {testwaveform => test}/setup.py               |  0
 {testwaveform => test}/waveform.py            |  0
 waveform/__init__.py                          |  1 -
 waveform/{ => addme_parityamu}/parity_XPHM.py |  0
 .../setup.py                                  |  6 ++--
 .../wrapper_amudistance_waveform/waveform.py  | 16 ++++++++++
 10 files changed, 19 insertions(+), 77 deletions(-)
 delete mode 100644 IMRPDT_waveform/IMRPhenomDNRTparity.py
 delete mode 100644 NRSur7dq4Parity/parity_NR.py
 delete mode 100644 NRSur7dq4Parity/setup.py
 rename {testwaveform => test}/README (100%)
 rename {testwaveform => test}/setup.py (100%)
 rename {testwaveform => test}/waveform.py (100%)
 delete mode 100644 waveform/__init__.py
 rename waveform/{ => addme_parityamu}/parity_XPHM.py (100%)
 rename waveform/{ => wrapper_amudistance_waveform}/setup.py (86%)
 create mode 100644 waveform/wrapper_amudistance_waveform/waveform.py

diff --git a/IMRPDT_waveform/IMRPhenomDNRTparity.py b/IMRPDT_waveform/IMRPhenomDNRTparity.py
deleted file mode 100644
index 4e7e203..0000000
--- a/IMRPDT_waveform/IMRPhenomDNRTparity.py
+++ /dev/null
@@ -1,22 +0,0 @@
-def gen(**kwds):
-    from pycbc.waveform import get_fd_waveform
-    import lal
-
-    if 'approximant' in kwds:
-        kwds.pop("approximant")
-    hp, hc = get_fd_waveform(approximant="IMRPhenomD_NRTidal", **kwds)
-
-    temp =  kwds['parity_amu'] / 1e9 / lal.QE_SI * lal.H_SI * lal.PI * lal.PI / lal.H0_SI
-
-    hp_parity = hp + hc * temp * hp.sample_frequencies **2
-    hc_parity = hc - hp * temp * hp.sample_frequencies **2
-
-    return hp_parity, hc_parity
-
-
-#pycbc.waveform.add_custom_waveform('IMRPhenomParity', IMRPhenomParity, 'frequency', force=True)
-
-def add_me(**kwds):
-    kwds['cpu_fd']['IMRPhenomD_NRTidal_Parity'] = gen
-    kwds['filter_time_lengths']['IMRPhenomD_NRTidal_Parity'] = kwds['filter_time_lengths']['IMRPhenomD']
-
diff --git a/NRSur7dq4Parity/parity_NR.py b/NRSur7dq4Parity/parity_NR.py
deleted file mode 100644
index 52f1c9a..0000000
--- a/NRSur7dq4Parity/parity_NR.py
+++ /dev/null
@@ -1,19 +0,0 @@
-def gen(**kwds):
-    from pycbc.waveform import get_fd_waveform
-    import lal
-
-    if 'approximant' in kwds:
-        kwds.pop("approximant")
-    hp, hc = get_fd_waveform(approximant="NRSur7dq4", **kwds)
-
-    temp =  kwds['parity_amu'] / 1e9 / lal.QE_SI * lal.H_SI * lal.PI * lal.PI / lal.H0_SI
-
-    hp_parity = hp + hc * temp * hp.sample_frequencies **2
-    hc_parity = hc - hp * temp * hp.sample_frequencies **2
-
-    return hp_parity, hc_parity
-
-def add_me(**kwds):
-    kwds['cpu_fd']['NRSur7dq4Parity'] = gen
-#    kwds['filter_time_lengths']['IMRPhenomPv2Parity'] = kwds['filter_time_lengths']['IMRPhenomPv2']
-
diff --git a/NRSur7dq4Parity/setup.py b/NRSur7dq4Parity/setup.py
deleted file mode 100644
index b800501..0000000
--- a/NRSur7dq4Parity/setup.py
+++ /dev/null
@@ -1,32 +0,0 @@
-"""
-setup.py file for testing birefringence pycbc waveform plugin package
-"""
-
-from setuptools import Extension, setup, Command
-from setuptools import find_packages
-
-VERSION = '0.0.dev0'
-
-setup (
-    name = 'pycbc-birefringence-NR',
-    version = VERSION,
-    description = 'An waveform plugin for PyCBC',
-    author = 'Yifan Wang',
-    author_email = 'yifan.wang@aei.mpg.de',
-    url = 'http://www.pycbc.org/',
-    #download_url = 'https://github.com/gwastro/revchirp/tarball/v%s' % VERSION,
-    keywords = ['pycbc', 'signal processing', 'gravitational waves'],
-    py_modules = ['parity_NR'],
-    entry_points = {"pycbc.waveform.fd":"NRSur7dq4Parity=parity_NR:gen"},
-    classifiers=[
-        'Programming Language :: Python',
-        'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3.6',
-        'Intended Audience :: Science/Research',
-        'Natural Language :: English',
-        'Topic :: Scientific/Engineering',
-        'Topic :: Scientific/Engineering :: Astronomy',
-        'Topic :: Scientific/Engineering :: Physics',
-        'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
-    ],
-)
diff --git a/testwaveform/README b/test/README
similarity index 100%
rename from testwaveform/README
rename to test/README
diff --git a/testwaveform/setup.py b/test/setup.py
similarity index 100%
rename from testwaveform/setup.py
rename to test/setup.py
diff --git a/testwaveform/waveform.py b/test/waveform.py
similarity index 100%
rename from testwaveform/waveform.py
rename to test/waveform.py
diff --git a/waveform/__init__.py b/waveform/__init__.py
deleted file mode 100644
index 3943644..0000000
--- a/waveform/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from .IMRPhenomParity import *
diff --git a/waveform/parity_XPHM.py b/waveform/addme_parityamu/parity_XPHM.py
similarity index 100%
rename from waveform/parity_XPHM.py
rename to waveform/addme_parityamu/parity_XPHM.py
diff --git a/waveform/setup.py b/waveform/wrapper_amudistance_waveform/setup.py
similarity index 86%
rename from waveform/setup.py
rename to waveform/wrapper_amudistance_waveform/setup.py
index 9156c86..5206a94 100644
--- a/waveform/setup.py
+++ b/waveform/wrapper_amudistance_waveform/setup.py
@@ -8,7 +8,7 @@ from setuptools import find_packages
 VERSION = '0.0.dev0'
 
 setup (
-    name = 'pycbc-birefringence-XPHM',
+    name = 'pycbc-birefringence-amudistance',
     version = VERSION,
     description = 'A waveform plugin for PyCBC',
     author = 'Yifan Wang',
@@ -16,8 +16,8 @@ setup (
     url = 'http://www.pycbc.org/',
     #download_url = 'https://github.com/gwastro/revchirp/tarball/v%s' % VERSION,
     keywords = ['pycbc', 'signal processing', 'gravitational waves'],
-    py_modules = ['parity_XPHM'],
-    entry_points = {"pycbc.waveform.fd":"IMRPhenomXPHMParity=parity_XPHM:gen"},
+    py_modules = ['amudistance'],
+    entry_points = {"pycbc.waveform.fd":"amudistance=waveform:gen"},
     classifiers=[
         'Programming Language :: Python',
         'Programming Language :: Python :: 2.7',
diff --git a/waveform/wrapper_amudistance_waveform/waveform.py b/waveform/wrapper_amudistance_waveform/waveform.py
new file mode 100644
index 0000000..084b43e
--- /dev/null
+++ b/waveform/wrapper_amudistance_waveform/waveform.py
@@ -0,0 +1,16 @@
+def gen(**kwds):
+    from pycbc.waveform import get_fd_waveform
+    import lal
+    #print(kwds)
+
+    if 'approximant' in kwds:
+        kwds.pop("approximant")
+    if kwds['baseapprox'] is None:
+        raise ValueError("A base waveform approximant is required.")
+
+    hp, hc = get_fd_waveform(approximant=kwds['baseapprox'], **kwds)
+    temp =  kwds['parity_amudistance'] * kwds['distance'] / 1e9 / lal.QE_SI * lal.H_SI * lal.PI * lal.PI / lal.H0_SI       
+    hp_parity = hp + hc * temp * hp.sample_frequencies **2
+    hc_parity = hc - hp * temp * hp.sample_frequencies **2
+
+    return hp_parity, hc_parity
-- 
GitLab