From 196ce4a9ce33927c0550456e20f6f0ee59edf8ba Mon Sep 17 00:00:00 2001
From: Yifan Wang <yifan.wang@aei.mpg.de>
Date: Mon, 6 Sep 2021 02:17:05 +0200
Subject: [PATCH] correct tphm length estimator

---
 waveform/wrapper_tphm_parity/parity_TPHM.py | 27 ++++++++++++++---
 waveform/wrapper_tphm_parity/setup.py       | 33 +++++++++++++++++++++
 2 files changed, 56 insertions(+), 4 deletions(-)

diff --git a/waveform/wrapper_tphm_parity/parity_TPHM.py b/waveform/wrapper_tphm_parity/parity_TPHM.py
index 5b78d89..54223f1 100644
--- a/waveform/wrapper_tphm_parity/parity_TPHM.py
+++ b/waveform/wrapper_tphm_parity/parity_TPHM.py
@@ -1,4 +1,23 @@
-Unstaged changes after reset:
-D	IMRPhenomTPHMParity/parity_TPHM.py
-M	waveform/wrapper_mpv_waveform/mpvwaveform.py
-M	waveform/wrapper_tphm_parity/parity_TPHM.py
+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="IMRPhenomTPHM", **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 imrphenomtphm_length_in_time(**kwargs):
+	from pycbc.waveform import waveform
+    """Estimates the duration of IMRPhenom waveforms that include higher modes.
+    """
+    # Default maximum node number for IMRPhenomHM is 4
+    # However, the maximum mode number for IMRPhenomTPHM is 5
+    # The relevant lower order approximant here is IMRPhenomD
+    return waveform.get_hm_length_in_time("IMRPhenomD", 5, **kwargs)
\ No newline at end of file
diff --git a/waveform/wrapper_tphm_parity/setup.py b/waveform/wrapper_tphm_parity/setup.py
index e69de29..5de7d4b 100644
--- a/waveform/wrapper_tphm_parity/setup.py
+++ b/waveform/wrapper_tphm_parity/setup.py
@@ -0,0 +1,33 @@
+"""
+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-TPHM',
+    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_TPHM'],
+    entry_points = {"pycbc.waveform.fd":"IMRPhenomTPHMParity=parity_TPHM:gen",
+                    "pycbc.waveform.length":"IMRPhenomTPHM=parity_TPHM:imrphenomtphm_length_in_time"},
+    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)',
+    ],
+)
-- 
GitLab