LALMetaIO  4.0.4.1-89842e6
LIGOMetadataTables.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2007 Andres C. Rodriguez, Badri Krishnan, Sukanta Bose, Alexander Dietz, Duncan Brown, Kipp Cannon, Lisa M. Goggin, Patrick Brady, Robert Adam Mercer, Saikat Ray-Majumder, Anand Sengupta, Stephen Fairhurst, Xavier Siemens, Sean Seader, Thomas Cokelaer
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with with program; see the file COPYING. If not, write to the
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17 * MA 02110-1301 USA
18 */
19 
20 /*-----------------------------------------------------------------------
21  *
22  * File Name: LIGOMetadataTables.h
23  *
24  * Author: Brown, D. A.
25  *
26  *-----------------------------------------------------------------------
27  */
28 
29 /**
30  * \author Brown, D. A.
31  * \file
32  * \ingroup lalmetaio_general
33  * \brief Provides data type definitions for the LIGO metadata database tables.
34  *
35  * Only columns that are available for the user defined values are available in the
36  * structures. For example the \c process_id column in the
37  * \c sngl_inspiral table is not in the corresponding LAL structure as it
38  * is generated by the database on insertion of events, not by the user.
39  *
40  * ### Synopsis ###
41  *
42  * \code
43  * #include <lal/LIGOMetadataTables.h>
44  * \endcode
45  *
46  */
47 
48 #include <lal/LALStdlib.h>
49 
50 #ifndef _LIGOMETADATATABLES_H
51 #define _LIGOMETADATATABLES_H
52 
53 #if defined(__cplusplus)
54 extern "C" {
55 #elif 0
56 } /* so that editors will match preceding brace */
57 #endif
58 
59 /* Defines for lengths of database table char arrays */
60 /* one longer than as defined in the SQL tables to allow */
61 /* strage of the terminating null need for the C %s format */
62 #define LIGOMETA_PROGRAM_MAX 65
63 #define LIGOMETA_VERSION_MAX 65
64 #define LIGOMETA_CVS_REPOSITORY_MAX 257
65 #define LIGOMETA_COMMENT_MAX 241
66 #define LIGOMETA_NODE_MAX 65
67 #define LIGOMETA_USERNAME_MAX 65
68 #define LIGOMETA_DOMAIN_MAX 64
69 #define LIGOMETA_IFOS_MAX 13
70 #define LIGOMETA_PARAM_MAX 33
71 #define LIGOMETA_TYPE_MAX 17
72 #define LIGOMETA_VALUE_MAX 1025
73 #define LIGOMETA_STRING_MAX 257
74 #define LIGOMETA_IFO_MAX 8
75 #define LIGOMETA_SEARCH_MAX 25
76 #define LIGOMETA_CHANNEL_MAX 65
77 #define LIGOMETA_SOURCE_MAX 30
78 #define LIGOMETA_WAVEFORM_MAX 50
79 #define LIGOMETA_COORDINATES_MAX 16
80 #define LIGOMETA_STD 100
81 #define LIGOMETA_INSPIRALTAPER_MAX 35
82 
83 
84 /**
85  * The \c InterferometerNumber contains an enum type for describing the
86  * interferometer.
87  */
88 typedef enum
89 tagInterferometerNumber
90 {
98  LAL_UNKNOWN_IFO = -1
99 }
101 
102 
103 typedef struct
104 tagProcessTable
105 {
106  struct tagProcessTable *next;
122 }
124 
125 
126 typedef struct
127 tagProcessParamsTable
128 {
129  struct tagProcessParamsTable *next;
135 }
137 
138 
139 typedef struct
140 tagSearchSummaryTable
141 {
142  struct tagSearchSummaryTable *next;
152 }
154 
155 
156 typedef struct
157 tagSnglBurst
158 {
159  struct tagSnglBurst *next;
174  long event_id;
175 }
176 SnglBurst;
177 
178 
179 typedef struct
180 tagSnglInspiralTable
181 {
182  struct tagSnglInspiralTable *next;
228  REAL4 Gamma[10]; /* metric co-efficients */
235  long event_id;
236 }
238 
239 
240 /**
241  * This structure contains the required information for generating a ringdown
242  * template and storing ringdown triggers. The fields are:
243  * <dl>
244  * <dt>ifo</dt><dd> The interferometer in which the trigger is found.</dd>
245  * <dt>channel</dt><dd> The interferometer channel in which the ringdown is
246  * found.</dd>
247  * <dt>start_time</dt><dd> The GPS start time of the ringdown trigger.</dd>
248  * <dt>frequency</dt><dd> The central frequency of the ringdown waveform
249  * (in Hz).</dd>
250  * <dt>quality</dt><dd> The quality factor \f$Q\f$ of the ringdown waveform.</dd>
251  * <dt>phase</dt><dd> The initial phase of the ringdown in radians.
252  * Zero is a cosine-phase ringdown; \f$-\pi/2\f$ is a sine-phase ringdown.</dd>
253  * <dt>mass</dt><dd> The mass \f$M\f$ of the black hole (in solar
254  * masses, \f$M_\odot\f$).</dd>
255  * <dt>spin</dt><dd> The dimensionless spin parameter of the
256  * black hole \f${\hat{a}}\f$ where the spin is \f$S={\hat{a}}GM^2/c\f$ (\f$G\f$ is
257  * Newton constant and \f$c\f$ is the speed of light).</dd>
258  * <dt>epsilon</dt><dd> The fractional mass loss \f$\epsilon\f$
259  * of the initial black hole mass in ringdown radiation.</dd>
260  * <dt>amplitude</dt><dd> The peak strain amplitude \f$h_0\f$ of the waveform,
261  * given by
262  * \f{equation}{
263  * h_0=\sqrt{\frac{5}{2}\epsilon}\left(\frac{GM}{c^2 r}\right)
264  * Q^{-\frac{1}{2}} F(Q)^{-\frac{1}{2}} g(a)^{-\frac{1}{2}},
265  * \f}
266  * where \f$F(Q) = 1 + 7/(24 Q^2)\f$, \f$g(a) = 1 - 0.63(1-a)^{3/10}\f$ and \f$r\f$
267  * is the distance to the trigger.</dd>
268  * <dt>snr</dt><dd> The signal-to-noise ratio of the trigger.</dd>
269  * <dt>eff_dist</dt><dd> The effective distance to the trigger source in
270  * megaparsecs (Mpc).</dd>
271  * <dt>sigma_sq</dt><dd> The variance of the matched filter used to find the
272  * trigger.</dd>
273  * </dl>
274  *
275  */
276 typedef struct
277 tagSnglRingdownTable
278 {
279  struct tagSnglRingdownTable *next;
301  long event_id;
302 }
304 
305 
306 typedef struct
307 tagMultiInspiralTable
308 {
309  struct tagMultiInspiralTable *next;
398  long event_id;
414 }
416 
417 
418 typedef struct
419 tagSimInspiralTable
420 {
421  struct tagSimInspiralTable *next;
472  CHAR numrel_data[LIGOMETA_STRING_MAX];
476 }
478 
479 
480 /**
481  * The \c SimBurst structure describes a burst injection.
482  */
483 typedef struct
484 tagSimBurst
485 {
486  struct tagSimBurst *next;
488  char waveform[LIGOMETA_WAVEFORM_MAX];
503  unsigned long waveform_number;
506 } SimBurst;
507 
508 
509 /**
510  * This structure contains the required information for generating a ringdown
511  * injection. The fields are:
512  * <dl>
513  * <dt>waveform</dt><dd> Description of the type of waveform to inject.</dd>
514  * <dt>coordinates</dt><dd> Type of coordinate system to perform injection.</dd>
515  * <dt>geocent_start_time</dt><dd> The GPS start time of the waveform at the
516  * center of the earth.</dd>
517  * <dt>h_start_time</dt><dd> The GPS start time of the waveform at the
518  * LIGO Hanford Observatory.</dd>
519  * <dt>l_start_time</dt><dd> The GPS start time of the waveform at the
520  * LIGO Livingston Observatory.</dd>
521  * <dt>v_start_time</dt><dd> The GPS start time of the waveform at the
522  * Virgo Observatory.</dd>
523  * <dt>start_time_gmst</dt><dd> The start time of the waveform at the
524  * in siderial time.</dd>
525  * <dt>longitude</dt><dd> The longitude of the source defined in the
526  * stated coordinate system.</dd>
527  * <dt>latitude</dt><dd> The latitude of the source defined in the
528  * stated coordinate system.</dd>
529  * <dt>distance</dt><dd> The distance to the source defined in the
530  * stated coordinate system in megaparsecs (Mpc).</dd>
531  * <dt>inclination</dt><dd> The inclination angle \f$\iota\f$ of the source.</dd>
532  * <dt>polarization</dt><dd> The polarization angle \f$\Psi\f$ of the source.</dd>
533  * <dt>frequency</dt><dd> The central frequency of the ringdown waveform
534  * (in Hz).</dd>
535  * <dt>quality</dt><dd> The quality factor \f$Q\f$ of the ringdown waveform.</dd>
536  * <dt>phase</dt><dd> The initial phase of the ringdown signal \f$\phi_0\f$.</dd>
537  * <dt>mass</dt><dd> The mass \f$M\f$ of the black hole (in solar
538  * masses, \f$M_\odot\f$).</dd>
539  * <dt>spin</dt><dd> The dimensionless spin parameter of the
540  * black hole \f${\hat{a}}\f$ where the spin is \f$S={\hat{a}}GM^2/c\f$ (\f$G\f$ is
541  * Newton constant and \f$c\f$ is the speed of light).</dd>
542  * <dt>epsilon</dt><dd> The fractional mass loss \f$\epsilon\f$
543  * of the initial black hole mass in ringdown radiation.</dd>
544  * <dt>amplitude</dt><dd> The peak strain amplitude \f$h_0\f$ of the waveform,
545  * given by
546  * \f{equation}{
547  * h_0=\sqrt{\frac{5}{2}\epsilon}\left(\frac{GM}{c^2 r}\right)
548  * Q^{-\frac{1}{2}} F(Q)^{-\frac{1}{2}} g(a)^{-\frac{1}{2}},
549  * \f}
550  * where \f$F(Q) = 1 + 7/(24 Q^2)\f$, \f$g(a) = 1 - 0.63(1-a)^{3/10}\f$ and \f$r\f$
551  * is the distance to the trigger.</dd>
552  * <dt>h_eff_dist</dt><dd> The effective distance to the source from the
553  * LIGO Hanford Observatory in megaparsecs (Mpc).</dd>
554  * <dt>l_eff_dist</dt><dd> The effective distance to the source from the
555  * LIGO Livingston Observatory in megaparsecs (Mpc).</dd>
556  * <dt>v_eff_dist</dt><dd> The effective distance to the source from the
557  * Virgo Observatory in megaparsecs (Mpc).</dd>
558  * <dt>hrss</dt><dd> Define.</dd>
559  * <dt>hrss_h</dt><dd> Define.</dd>
560  * <dt>hrss_l</dt><dd> Define.</dd>
561  * <dt>hrss_v</dt><dd> Define.</dd>
562  * </dl>
563  */
564 typedef struct
565 tagSimRingdownTable
566 {
567  struct tagSimRingdownTable *next;
595 }
597 
598 
599 typedef struct
600 tagExtTriggerTable
601 {
602  struct tagExtTriggerTable *next;
603  CHAR det_alts[LIGOMETA_STD];
604  CHAR det_band[LIGOMETA_STD];
605  CHAR det_fluence[LIGOMETA_STD];
606  CHAR det_fluence_int[LIGOMETA_STD];
607  CHAR det_name[LIGOMETA_STD];
608  CHAR det_peak[LIGOMETA_STD];
609  CHAR det_peak_int[LIGOMETA_STD];
610  CHAR det_snr[LIGOMETA_STD];
614  CHAR event_epoch[LIGOMETA_STD];
615  CHAR event_err_type[LIGOMETA_STD];
620  CHAR event_type[LIGOMETA_STD];
623  CHAR notice_comments[LIGOMETA_STD];
624  CHAR notice_id[LIGOMETA_STD];
625  CHAR notice_sequence[LIGOMETA_STD];
627  CHAR notice_type[LIGOMETA_STD];
628  CHAR notice_url[LIGOMETA_STD];
640  CHAR event_number_grb[8];
642  long event_id;
643 }
645 
646 
647 /**
648  * This structure corresponds to one row of a time_slide table.
649  */
650 typedef struct
651 tagTimeSlide
652 {
653  struct tagTimeSlide *next;
658 }
659 TimeSlide;
660 
661 typedef struct
662 tagSegmentTable
663 {
664  struct tagSegmentTable *next;
672 }
674 
675 
676 typedef struct
677 tagTimeSlideSegmentMapTable
678 {
679  struct tagTimeSlideSegmentMapTable *next;
682 }
684 
685 
686 #if 0
687 { /* so that editors will match succeeding brace */
688 #elif defined(__cplusplus)
689 }
690 #endif
691 
692 #endif /* _LIGOMETADATATABLES_H */
const char * program
#define LIGOMETA_STD
#define LIGOMETA_IFOS_MAX
#define LIGOMETA_STRING_MAX
#define LIGOMETA_SEARCH_MAX
#define LIGOMETA_INSPIRALTAPER_MAX
#define LIGOMETA_COMMENT_MAX
#define LIGOMETA_USERNAME_MAX
#define LIGOMETA_CVS_REPOSITORY_MAX
#define LIGOMETA_TYPE_MAX
#define LIGOMETA_NODE_MAX
#define LIGOMETA_WAVEFORM_MAX
#define LIGOMETA_CHANNEL_MAX
#define LIGOMETA_VERSION_MAX
#define LIGOMETA_PROGRAM_MAX
#define LIGOMETA_DOMAIN_MAX
#define LIGOMETA_COORDINATES_MAX
#define LIGOMETA_SOURCE_MAX
#define LIGOMETA_VALUE_MAX
#define LIGOMETA_PARAM_MAX
#define LIGOMETA_IFO_MAX
InterferometerNumber
The InterferometerNumber contains an enum type for describing the interferometer.
@ LAL_UNKNOWN_IFO
@ LAL_IFO_G1
@ LAL_NUM_IFO
@ LAL_IFO_H1
@ LAL_IFO_H2
@ LAL_IFO_T1
@ LAL_IFO_V1
@ LAL_IFO_L1
double REAL8
char CHAR
float complex COMPLEX8
int32_t INT4
float REAL4
string version
struct tagExtTriggerTable * next
struct tagMultiInspiralTable * next
struct tagProcessParamsTable * next
LIGOTimeGPS start_time
struct tagProcessTable * next
LIGOTimeGPS cvs_entry_time
LIGOTimeGPS end_time
struct tagSearchSummaryTable * next
LIGOTimeGPS end_time
LIGOTimeGPS start_time
struct tagSegmentTable * next
The SimBurst structure describes a burst injection.
struct tagSimBurst * next
LIGOTimeGPS time_geocent_gps
REAL8 pol_ellipse_angle
unsigned long waveform_number
REAL8 egw_over_rsquared
REAL8 time_geocent_gmst
LIGOTimeGPS geocent_end_time
struct tagSimInspiralTable * next
This structure contains the required information for generating a ringdown injection.
LIGOTimeGPS h_start_time
LIGOTimeGPS v_start_time
struct tagSimRingdownTable * next
LIGOTimeGPS geocent_start_time
LIGOTimeGPS l_start_time
LIGOTimeGPS start_time
LIGOTimeGPS peak_time
struct tagSnglBurst * next
struct tagSnglInspiralTable * next
This structure contains the required information for generating a ringdown template and storing ringd...
struct tagSnglRingdownTable * next
This structure corresponds to one row of a time_slide table.
struct tagTimeSlide * next
struct tagTimeSlideSegmentMapTable * next