From 49f21e2a2fe0516abf215a0c53c91a5d9d17cbf8 Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Fri, 11 Nov 2016 17:38:52 -0600
Subject: [PATCH] LIB event structure.

---
 gracedb/models.py                       | 18 +++++++++++------
 gracedb/translator.py                   | 14 +++++++++----
 gracedb/view_utils.py                   | 14 +++++++++----
 static/css/style.css                    |  2 ++
 templates/gracedb/event_detail_LIB.html | 26 ++++++++++++++++---------
 5 files changed, 51 insertions(+), 23 deletions(-)

diff --git a/gracedb/models.py b/gracedb/models.py
index d328d5761..ce71deae2 100644
--- a/gracedb/models.py
+++ b/gracedb/models.py
@@ -825,12 +825,18 @@ class MultiBurstEvent(Event):
     ligo_angle_sig   = models.FloatField(null=True)
 
 class LalInferenceBurstEvent(Event):
-    bci              = models.FloatField(null=True)
-    quality          = models.FloatField(null=True)
-    bsn              = models.FloatField(null=True)
-    omicron_snr      = models.FloatField(null=True)
-    hrss             = models.FloatField(null=True)
-    frequency        = models.FloatField(null=True)
+    bci                 = models.FloatField(null=True)
+    quality_mean        = models.FloatField(null=True)
+    quality_median      = models.FloatField(null=True)
+    bsn                 = models.FloatField(null=True)
+    omicron_snr_network = models.FloatField(null=True)
+    omicron_snr_H1      = models.FloatField(null=True)
+    omicron_snr_L1      = models.FloatField(null=True)
+    omicron_snr_V1      = models.FloatField(null=True)
+    hrss_mean           = models.FloatField(null=True)
+    hrss_median         = models.FloatField(null=True)
+    frequency_mean      = models.FloatField(null=True)
+    frequency_median    = models.FloatField(null=True)
 
 class SingleInspiral(models.Model):
     event             = models.ForeignKey(Event, null=False)
