Bases: object
QNM real amplitudes fitting functions for remnant BHs resulting from the coalescence of two non-precessing progenitors in a quasi-circular orbit. References: https://arxiv.org/abs/1207.0399, https://arxiv.org/abs/1406.3201.
Bases: object
QNM complex amplitudes fitting functions for remnant BHs resulting from the coalescence of two non-precessing progenitors in a quasi-circular orbit. Reference: https://arxiv.org/abs/1801.08208.
Bases: object
QNM complex amplitudes fitting functions for remnant BHs resulting from the coalescence of two non-spinning progenitors in a quasi-circular orbit. Reference: https://github.com/llondon6/kerr_public/blob/master/kerr/formula/mmrdns_amplitudes.py (the ones in the original publication https://arxiv.org/abs/1404.3197 are not up to date).
Method from Marano et al. “Fitting Earthquake Spectra: Colored Noise and Incomplete Data”, Bulletin of the Seismological Society of America, Vol. 107, No. 1, pp. –, February 2017, doi: 10.1785/0120160030 Code available here: http://mercalli.ethz.ch/~marra/publications/2017_fitting_earthquake_spectra_colored_noise_and_incomplete_data/ All credits go to the original authors.
Compute the log determinant of a positive-definite symmetric toeplitz matrix. The determinant is computed recursively. The intermediate solutions of the Levinson recursion are exploited.
r – first row of the Toeplitz matrix
sign of the determinant logdet : natural log of the determinant
sign
Estimate directly from the data y Weighting by 1/(N-i) for lag i where N=len(y) k specifies the desired size of the ACF, i.e. the number of samples in the on-source segment
Returns the autocorrelation function (ACF): R[i] = sum_n x[n]*x[n+i], in the form of an array spanned by the index i.
Computes the ACF using either the standard correlation (with the appropriate normalisation) or the fft method. The latter simply exploits the fact that the ACF is a convolution product and that the Fourier transform of a a convolution product is a product in the Fourier domain, see section ‘Efficient computation’ of ‘https://en.wikipedia.org/wiki/Autocorrelation#cite_note-3.
The difference between the two methods is in the treatment of boundary terms. When computing the ACF using the standard correlation, we ‘slide’ the data vector against a delayed copy of itself, obtaining the correlation at different lags. For all lags except lag=0, part of the ‘slided’ vector will spill over the boundaries of the fixed vector. In this method, terms outside the vectors boundaries are assigned zeros. This implies that for increasing lag, an increasingly smaller number of terms will contribute, and the variance of large-lag terms grow. Also, the ACF will eventually go to zero, when the maximum lag is reached. When employing the fft method instead, the data are windowed at the boundaries to avoid Gibbs phenomena, and periodic boundary conditions are assumed when applying the Fourier transform, implying a different structure for large lags.
For small lags (compared to the total length of the vector), the portion of the sum which dependent on boundary terms will be small, since the vectors still possess a significant overlap, and the specific method used should not matter (if gaussianity and stationarity assumptions are respected). For this reason, the length of the data on which the ACF is estimated, should always be much larger than the analysis segment length.
Divide the data in chunks. Skip the 0th and the last chunks which have filter ringing from downsampling.
Fetch data for a particular event
ifo: IFO name (‘H1’ etc) tstart, tend: start and end time to find path: Local path to save file. If file exists it will be read from disk rather than fetched channel: Channel to read from frame data. If ‘GWOSC’ will fetch open data verbose: Print some info
Returns a gwpy.TimeSeries object
Returns x[name], unless it is over-ridden by value in the fixed_params dictionary.
Bases: RingDownModel
Class implementing a superposition of damped sinusoids as ringdown model. Frequency, damping time, amplitude and phase are sampled over for each mode.
Bases: RingDownModel
Class implementing a non-precessing ringdown model extracted from LAL IMR waveforms.
Bases: RingDownModel
Class implementing the KHS_2012 waveform as ringdown model (valid for spinning, non-precessing progenitors). Frequencies and damping times of the specified (l,m,n) modes are fixed as a function of the mass and spin of the remnant BH. Relative amplitudes and phases are fixed as a function of the symmetric mass ratio and effective spin. References: https://arxiv.org/abs/1207.0399, https://arxiv.org/abs/1406.3201
Bases: RingDownModel
Class implementing a Kerr waveform as ringdown model. Frequencies and damping times of the specified (s,l,m,n) modes are fixed as a function of the mass and spin of the remnant BH. Relative amplitudes and phases of the modes are instead free to vary.
Bases: Model
Parent class for all the models used in the package. Reads the data and sets sky position parameters common to all waveform models.
Bases: RingDownModel
Class implementing the MMRDNP waveform as ringdown model (valid for spinning, non-precessing progenitors). Reference: https://arxiv.org/pdf/1801.08208.pdf Technical notes: https://github.com/llondon6/kerr_public/blob/master/notes/ns/mmrd.pdf
Bases: RingDownModel
Class implementing the MMRDNS waveform as ringdown model (valid for non-spinning progenitors). Frequencies and damping times of the specified (l,m,n) modes are fixed as a function of the mass and spin of the remnant BH. Relative amplitudes and phases are fixed as a function of the symmetric mass ratio. Reference: https://arxiv.org/pdf/1404.3197.pdf
Bases: RingDownModel
Class implementing a superposition of Morlet-Gabor-wavelets as waveform model. Frequency, damping time, amplitude and phase are sampled over for each mode.
Bases: LIGOVirgoModel
Parent class for all ringdown models. Sets common time prior and likelihood.
Bases: RingDownModel
Class implementing the EOBPM waveform as post-merger model (valid for non-precessing progenitors). References: arXiv: 1406.0401, 1606.03952, 2001.09082.
Bases: object
Class implementing a superposition of Damped Sinusoids of arbitrary polarisation.
dict
A
dict
N
dict
f
dict
phi
dict
t0
dict
tau
Bases: object
Call an IMR waveform from LAL
‘double’
cosiota
‘double’
dist
‘double’
dt
‘double’
m1
‘double’
m2
‘double’
phi
‘double’
s1z
‘double’
s2z
‘double’
signal_seglen
‘double’
starttime
‘double’
t0
Bases: object
‘double’
Mf
dict
TGR_params
‘double’
af
‘double’
chi_eff
‘double’
eta
‘double’
iota
list
multipoles
‘double’
phi
‘double’
r
‘int’
single_l
‘int’
single_m
‘unsigned int’
single_mode
‘double’
t0
Returns h_+ - i* h_x
Bases: object
‘unsigned int’
AreaQuantization
‘double’
Mf
‘unsigned int’
ParSpec
‘unsigned int’
Spheroidal
dict
TGR_params
‘double’
af
‘unsigned int’
amp_non_prec_sym
dict
amps
‘unsigned int’
braneworld
‘unsigned int’
charge
‘unsigned int’
geom
dict
interpolants
‘double’
iota
‘double’
phi
‘unsigned int’
qnm_fit
dict
qnms
dict
qnms_ParSpec
‘double’
r
‘double’
reference_amplitude
dict
swshs
‘double’
t0
Bases: object
‘double’
Mf
‘double’
Mi
dict
TGR_params
‘double’
af
‘double’
chi_a
‘double’
chi_s
‘double’
delta
‘double’
eta
‘unsigned int’
geom
dict
interpolants
‘double’
iota
dict
multipoles
‘double’
phi
‘unsigned int’
qnm_fit
‘double’
r
‘int’
single_l
‘int’
single_m
‘unsigned int’
single_mode
‘double’
t0
We employ the convention: h_+ - i h_x = sum_{lm} Y_{lm} h_{lm} Non-precessing symmetry implies the property: h_{l,-m} = (-1)**l h^*_{l,m} (see: Blanchet, “Gravitational Radiation from Post-Newtonian Sources and Inspiralling Compact Binaries”). This model does not support extra scalar/vector polarisations, which are set to zero.
Bases: object
‘double’
Mf
‘unsigned int’
Spheroidal
dict
TGR_params
‘double’
af
‘double’
eta
dict
interpolants
‘double’
iota
list
multipoles
‘double’
phi
‘unsigned int’
qnm_fit
‘double’
r
‘int’
single_l
‘int’
single_m
‘unsigned int’
single_mode
‘int’
single_n
‘double’
t0
Bases: object
dict
A
dict
N
dict
f
dict
phi
dict
t0
dict
tau
Returns five polarisations (the ones independent in a L-shaped GW detector) allowed for a metric theory of gravity: hs (scalar mode), {hvx, hvy} (vector modes), {hp, hc} (tensor modes). We employ the conventions: h_s = sum_{i} A_i * cos(omega*t+phi) * e^(-(t-t^{start}_i/tau)
h_vx - i h_vy = sum_{i} A_i * e^(i*omega*t+phi) * e^(-(t-t^{start}_i/tau) h_+ - i h_x = sum_{i} A_i * e^(i*omega*t+phi) * e^(-(t-t^{start}_i/tau)
Bases: object
‘unsigned int’
l
‘int’
m
‘unsigned int’
n
object
omegai_interp
object
omegar_interp
‘unsigned int’
s
Bases: object
‘unsigned int’
l_QA
‘int’
m_QA
‘unsigned int’
n_QA
object
q_coeff_GR
Bases: object
object
f_coeff
‘unsigned int’
l
‘int’
m
‘unsigned int’
n
object
tau_coeff
Bases: object
‘unsigned int’
l_BW
‘int’
m_BW
‘unsigned int’
n_BW
Bases: object
‘unsigned int’
charge
object
f_coeff
‘unsigned int’
l
‘int’
m
‘unsigned int’
n
object
q_coeff
Bases: object
Spin weighted spherical harmonics -s_Y_{lm} Defined in Kidder (https://arxiv.org/pdf/0710.0614.pdf) Eq.s (4, 5). Note that this function returns -s_Y_{l,m} as defined by Kidder. Thus, for gravitational perturbation s=2 must be passed.
SWSH for angles theta [0,pi] and phi [0,2pi]
‘int’
l
‘int’
m
‘int’
s
‘double’
swsh_prefactor
Bases: object
‘double’
M
‘double’
Mf
‘double’
Sbar
‘double’
Shat
dict
TGR_params
‘double’
X12
‘double’
a12
‘double’
aK
‘double’
af
dict
fit_coefficients
‘unsigned int’
geom
‘double’
iota
‘double’
m1
‘double’
m2
list
multipoles
‘double’
nu
dict
phases
‘double’
phi
‘double’
r
‘double’
s1z
‘double’
s2z
‘int’
single_l
‘int’
single_m
‘unsigned int’
single_mode
‘double’
t0