diff --git a/gracedb/models.py b/gracedb/models.py index 26588415b8f51d02d96bcaa90cd1bff46d0c29c9..746a2365c08b88ebb387d4a6889a0404c7c00399 100644 --- a/gracedb/models.py +++ b/gracedb/models.py @@ -64,6 +64,7 @@ class Event(models.Model): submitter = models.ForeignKey(User) created = models.DateTimeField(auto_now_add=True) group = models.ForeignKey(Group) + uid = models.CharField(max_length=20, default="") # XXX deprecated. should be removed. analysisType = models.CharField(max_length=20, choices=ANALYSIS_TYPE_CHOICES) # from coinc_event diff --git a/gracedb/translator.py b/gracedb/translator.py index a7bd55da576aead418395c35a627de016fc1fa39..b73dda8b22bac0faba705488efa5dd564d200edf 100644 --- a/gracedb/translator.py +++ b/gracedb/translator.py @@ -111,6 +111,55 @@ def handle_uploaded_data(event, datafilename, event.save() + elif event.analysisType == "HWINJ": + log_comment = "Log File Created" + xmldoc = glue.ligolw.utils.load_filename(datafilename) + + # Create Log Data + # XXX This is messy and redundant. All of this is also below. + try: + log_data = ["Event Type: %s" % event.getTypeLabel(event.analysisType)] + origdata = glue.ligolw.table.getTablesByName( + xmldoc, + glue.ligolw.lsctables.SimInspiralTable.tableName) + + mchirp = origdata[0][0].mchirp + mass = (origdata[0][0].mass1, origdata[0][0].mass2) + spin1 = (origdata[0][0].spin1x, origdata[0][0].spin1y, origdata[0][0].spin1z) + spin2 = (origdata[0][0].spin2x, origdata[0][0].spin2y, origdata[0][0].spin2z) + end_time = (origdata[0][0].geocent_end_time, origdata[0][0].geocent_end_time_ns) + waveform = origdata[0][0].waveform + + if mchirp is not None: + log_data.append("MChirp: %0.3f" % mchirp) + else: + log_data.append("MChirp: ---") + log_data.append("Component Masses: %d %d" % mass) + log_data.append("Component 1 Spin: (%f, %f, %f)" % spin1) + log_data.append("Component 2 Spin: (%f, %f, %f)" % spin2) + log_data.append("Geocentric End Time: %d.%d" % end_time) + except Exception, e: + log_comment = "Problem Creating Log File" + log_data = ["Cannot create log file", "error was:", str(e)] + + log_data = "\n".join(log_data) + + output_dir = os.path.dirname(datafilename) + write_output_files(output_dir, xmldoc, log_data, + xml_fname=coinc_table_filename, + log_fname=log_filename) + + # Create EventLog entries about these files. + private_data_url = os.path.join(event.weburl(), 'private') + + event.gpstime = end_time[0] + event.save() + + log = EventLog(event=event, + filename=log_filename, + issuer=event.submitter, + comment=log_comment) + log.save() elif event.analysisType == 'MBTA': #here's how it works for inspirals #populate the tables