diff --git a/esigmapy/__init__.py b/esigmapy/__init__.py index 55912df..183475f 100644 --- a/esigmapy/__init__.py +++ b/esigmapy/__init__.py @@ -17,4 +17,25 @@ def get_version_information(): print("No version information file '.version' found") +# pycbc wrapper +import inspect +_params = inspect.signature(get_imr_esigma_waveform).parameters.keys() +def pycbc_esigma(**params): + from pycbc.waveform.waveform import parse_mode_array + + # Pass all parameters the model suppports + pt = {p: params[p] for p in _params if p in params} + pt['f_ref'] = pt['f_lower'] if pt['f_ref'] == 0 else pt['f_ref'] + + gen_wav = get_imr_esigma_waveform + if 'skip_merger' in params: + gen_wav = get_inspiral_esigma_waveform + + modes = params.pop('mode_array', [(2,2), (2,-2)]) + modes = parse_mode_array({'mode_array':modes})['mode_array'] + + return gen_wav(pt.pop('mass1'), pt.pop('mass2'), + pt.pop('f_lower'), pt.pop('delta_t'), + **pt, modes_to_use=modes) + __version__ = get_version_information() diff --git a/setup.py b/setup.py index b93f8e5..dbf3fdd 100644 --- a/setup.py +++ b/setup.py @@ -109,6 +109,7 @@ def get_long_description(): author_email="prayush.kumar@gmail.com", packages=find_packages(), package_dir={NAME: NAME}, + entry_points = {"pycbc.waveform.td":"esigma = esigmapy:pycbc_esigma"}, package_data={}, install_requires=[ # 'lalsuite>=6.63',