From c401ed8e4f73d6c2c0d244bf08a4e408664a6108 Mon Sep 17 00:00:00 2001
From: Kipp Cannon <kipp.cannon@ligo.org>
Date: Mon, 5 Sep 2016 20:38:10 -0700
Subject: [PATCH] app_sink_new_data():  performance improvements

- .last_coincs object now provides frozenset of zero-lag time slide IDs which allows for faster identification of zero-lag coincs
---
 gstlal-inspiral/python/inspiral.py | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/gstlal-inspiral/python/inspiral.py b/gstlal-inspiral/python/inspiral.py
index d6ae6c07d5..9782067c15 100644
--- a/gstlal-inspiral/python/inspiral.py
+++ b/gstlal-inspiral/python/inspiral.py
@@ -712,9 +712,8 @@ class Data(object):
 			# coinc_params_distributions.
 			if self.stream_thinca.last_coincs:
 				for coinc_event_id, coinc_event in self.stream_thinca.last_coincs.coinc_event_index.items():
-					offset_vector = self.stream_thinca.last_coincs.offset_vector(coinc_event.time_slide_id)
-					if not any(offset_vector.values()):
-						self.coinc_params_distributions.add_zero_lag(self.coinc_params_distributions.coinc_params(self.stream_thinca.last_coincs.sngl_inspirals(coinc_event_id), offset_vector))
+					if coinc_event.time_slide_id in self.stream_thinca.last_coincs.zero_lag_time_slide_ids:
+						self.coinc_params_distributions.add_zero_lag(self.coinc_params_distributions.coinc_params(self.stream_thinca.last_coincs.sngl_inspirals(coinc_event_id), self.stream_thinca.last_coincs.offset_vector(coinc_event.time_slide_id)))
 
 			# Cluster last coincs before recording number of zero
 			# lag events or sending alerts to gracedb
@@ -732,10 +731,8 @@ class Data(object):
 			# above)
 			if self.stream_thinca.last_coincs and self.zero_lag_ranking_stats is not None:
 				for coinc_event_id, coinc_event in self.stream_thinca.last_coincs.coinc_event_index.items():
-					offset_vector = self.stream_thinca.last_coincs.offset_vector(coinc_event.time_slide_id)
-					instruments = frozenset(self.stream_thinca.last_coincs.coinc_inspiral_index[coinc_event_id].instruments)
-					if coinc_event.likelihood is not None and not any(offset_vector.values()):
-						self.zero_lag_ranking_stats.zero_lag_likelihood_rates[instruments][coinc_event.likelihood,] += 1
+					if coinc_event.likelihood is not None and coinc_event.time_slide_id in self.stream_thinca.last_coincs.zero_lag_time_slide_ids:
+						self.zero_lag_ranking_stats.zero_lag_likelihood_rates[frozenset(self.stream_thinca.last_coincs.coinc_inspiral_index[coinc_event_id].instruments)][coinc_event.likelihood,] += 1
 
 			# do GraceDB alerts
 			if self.gracedb_far_threshold is not None:
-- 
GitLab