From 2c973a6f58fd71e33e123511db71929d99835cdd Mon Sep 17 00:00:00 2001
From: Leo Tsukada <leo.tsukada@ligo.org>
Date: Sun, 7 Jul 2019 21:02:09 -0700
Subject: [PATCH] gstlal_inspiral_compute_dtdphideff_cov_matrix: added KAGRA

---
 ...lal_inspiral_compute_dtdphideff_cov_matrix | 22 +++++++++++--------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/gstlal-inspiral/bin/gstlal_inspiral_compute_dtdphideff_cov_matrix b/gstlal-inspiral/bin/gstlal_inspiral_compute_dtdphideff_cov_matrix
index 57f0cbcb9e..7f3ff95475 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_compute_dtdphideff_cov_matrix
+++ b/gstlal-inspiral/bin/gstlal_inspiral_compute_dtdphideff_cov_matrix
@@ -30,6 +30,7 @@ parser.add_argument('--psd-xml', help = 'XML containing HLV psd')
 parser.add_argument('--H-snr', type = float, help = 'H characteristic SNR')
 parser.add_argument('--L-snr', type = float, help = 'L characteristic SNR')
 parser.add_argument('--V-snr', type = float, help = 'V characteristic SNR')
+parser.add_argument('--K-snr', type = float, help = 'K characteristic SNR')
 parser.add_argument('--m1', type = float, default = 1.4, help = 'primary component mass')
 parser.add_argument('--m2', type = float, default = 1.4, help = 'secondary component mass')
 parser.add_argument('--s1', type = float, default = 0., help = 'primary (z) spin')
@@ -43,7 +44,7 @@ if args.flow >= args.fhigh:
 	raise ValueError("flow cannot be greater than fhigh")
 
 refpsd = args.psd_xml
-rho = {"L1": args.L_snr, "H1": args.H_snr, "V1": args.V_snr}
+rho = {"L1": args.L_snr, "H1": args.H_snr, "V1": args.V_snr, "K1": args.K_snr}
 
 
 psd = series.read_psd_xmldoc(ligolw_utils.load_filename(refpsd, verbose = True, contenthandler = series.PSDContentHandler))
@@ -73,21 +74,24 @@ transtt = {}
 transpp = {}
 transtp = {}
 transpt = {}
+transdd = {}
 # FIXME do an actual calculation
-transdd = {frozenset(("H1", "L1")): 1. / numpy.sqrt(sigsqdd["H1"] + sigsqdd["L1"])  , frozenset(("H1", "V1")): 1. / numpy.sqrt(sigsqdd["H1"] + sigsqdd["V1"]), frozenset(("L1", "V1")): 1. / numpy.sqrt(sigsqdd["L1"] + sigsqdd["V1"])}
+# transdd = {frozenset(("H1", "L1")): 1. / numpy.sqrt(sigsqdd["H1"] + sigsqdd["L1"])  , frozenset(("H1", "V1")): 1. / numpy.sqrt(sigsqdd["H1"] + sigsqdd["V1"]), frozenset(("L1", "V1")): 1. / numpy.sqrt(sigsqdd["L1"] + sigsqdd["V1"])}
+# transdd = {frozenset(instrument_pair) : 1. / numpy.sqrt(sigsqdd[instrument_pair[0]] + sigsqdd[instrument_pair[1]]) for instrument_pair in TimePhaseSNR.instument_pairs(("H1", "L1", "V1", "K1"))}
 
-for combo in itertools.combinations(("H1", "L1", "V1"), 2):
-	a,b = combo
+for pair in TimePhaseSNR.instument_pairs(("H1", "L1", "V1", "K1")):
+	a,b = pair
 	m11 = sigsqtt[a] + sigsqtt[b]
 	m22 = sigsqpp[a] + sigsqpp[b]
 	m12 = m21 = sigsqtp[a] + sigsqtp[b]
 	mat = numpy.array([[m11, m12], [m21, m22]])
 	matinv = numpy.linalg.inv(mat)
 	cholesky_transpose = numpy.linalg.cholesky(matinv).T
-	transtt[frozenset(combo)] = cholesky_transpose[0,0]
-	transtp[frozenset(combo)] = cholesky_transpose[0,1]
-	transpt[frozenset(combo)] = cholesky_transpose[1,0]
-	transpp[frozenset(combo)] = cholesky_transpose[1,1]
+	transtt[frozenset(pair)] = cholesky_transpose[0,0]
+	transtp[frozenset(pair)] = cholesky_transpose[0,1]
+	transpt[frozenset(pair)] = cholesky_transpose[1,0]
+	transpp[frozenset(pair)] = cholesky_transpose[1,1]
+	transdd[frozenset(pair)] = 1. / numpy.sqrt(sigsqdd[a] + sigsqdd[b])
 
 f = h5py.File(args.output, "w")
 h5_transtt = f.create_group("transtt")
@@ -99,7 +103,7 @@ for group, mat in zip((h5_transtt, h5_transtp, h5_transpt, h5_transpp, h5_transd
 	for k,v in mat.items():
 		group.create_dataset(",".join(sorted(k)), data = float(v))
 
-combos = TimePhaseSNR.instrument_combos(("H1","L1","V1")) + (("H1",),("L1",),("V1",))
+combos = TimePhaseSNR.instrument_combos(("H1","L1","V1", "K1")) + (("H1",),("L1",),("V1",), ("K1",))
 norm = dict((frozenset(k), 0.) for k in combos)
 norm = {}
 h5_norm = f.create_group("norm")
-- 
GitLab