def grabMassq(posterior,injMc,injEta): counter = 0 total = 0 countSamples1 = 0 countSamples2 = 0 columnM1 = None columnM2 = None for line in posterior: words = line.split() if counter == 0: counter = 1 for word in range(len(words)): if words[word] == 'mc' or words[word] == 'chirpmass' or words[word] == 'mchirp': columnM1 = word if words[word] == 'q' or words[word] == 'asym_massratio': columnM2 = word elif columnM1 == None or columnM2 ==None: print 'failed' file.seek(0) return None,None else: mc = float(words[columnM1]) q = float(words[columnM2]) eta = bppu.q2eta(mc,q) if mc < injMc: countSamples1 += 1 if eta < injEta: countSamples2 += 1 total += 1 file.seek(0) return float(countSamples1)/total,float(countSamples2)/total
def compute_mass_parameterizations(samples): params = samples.dtype.names has_mc = 'mchirp' in params has_eta = 'eta' in params has_q = 'q' in params has_ms = 'mass1' in params and 'mass2' in params has_mtotal = 'mtotal' in params if has_mc: mc = samples['mchirp'] if not has_eta: if has_q: eta = bppu.q2eta(mc, samples['q']) else: raise ValueError("Chirp mass given with no mass ratio.") else: eta = samples['eta'] if not has_ms: m1, m2 = bppu.mc2ms(mc, eta) mtotal = m1 + m2 elif has_ms: m1 = samples['mass1'] m2 = samples['mass2'] mtotal = m1 + m2 eta = m1 * m2 / (mtotal * mtotal) mc = mtotal * np.power(eta, 3./5.) elif has_mtotal: mtotal = samples['mtotal'] if has_eta: eta = samples['eta'] mc = mtotal * np.power(eta, 3./5.) m1, m2 = bppu.mc2ms(mc, eta) elif has_q: m1 = mtotal / (1 + samples['q']) m2 = mtotal - m1 else: raise ValueError("Chirp mass given with no mass ratio.") return mc, eta, m1, m2, mtotal
def compute_mass_parameterizations(samples): params = samples.dtype.names has_mc = 'mchirp' in params has_eta = 'eta' in params has_q = 'q' in params has_ms = 'mass1' in params and 'mass2' in params has_mtotal = 'mtotal' in params if has_mc: mc = samples['mchirp'] if not has_eta: if has_q: eta = bppu.q2eta(mc, samples['q']) else: raise ValueError("Chirp mass given with no mass ratio.") else: eta = samples['eta'] if not has_ms: m1, m2 = bppu.mc2ms(mc, eta) mtotal = m1 + m2 elif has_ms: m1 = samples['mass1'] m2 = samples['mass2'] mtotal = m1 + m2 eta = m1 * m2 / (mtotal * mtotal) mc = mtotal * np.power(eta, 3. / 5.) elif has_mtotal: mtotal = samples['mtotal'] if has_eta: eta = samples['eta'] mc = mtotal * np.power(eta, 3. / 5.) m1, m2 = bppu.mc2ms(mc, eta) elif has_q: m1 = mtotal / (1 + samples['q']) m2 = mtotal - m1 else: raise ValueError("Chirp mass given with no mass ratio.") return mc, eta, m1, m2, mtotal