def legacy_approximant_name(apx): """Convert the old style xml approximant name to a name and phase_order. Alex: I hate this function. Please delet this when we use Collin's new tables. """ apx = str(apx) try: order = sim.GetOrderFromString(apx) except: print("Warning: Could not read phase order from string, using default") order = -1 name = sim.GetStringFromApproximant(sim.GetApproximantFromString(apx)) return name, order
def get_approximant_and_orders_from_string(s): """Determine the approximant, amplitude order, and phase order for a string of the form "TaylorT4threePointFivePN". In this example, the waveform is "TaylorT4" and the phase order is 7 (twice 3.5). If the input contains the substring "restricted" or "Restricted", then the amplitude order is taken to be 0. Otherwise, the amplitude order is the same as the phase order.""" # SWIG-wrapped functions apparently do not understand Unicode, but # often the input argument will come from a Unicode XML file. s = str(s) approximant = lalsimulation.GetApproximantFromString(s) try: phase_order = lalsimulation.GetOrderFromString(s) except RuntimeError: phase_order = -1 if 'restricted' in s or 'Restricted' in s: amplitude_order = 0 else: amplitude_order = phase_order return approximant, amplitude_order, phase_order