Verified Commit 5440e3ba authored by Daniel Williams's avatar Daniel Williams
Browse files

More tests to make sure nothing gets broken as I add the ringdown infrastructure.

parent ba0d18b6
Loading
Loading
Loading
Loading
+8 −12
Original line number Diff line number Diff line
@@ -245,7 +245,7 @@ class MDCSet():
        i = 0
        #sim_burst_table = lalburst.SimBurstTableFromLIGOLw(filename, start, stop)

        xml = glue.ligolw.utils.load_filename("test_simbursttable.xml.gz",
        xml = glue.ligolw.utils.load_filename(filename, 
                                              contenthandler = glue.ligolw.ligolw.LIGOLWContentHandler,
                                              verbose = True)
        sim_burst_table = glue.ligolw.table.get_table(xml, self.table_type.tableName)
@@ -261,6 +261,7 @@ class MDCSet():
                self._measure_hrss(i)
                self._measure_egw_rsq(i)

            if self.table_type == "burst":
                self.times = np.append(self.times, float(simrow.time_geocent_gps))
            #np.insert(self.times, len(self.times), sim_burst_table.time_geocent_gps)
            #if sim_burst_table.next is None: break
@@ -302,16 +303,11 @@ class MDCSet():
                setattr(swig_row, a, getattr( row, a ))
            except AttributeError: continue # we didn't define it
            except TypeError: 
                print a, getattr(row,a)
                #print a, getattr(row,a)
                continue # the structure is different than the TableRow
        theta, phi = np.cos(swig_row.incl), swig_row.phi
        try:
            swig_row.numrel_data = row.numrel_data
        except AttributeError:
            # Don't fail badly if there's a problem with numerical relativity data unless this is a supernova injection
            swig_row.numrel_data = ""
            if row.waveform in exceptions:
                raise AttributeError
        swig_row.numrel_data = str(row.numrel_data)
        
        hp, hx = lalburst.GenerateSimBurst(swig_row, 1.0/rate)
        hp0, hx0 = lalburst.GenerateSimBurst(swig_row, 1.0/rate)
        return hp, hx, hp0, hx0
@@ -393,7 +389,7 @@ class MDCSet():
        name = ''
        numberspart = ''
        if row.waveform in ("Dimmelmeier+08", "Scheidegger+10", "Mueller+12", "Ott+13"):
            print row
            #print row
            numberspart = os.path.basename(row.numrel_data).split('.')[0]

        if row.waveform == "Gaussian":
+33 −8
Original line number Diff line number Diff line
@@ -964,7 +964,8 @@ class Ringdown(Waveform):
    """
    table_type = lsctables.SimRingdownTable
    waveform = "Ringdown"
    pass

        

class LongDuration(Supernova):
    """
@@ -1101,18 +1102,42 @@ class BBHRingdown(Ringdown):
    """
    #lalsimfunction = SimBlackHoleRingdown

    def __init__(self, time, hrss,  phi0, deltaT, mass, spin, massloss, distance, inclination, l, m, sky_dist=uniform_sky):
    def __init__(self, time, hrss,  phi0, mass, spin, massloss, distance, inclination, l, m, sky_dist=uniform_sky, deltaT = 1/16384.0):
        self._clear_params()
        self.time = self.v_start_time_ns = time
        self.time = time
        self.sky_dist = sky_dist
        self.params['simulation_id'] = self.simulation_id =  self.sim.get_next_id()
        self.params['phi0'] = phi0
        self.params['deltaT'] = deltaT
        self.params['mass'] = mass
        self.params['mass'] = mass # in solar masses
        self.params['spin'] = spin
        self.params['massloss'] = massloss
        self.params['eff_dist_l'] = self.eff_dist_l = distance
        self.params['eff_dist_l'] = self.eff_dist_l = distance # megaparsec
        self.params['hrss'] = self.hrss = hrss
        self.params['inclination'] = inclination
        self.params['l'] = l
        self.params['m'] = m
        self.params['inclination'] = self.inclination = inclination
        self.params['l'] = self.l = l
        self.params['m'] = self.m = m

    def _generate(self, rate=16384.0):
        """
        Generate this BBH Ringdown waveform.

        Parameters
        ----------
        rate : float
           The signal sampling rate. Defaults to 16384.0 Hz
        """
        dt = 1.0 / rate

        #&epoch, q, dt, M, a, e, r, i, l, m
        
        hp, hx = lalsimulation.SimBlackHoleRingdown(self.time,
                                           np.deg2rad(self.azimuth),
                                           dt,
                                           self.mass*lal.MSUN_SI,
                                           self.spin,
                                           self.massloss,
                                           self.eff_dist_l *  1e6 * lal.PC_SI,
                                           np.deg2rad(self.inclination),
                                           self.l, self.m)
        return hp, hx
+1 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ class TestMinke(unittest.TestCase):
        """
        Read-in the xml simburst table.
        """
        mdcset = mdctools.MDCSet(["L1"])
        mdcset = mdctools.MDCSet(["L1"], table_type = "ringdown",)
        mdcset.load_xml("test_simringdowntable.xml.gz", full = False)

        self.assertEqual(len(mdcset.waveforms), 1)
+23 −3
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ class TestMinkeSources(unittest.TestCase):

    def test_OttFrame(self):
        mdcset = mdctools.MDCSet(['L1', 'H1'])
        mdcset.load_xml('testout/ott13.xml.gz')
        mdcset.load_xml('tests/data/ott_test.xml.gz')
        o1 = mdctools.FrameSet('tests/data/frame_list.dat')
        mdc_folder = "testout/frames"
        for o1frame in o1.frames:
@@ -95,11 +95,31 @@ class TestMinkeSources(unittest.TestCase):

    def test_OttGraven(self):
        mdcset = mdctools.MDCSet(['L1', 'H1'])
        mdcset.load_xml('testout/ott13.xml.gz')
        mdcset.load_xml('tests/data/ott_test.xml.gz')
        o1 = mdctools.FrameSet('tests/data/frame_list.dat')
        o1.full_logfile(mdcset, 'testout/frames/logfile.txt')

    def TestRingdown(self):

        testdata = np.array(
            [ -4.14099902e-20,   4.05706892e-21,   9.44712664e-22,
              -2.70287547e-22,   1.98245659e-24,   9.41028314e-24,
              -1.31703741e-24,  -1.62366854e-25,   6.86331926e-26,
              -3.27763986e-27,  -2.02216144e-27,   3.85067715e-28,
              2.13773021e-29,  -1.66111808e-29,   1.43458903e-30,
              4.04499843e-31,  -1.04902792e-31,  -5.84838741e-34,
              3.83160548e-33,  -4.86443978e-34,  -7.27079363e-35,
              2.70362403e-35]
        )
        
        mdcset = mdctools.MDCSet(["L1"], table_type = "ringdown")
        waveform = sources.BBHRingdown(1000, 1e-22, 0 ,0.1, 10, 0.1, 0.01, 10, 0, 2, 2,)

        mdcset + waveform

        hp, hx = waveform._generate()

        np.testing.assert_array_equal(hp, testdata)
        
    def TestSupernovaXML(self):