gstlal 1.13.0
Loading...
Searching...
No Matches
sngltriggertable.py
1from ligo.lw import lsctables
2import lal
3from gstlal import _sngltriggertable
4
5
6__all__ = ["GSTLALSnglTrigger"]
7
8
9class GSTLALSnglTrigger(_sngltriggertable.GSTLALSnglTrigger):
10 __slots__ = ()
11
12# def __eq__(self, other):
13# return not cmp(
14# (self.ifo, self.end, self.mass1, self.mass2, self.spin1, self.spin2, self.search),
15# (other.ifo, other.end, other.mass1, other.mass2, other.spin1, other.spin2, other.search)
16# )
17
18 def __cmp__(self, other):
19 return cmp(self.end, other)
20
21 @property
22 def end(self):
23 return lal.LIGOTimeGPS(self.end_time, self.end_time_ns)
24
25 @end.setter
26 def end(self, val):
27 if val is None:
28 self.end_time = self.end_time_ns = 0
29 else:
30 self.end_time = val.gpsSeconds
31 self.end_time_ns = val.gpsNanoSeconds
32
33 @property
34 def snr_time_series(self):
35 try:
36 name = self._snr_name
37 except ValueError:
38 # C interface raises ValueError if the internal snr
39 # pointer is NULL
40 return None
41 series = lal.CreateCOMPLEX8TimeSeries(
42 name,
43 lal.LIGOTimeGPS(self._snr_epoch_gpsSeconds, self._snr_epoch_gpsNanoSeconds),
44 self._snr_f0,
45 self._snr_deltaT,
46 lal.Unit(self._snr_sampleUnits),
47 self._snr_data_length
48 )
49 # we want to be able to keep the table row object in memory
50 # for an extended period of time so we need to be able to
51 # release the memory used by the SNR time series when we no
52 # longer need it, and so we copy the data here instead of
53 # holding a reference to the original memory. if we
54 # allowed references to the original memory to leak out
55 # into Python land we could never know if it's safe to free
56 # it
57 series.data.data[:] = self._snr_data
58 return series
59
60 @snr_time_series.deleter
61 def snr_time_series(self):
62 self._snr_time_series_deleter()