diff --git a/gracedb/translator.py b/gracedb/translator.py
index 9fd5a25f7..7ff4e1272 100644
--- a/gracedb/translator.py
+++ b/gracedb/translator.py
@@ -412,11 +412,17 @@ def handle_uploaded_data(event, datafilename,
 
         # Assign analysis-specific attributes
         event.bci         = event_dict.get('BCI', None)
-        event.quality     = event_dict.get('quality', None)
+        event.quality_mean = event_dict.get('quality_posterior_mean', None)
+        event.quality_median = event_dict.get('quality_posterior_median', None)
         event.bsn         = event_dict.get('BSN', None)
-        event.omicron_snr = event_dict.get('Omicron SNR', None)
-        event.hrss        = event_dict.get('hrss', None)
-        event.frequency   = event_dict.get('frequency', None)
+        event.omicron_snr_network = event_dict.get('Omicron_SNR_Network', None)
+        event.omicron_snr_H1 = event_dict.get('Omicron_SNR_H1', None)
+        event.omicron_snr_L1 = event_dict.get('Omicron_SNR_L1', None)
+        event.omicron_snr_V1 = event_dict.get('Omicron_SNR_V1', None)
+        event.hrss_mean   = event_dict.get('hrss_posterior_mean', None)
+        event.hrss_median   = event_dict.get('hrss_posterior_median', None)
+        event.frequency_mean   = event_dict.get('frequency_posterior_mean', None)
+        event.frequency_median = event_dict.get('frequency_posterior_median', None)
         event.save()
 
     else:
diff --git a/gracedb/view_utils.py b/gracedb/view_utils.py
index 41ebbd386..9c06004b3 100644
--- a/gracedb/view_utils.py
+++ b/gracedb/view_utils.py
@@ -282,10 +282,16 @@ def eventToDict(event, columns=None, request=None):
             rv['extra_attributes']['LalInferenceBurst'] = {
                   "bci" : event.bci,
                   "bsn" : event.bsn,
-                  "quality" : event.quality,
-                  "omicron_snr" : event.omicron_snr,
-                  "hrss" : event.hrss,
-                  "frequency": event.frequency,
+                  "quality_mean" : event.quality_mean,
+                  "quality_median": event.quality_median,
+                  "omicron_snr_network" : event.omicron_snr_network,
+                  "omicron_snr_H1" : event.omicron_snr_H1,
+                  "omicron_snr_L1" : event.omicron_snr_L1,
+                  "omicron_snr_V1" : event.omicron_snr_V1,
+                  "hrss_mean" : event.hrss_mean,
+                  "hrss_median" : event.hrss_median,
+                  "frequency_mean": event.frequency_mean,
+                  "frequency_median": event.frequency_median,
                   }
         except:
             pass
diff --git a/static/css/style.css b/static/css/style.css
index f83ed3144..bf6b397ce 100644
--- a/static/css/style.css
+++ b/static/css/style.css
@@ -11,6 +11,8 @@ table.event th {padding:3px;border:none;text-align:center;vertical-align:bottom;
 table.event {border-bottom:1px solid gray;}
 /* Branson added */
 table.event {width:100%}
+/* Tanner added - centering columns in multi-column tables */
+table.eventmulti td {text-align:center;}
 
 table.analysis_specific_lm th {padding:3px;border:none;text-align:center;vertical-align:bottom;}
 table.analysis_specific_lm {border-bottom:1px solid gray;}
diff --git a/templates/gracedb/event_detail_LIB.html b/templates/gracedb/event_detail_LIB.html
index ef101e9d4..008a00e8e 100644
--- a/templates/gracedb/event_detail_LIB.html
+++ b/templates/gracedb/event_detail_LIB.html
@@ -7,19 +7,27 @@
 <h2>Analysis-Specific Attributes</h2>
 
 <table class="analysis_specific"> <tbody>
-    <tr>
-        <td>  <table class="event"> <tbody>
-                    <tr> <th> BCI </th> <td> {{object.bci|floatformat:"-4"}} </td> </tr>
-                    <tr> <th> BSN </th> <td> {{object.bsn|floatformat:"-4"}} </td> </tr>
-                    <tr> <th> quality </th> <td> {{object.quality|floatformat:"-4"}} </td> </tr>
-              </tbody></table>
+    <tr valign="top">
+        <td> <table class="event eventmulti"> <tbody>
+                <tr> <th>       </th> <th>Omicron SNR                                    </th> </tr>
+                <tr> <th>Network</th> <td>{{object.omicron_snr_network|floatformat:"-4"}}</td> </tr>
+                <tr> <th>H1     </th> <td>{{object.omicron_snr_H1|floatformat:"-4"}}     </td> </tr>
+                <tr> <th>L1     </th> <td>{{object.omicron_snr_L1|floatformat:"-4"}}     </td> </tr>
+                <tr> <th>V1     </th> <td>{{object.omicron_snr_V1|floatformat:"-4"}}     </td> </tr>
+            </tbody> </table>
         </td>
 
+        <td> <table class="event eventmulti"> <tbody>
+                <tr> <th>         </th> <th>Posterior mean                            </th> <th>Posterior median                            </th></tr>
+                <tr> <th>frequency</th> <td>{{object.frequency_mean|floatformat:"-4"}}</td> <td>{{object.frequency_median|floatformat:"-4"}}</td> </tr>
+                <tr> <th>hrss     </th> <td>{{object.hrss_mean|scientific}}           </td> <td>{{object.hrss_median|scientific}}           </td> </tr>
+                <tr> <th>quality  </th> <td>{{object.quality_mean|floatformat:"-4"}}  </td> <td>{{object.quality_median|floatformat:"-4"}}  </td> </tr>
+            </tbody> </table>
+        </td>
 
         <td>  <table class="event"> <tbody>
-                    <tr> <th> frequency </th> <td> {{object.frequency|floatformat:"-4"}} </td> </tr>
-                    <tr> <th> Omicron SNR </th> <td> {{object.omicron_snr|floatformat:"-4"}} </td> </tr>
-                    <tr> <th> hrss </th> <td> {{object.hrss|scientific}} </td> </tr>
+                    <tr> <th> BCI </th> <td> {{object.bci|floatformat:"-4"}} </td> </tr>
+                    <tr> <th> BSN </th> <td> {{object.bsn|floatformat:"-4"}} </td> </tr>
               </tbody></table>
         </td>
 
-- 
GitLab