LALApps 10.1.0.1-eeff03c
LIGOLwXMLlegacy.c
Go to the documentation of this file.
1/*
2* Copyright (C) 2007 Andres C. Rodriguez, Sukanta Bose, Alexander Dietz, Duncan Brown, Jolien Creighton, 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: LIGOLwXML.c
23 *
24 * Author: Brown, D. A.
25 *
26 *-----------------------------------------------------------------------
27 */
28
29/**
30 * \author Brown, D. A.
31 * \file
32 * \ingroup lalmetaio_general
33 *
34 * \brief Routines to write LIGO metadata database structures to LIGO lightweight XML files.
35 *
36 * ### Description ###
37 *
38 * The routine \c LALOpenLIGOLwXMLFile
39 *
40 * The routine \c LALCloseLIGOLwXMLFile prints the standard LIGO lightweight
41 * XML footer, \c LIGOLW_XML_FOOTER given in LIGOLwXMLHeaders.h, and closes
42 * the file stream pointed to by <tt>xml->fp</tt>.
43 *
44 * The routine \c LALBeginLIGOLwXMLTable prints the table header. The type of
45 * table to begin is specified by the \c table argument. The appropriate
46 * headers are again contained in LIGOLwXMLHeaders.h and contain the table name as
47 * well as the names and data types of each of the columns in the table. In
48 * addition, it sets <tt>xml->first</tt> to 1 and <tt>xml->table</tt> to the requested
49 * table.
50 *
51 * The routine \c LALEndLIGOLwXMLTable prints the table footer. This is the
52 * same for all tables, and given by \c LIGOLW_XML_TABLE_FOOTER in
53 * LIGOLwXMLHeaders.h. Additionally, <tt>xml->table</tt> is set to \c no_table.
54 *
55 * The routine \c LALWriteLIGOLwXMLTable writes the content of the xml table.
56 * The type of table to be written is specified by \c table. The contents of
57 * the table should be stored as a linked list in <tt>tablePtr->table</tt>. The data
58 * is written using the row format for the specified table given in
59 * LIGOLwXMLHeaders.h.
60 *
61 * ### Algorithm ###
62 *
63 * None.
64 *
65 * ### Uses ###
66 *
67 * <tt>fopen()</tt>
68 * <tt>XLALFilePrintf()</tt>
69 * <tt>fclose()</tt>
70 *
71 * ### Notes ###
72 *
73 * In order to change a table definition in LAL, changes must be made in
74 * several places. It is necessary to update the structure which is used to store
75 * the information in memory as well as the reading and writing codes. Below is a
76 * list of all the files which must be updated.
77 * <ul>
78 * <li> Update the LAL table definition in \ref LIGOMetadataTables.h</li>
79 *
80 * <li> Update the LIGOLwXML writing code:</li>
81 * <ol>
82 * <li> Change the table header written at to the LIGOLwXML file. This is
83 * \#defined in \ref LIGOLwXMLHeaders.h. For example, to change the
84 * \c sngl_inspiral table, you must edit \c LIGOLW_XML_SNGL_INSPIRAL.</li>
85 *
86 * <li> Change the row format of the LIGOLwXML file. This is \#defined in
87 * \ref LIGOLwXMLHeaders.h. For example, to change the <tt> sngl_inspiral</tt>
88 * table, you must edit \c SNGL_INSPIRAL_ROW.</li>
89 *
90 * <li> Change the XLALFilePrintf command which writes the table rows. This is contained
91 * in \ref LIGOLwXML.c.
92 * </ol>
93 *
94 * <li> Update the LIGOLwXML reading code:</li>
95 * <ol>
96 * <li> Add/remove columns from the table directory of the table in question.
97 * This is contained in \ref LIGOLwXMLRead.c, either in
98 * \c LALCreateMetaTableDir or in the specific reading function.</li>
99 *
100 * <li> Check that all columns read in from the XML table are stored in memory.
101 * This requires editing the table specific reading codes in
102 * \ref LIGOLwXMLRead.c.</li>
103 * </ol>
104 * </ul>
105 *
106 */
107
108
109#include <lal/LIGOLwXMLHeaders.h>
110#include <lal/LIGOMetadataTables.h>
111#include <LALAppsVCSInfo.h>
112#include "LIGOLwXMLlegacy.h"
113
114
115/**\name Error Codes */ /** @{ */
116#define LIGOLWXMLH_ENULL 1
117#define LIGOLWXMLH_ENNUL 2
118#define LIGOLWXMLH_EALOC 3
119#define LIGOLWXMLH_EUTAB 4
120#define LIGOLWXMLH_EOPEN 5
121#define LIGOLWXMLH_ECLOS 6
122#define LIGOLWXMLH_EBGNT 7
123#define LIGOLWXMLH_ENTAB 8
124#define LIGOLWXMLH_EENDT 8
125#define LIGOLWXMLH_ETMSM 9
126#define LIGOLWXMLH_ETNOP 10
127#define LIGOLWXMLH_MSGENULL "Null pointer"
128#define LIGOLWXMLH_MSGENNUL "Non-null pointer"
129#define LIGOLWXMLH_MSGEALOC "Memory allocation error"
130#define LIGOLWXMLH_MSGEUTAB "Unknown metadata table type"
131#define LIGOLWXMLH_MSGEOPEN "Error opening XML file"
132#define LIGOLWXMLH_MSGECLOS "Closing an XML file with an open table"
133#define LIGOLWXMLH_MSGEBGNT "Begining a table without ending previous table"
134#define LIGOLWXMLH_MSGENTAB "No table type specified"
135#define LIGOLWXMLH_MSGEENDT "Ending a table without an beginning a table"
136#define LIGOLWXMLH_MSGETMSM "Table type mismatch"
137#define LIGOLWXMLH_MSGETNOP "Table not begun for writing"
138/** @} */
139
140#define PRINT_LIGOLW_XML_HEADER(fp) XLALFilePuts( LAL_LIGOLW_XML_HEADER, fp )
141#define PRINT_LIGOLW_XML_FOOTER(fp) XLALFilePuts( LAL_LIGOLW_XML_FOOTER, fp )
142#define PRINT_LIGOLW_XML_TABLE_FOOTER(fp) XLALFilePuts( "\n </Stream>\n </Table>\n", fp )
143
144#define PRINT_LIGOLW_XML_PROCESS(fp) ( \
145XLALFilePuts( " <Table Name=\"process:table\">\n", fp ) == EOF || \
146XLALFilePuts( " <Column Name=\"program\" Type=\"lstring\"/>\n", fp ) == EOF || \
147XLALFilePuts( " <Column Name=\"version\" Type=\"lstring\"/>\n", fp ) == EOF || \
148XLALFilePuts( " <Column Name=\"cvs_repository\" Type=\"lstring\"/>\n", fp ) == EOF || \
149XLALFilePuts( " <Column Name=\"cvs_entry_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
150XLALFilePuts( " <Column Name=\"comment\" Type=\"lstring\"/>\n", fp ) == EOF || \
151XLALFilePuts( " <Column Name=\"is_online\" Type=\"int_4s\"/>\n", fp ) == EOF || \
152XLALFilePuts( " <Column Name=\"node\" Type=\"lstring\"/>\n", fp ) == EOF || \
153XLALFilePuts( " <Column Name=\"username\" Type=\"lstring\"/>\n", fp ) == EOF || \
154XLALFilePuts( " <Column Name=\"unix_procid\" Type=\"int_4s\"/>\n", fp ) == EOF || \
155XLALFilePuts( " <Column Name=\"start_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
156XLALFilePuts( " <Column Name=\"end_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
157XLALFilePuts( " <Column Name=\"jobid\" Type=\"int_4s\"/>\n", fp ) == EOF || \
158XLALFilePuts( " <Column Name=\"domain\" Type=\"lstring\"/>\n", fp ) == EOF || \
159XLALFilePuts( " <Column Name=\"ifos\" Type=\"lstring\"/>\n", fp ) == EOF || \
160XLALFilePuts( " <Column Name=\"process_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
161XLALFilePuts( " <Stream Name=\"process:table\" Type=\"Local\" Delimiter=\",\">\n", fp ) == EOF )
162
163#define PROCESS_ROW \
164" \"%s\",\"%s\",\"%s\",%d,\"%s\",%d,\"%s\",\"%s\",%d,%d,%d,%d,\"%s\",\"%s\",\"process:process_id:0\""
165
166#define PRINT_LIGOLW_XML_PROCESS_PARAMS(fp) ( \
167XLALFilePuts( " <Table Name=\"process_params:table\">\n", fp ) == EOF || \
168XLALFilePuts( " <Column Name=\"program\" Type=\"lstring\"/>\n", fp ) == EOF || \
169XLALFilePuts( " <Column Name=\"process:process_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
170XLALFilePuts( " <Column Name=\"param\" Type=\"lstring\"/>\n", fp ) == EOF || \
171XLALFilePuts( " <Column Name=\"type\" Type=\"lstring\"/>\n", fp ) == EOF || \
172XLALFilePuts( " <Column Name=\"value\" Type=\"lstring\"/>\n", fp ) == EOF || \
173XLALFilePuts( " <Stream Name=\"process_params:table\" Type=\"Local\" Delimiter=\",\">\n", fp ) == EOF )
174
175#define PROCESS_PARAMS_ROW \
176" \"%s\",\"process:process_id:0\",\"%s\",\"%s\",\"%s\""
177
178#define PRINT_LIGOLW_XML_SEARCH_SUMMARY(fp) ( \
179XLALFilePuts( " <Table Name=\"search_summary:table\">\n", fp ) == EOF || \
180XLALFilePuts( " <Column Name=\"process:process_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
181XLALFilePuts( " <Column Name=\"shared_object\" Type=\"lstring\"/>\n", fp ) == EOF || \
182XLALFilePuts( " <Column Name=\"lalwrapper_cvs_tag\" Type=\"lstring\"/>\n", fp ) == EOF || \
183XLALFilePuts( " <Column Name=\"lal_cvs_tag\" Type=\"lstring\"/>\n", fp ) == EOF || \
184XLALFilePuts( " <Column Name=\"comment\" Type=\"lstring\"/>\n", fp ) == EOF || \
185XLALFilePuts( " <Column Name=\"ifos\" Type=\"lstring\"/>\n", fp ) == EOF || \
186XLALFilePuts( " <Column Name=\"in_start_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
187XLALFilePuts( " <Column Name=\"in_start_time_ns\" Type=\"int_4s\"/>\n", fp ) == EOF || \
188XLALFilePuts( " <Column Name=\"in_end_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
189XLALFilePuts( " <Column Name=\"in_end_time_ns\" Type=\"int_4s\"/>\n", fp ) == EOF || \
190XLALFilePuts( " <Column Name=\"out_start_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
191XLALFilePuts( " <Column Name=\"out_start_time_ns\" Type=\"int_4s\"/>\n", fp ) == EOF || \
192XLALFilePuts( " <Column Name=\"out_end_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
193XLALFilePuts( " <Column Name=\"out_end_time_ns\" Type=\"int_4s\"/>\n", fp ) == EOF || \
194XLALFilePuts( " <Column Name=\"nevents\" Type=\"int_4s\"/>\n", fp ) == EOF || \
195XLALFilePuts( " <Column Name=\"nnodes\" Type=\"int_4s\"/>\n", fp ) == EOF || \
196XLALFilePuts( " <Stream Name=\"search_summary:table\" Type=\"Local\" Delimiter=\",\">\n", fp ) == EOF )
197
198#define SEARCH_SUMMARY_ROW \
199" \"process:process_id:0\",\"standalone\",\"\",\"%s\",\"%s\",\"%s\",%d,%d,%d,%d,%d,%d,%d,%d,%d,%d"
200
201#define PRINT_LIGOLW_XML_SNGL_RINGDOWN(fp) ( \
202XLALFilePuts( " <Table Name=\"sngl_ringdown:table\">\n", fp ) == EOF || \
203XLALFilePuts( " <Column Name=\"process:process_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
204XLALFilePuts( " <Column Name=\"ifo\" Type=\"lstring\"/>\n", fp ) == EOF || \
205XLALFilePuts( " <Column Name=\"channel\" Type=\"lstring\"/>\n", fp ) == EOF || \
206XLALFilePuts( " <Column Name=\"start_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
207XLALFilePuts( " <Column Name=\"start_time_ns\" Type=\"int_4s\"/>\n", fp ) == EOF || \
208XLALFilePuts( " <Column Name=\"start_time_gmst\" Type=\"real_8\"/>\n", fp ) == EOF || \
209XLALFilePuts( " <Column Name=\"frequency\" Type=\"real_4\"/>\n" , fp ) == EOF || \
210XLALFilePuts( " <Column Name=\"quality\" Type=\"real_4\"/>\n" , fp ) == EOF || \
211XLALFilePuts( " <Column Name=\"phase\" Type=\"real_4\"/>\n" , fp ) == EOF || \
212XLALFilePuts( " <Column Name=\"mass\" Type=\"real_4\"/>\n" , fp ) == EOF || \
213XLALFilePuts( " <Column Name=\"spin\" Type=\"real_4\"/>\n" , fp ) == EOF || \
214XLALFilePuts( " <Column Name=\"epsilon\" Type=\"real_4\"/>\n" , fp ) == EOF || \
215XLALFilePuts( " <Column Name=\"num_clust_trigs\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
216XLALFilePuts( " <Column Name=\"ds2_H1H2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
217XLALFilePuts( " <Column Name=\"ds2_H1L1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
218XLALFilePuts( " <Column Name=\"ds2_H1V1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
219XLALFilePuts( " <Column Name=\"ds2_H2L1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
220XLALFilePuts( " <Column Name=\"ds2_H2V1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
221XLALFilePuts( " <Column Name=\"ds2_L1V1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
222XLALFilePuts( " <Column Name=\"amplitude\" Type=\"real_4\"/>\n" , fp ) == EOF || \
223XLALFilePuts( " <Column Name=\"snr\" Type=\"real_4\"/>\n" , fp ) == EOF || \
224XLALFilePuts( " <Column Name=\"eff_dist\" Type=\"real_4\"/>\n" , fp ) == EOF || \
225XLALFilePuts( " <Column Name=\"sigma_sq\" Type=\"real_8\"/>\n", fp ) == EOF || \
226XLALFilePuts( " <Column Name=\"event_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
227XLALFilePuts( " <Stream Name=\"sngl_ringdown:table\" Type=\"Local\" Delimiter=\",\">\n", fp ) == EOF )
228
229#define SNGL_RINGDOWN_ROW \
230" \"process:process_id:0\",\"%s\",\"%s\",%d,%d,%22.16e,%e,%e,%e,%e,%e,%e,%d,%e,%e,%e,%e,%e,%e,%e,%e,%e,%22.16e,\"sngl_ringdown:event_id:%" LAL_UINT8_FORMAT "\""
231
232#define PRINT_LIGOLW_XML_SIM_RINGDOWN(fp) ( \
233XLALFilePuts( " <Table Name=\"sim_ringdown:table\">\n" , fp ) == EOF || \
234XLALFilePuts( " <Column Name=\"process:process_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
235XLALFilePuts( " <Column Name=\"waveform\" Type=\"lstring\"/>\n" , fp ) == EOF || \
236XLALFilePuts( " <Column Name=\"coordinates\" Type=\"lstring\"/>\n" , fp ) == EOF || \
237XLALFilePuts( " <Column Name=\"geocent_start_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
238XLALFilePuts( " <Column Name=\"geocent_start_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
239XLALFilePuts( " <Column Name=\"h_start_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
240XLALFilePuts( " <Column Name=\"h_start_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
241XLALFilePuts( " <Column Name=\"l_start_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
242XLALFilePuts( " <Column Name=\"l_start_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
243XLALFilePuts( " <Column Name=\"v_start_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
244XLALFilePuts( " <Column Name=\"v_start_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
245XLALFilePuts( " <Column Name=\"start_time_gmst\" Type=\"real_8\"/>\n" , fp ) == EOF || \
246XLALFilePuts( " <Column Name=\"longitude\" Type=\"real_4\"/>\n" , fp ) == EOF || \
247XLALFilePuts( " <Column Name=\"latitude\" Type=\"real_4\"/>\n" , fp ) == EOF || \
248XLALFilePuts( " <Column Name=\"distance\" Type=\"real_4\"/>\n" , fp ) == EOF || \
249XLALFilePuts( " <Column Name=\"inclination\" Type=\"real_4\"/>\n" , fp ) == EOF || \
250XLALFilePuts( " <Column Name=\"polarization\" Type=\"real_4\"/>\n" , fp ) == EOF || \
251XLALFilePuts( " <Column Name=\"frequency\" Type=\"real_4\"/>\n" , fp ) == EOF || \
252XLALFilePuts( " <Column Name=\"quality\" Type=\"real_4\"/>\n" , fp ) == EOF || \
253XLALFilePuts( " <Column Name=\"phase\" Type=\"real_4\"/>\n" , fp ) == EOF || \
254XLALFilePuts( " <Column Name=\"mass\" Type=\"real_4\"/>\n" , fp ) == EOF || \
255XLALFilePuts( " <Column Name=\"spin\" Type=\"real_4\"/>\n" , fp ) == EOF || \
256XLALFilePuts( " <Column Name=\"epsilon\" Type=\"real_4\"/>\n" , fp ) == EOF || \
257XLALFilePuts( " <Column Name=\"amplitude\" Type=\"real_4\"/>\n" , fp ) == EOF || \
258XLALFilePuts( " <Column Name=\"eff_dist_h\" Type=\"real_4\"/>\n" , fp ) == EOF || \
259XLALFilePuts( " <Column Name=\"eff_dist_l\" Type=\"real_4\"/>\n" , fp ) == EOF || \
260XLALFilePuts( " <Column Name=\"eff_dist_v\" Type=\"real_4\"/>\n" , fp ) == EOF || \
261XLALFilePuts( " <Column Name=\"hrss\" Type=\"real_4\"/>\n" , fp ) == EOF || \
262XLALFilePuts( " <Column Name=\"hrss_h\" Type=\"real_4\"/>\n" , fp ) == EOF || \
263XLALFilePuts( " <Column Name=\"hrss_l\" Type=\"real_4\"/>\n" , fp ) == EOF || \
264XLALFilePuts( " <Column Name=\"hrss_v\" Type=\"real_4\"/>\n" , fp ) == EOF || \
265XLALFilePuts( " <Column Name=\"simulation_id\" Type=\"ilwd:char\"/>\n" , fp ) == EOF || \
266XLALFilePuts( " <Stream Name=\"sim_ringdown:table\" Type=\"Local\" Delimiter=\",\">\n", fp ) == EOF )
267
268#define SIM_RINGDOWN_ROW \
269 " \"process:process_id:0\",\"%s\",\"%s\",%d,%d,%d,%d,%d,%d,%d,%d,%22.16e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,\"sim_ringdown:simulation_id:%" LAL_UINT8_FORMAT "\""
270
271#define PRINT_LIGOLW_XML_SNGL_INSPIRAL(fp) ( \
272XLALFilePuts( " <Table Name=\"sngl_inspiral:table\">\n", fp ) == EOF || \
273XLALFilePuts( " <Column Name=\"process:process_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
274XLALFilePuts( " <Column Name=\"ifo\" Type=\"lstring\"/>\n", fp ) == EOF || \
275XLALFilePuts( " <Column Name=\"search\" Type=\"lstring\"/>\n", fp ) == EOF || \
276XLALFilePuts( " <Column Name=\"channel\" Type=\"lstring\"/>\n", fp ) == EOF || \
277XLALFilePuts( " <Column Name=\"end_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
278XLALFilePuts( " <Column Name=\"end_time_ns\" Type=\"int_4s\"/>\n", fp ) == EOF || \
279XLALFilePuts( " <Column Name=\"end_time_gmst\" Type=\"real_8\"/>\n", fp ) == EOF || \
280XLALFilePuts( " <Column Name=\"impulse_time\" Type=\"int_4s\"/>\n", fp ) == EOF || \
281XLALFilePuts( " <Column Name=\"impulse_time_ns\" Type=\"int_4s\"/>\n", fp ) == EOF || \
282XLALFilePuts( " <Column Name=\"template_duration\" Type=\"real_8\"/>\n", fp ) == EOF || \
283XLALFilePuts( " <Column Name=\"event_duration\" Type=\"real_8\"/>\n", fp ) == EOF || \
284XLALFilePuts( " <Column Name=\"amplitude\" Type=\"real_4\"/>\n", fp ) == EOF || \
285XLALFilePuts( " <Column Name=\"eff_distance\" Type=\"real_4\"/>\n", fp ) == EOF || \
286XLALFilePuts( " <Column Name=\"coa_phase\" Type=\"real_4\"/>\n", fp ) == EOF || \
287XLALFilePuts( " <Column Name=\"mass1\" Type=\"real_4\"/>\n", fp ) == EOF || \
288XLALFilePuts( " <Column Name=\"mass2\" Type=\"real_4\"/>\n", fp ) == EOF || \
289XLALFilePuts( " <Column Name=\"mchirp\" Type=\"real_4\"/>\n", fp ) == EOF || \
290XLALFilePuts( " <Column Name=\"mtotal\" Type=\"real_4\"/>\n", fp ) == EOF || \
291XLALFilePuts( " <Column Name=\"eta\" Type=\"real_4\"/>\n", fp ) == EOF || \
292XLALFilePuts( " <Column Name=\"kappa\" Type=\"real_4\"/>\n", fp ) == EOF || \
293XLALFilePuts( " <Column Name=\"chi\" Type=\"real_4\"/>\n", fp ) == EOF || \
294XLALFilePuts( " <Column Name=\"tau0\" Type=\"real_4\"/>\n", fp ) == EOF || \
295XLALFilePuts( " <Column Name=\"tau2\" Type=\"real_4\"/>\n", fp ) == EOF || \
296XLALFilePuts( " <Column Name=\"tau3\" Type=\"real_4\"/>\n", fp ) == EOF || \
297XLALFilePuts( " <Column Name=\"tau4\" Type=\"real_4\"/>\n", fp ) == EOF || \
298XLALFilePuts( " <Column Name=\"tau5\" Type=\"real_4\"/>\n", fp ) == EOF || \
299XLALFilePuts( " <Column Name=\"ttotal\" Type=\"real_4\"/>\n", fp ) == EOF || \
300XLALFilePuts( " <Column Name=\"psi0\" Type=\"real_4\"/>\n", fp ) == EOF || \
301XLALFilePuts( " <Column Name=\"psi3\" Type=\"real_4\"/>\n", fp ) == EOF || \
302XLALFilePuts( " <Column Name=\"alpha\" Type=\"real_4\"/>\n", fp ) == EOF || \
303XLALFilePuts( " <Column Name=\"alpha1\" Type=\"real_4\"/>\n", fp ) == EOF || \
304XLALFilePuts( " <Column Name=\"alpha2\" Type=\"real_4\"/>\n", fp ) == EOF || \
305XLALFilePuts( " <Column Name=\"alpha3\" Type=\"real_4\"/>\n", fp ) == EOF || \
306XLALFilePuts( " <Column Name=\"alpha4\" Type=\"real_4\"/>\n", fp ) == EOF || \
307XLALFilePuts( " <Column Name=\"alpha5\" Type=\"real_4\"/>\n", fp ) == EOF || \
308XLALFilePuts( " <Column Name=\"alpha6\" Type=\"real_4\"/>\n", fp ) == EOF || \
309XLALFilePuts( " <Column Name=\"beta\" Type=\"real_4\"/>\n", fp ) == EOF || \
310XLALFilePuts( " <Column Name=\"f_final\" Type=\"real_4\"/>\n", fp ) == EOF || \
311XLALFilePuts( " <Column Name=\"snr\" Type=\"real_4\"/>\n", fp ) == EOF || \
312XLALFilePuts( " <Column Name=\"chisq\" Type=\"real_4\"/>\n", fp ) == EOF || \
313XLALFilePuts( " <Column Name=\"chisq_dof\" Type=\"int_4s\"/>\n", fp ) == EOF || \
314XLALFilePuts( " <Column Name=\"bank_chisq\" Type=\"real_4\"/>\n", fp ) == EOF || \
315XLALFilePuts( " <Column Name=\"bank_chisq_dof\" Type=\"int_4s\"/>\n", fp ) == EOF || \
316XLALFilePuts( " <Column Name=\"cont_chisq\" Type=\"real_4\"/>\n", fp ) == EOF || \
317XLALFilePuts( " <Column Name=\"cont_chisq_dof\" Type=\"int_4s\"/>\n", fp ) == EOF || \
318XLALFilePuts( " <Column Name=\"sigmasq\" Type=\"real_8\"/>\n", fp ) == EOF || \
319XLALFilePuts( " <Column Name=\"rsqveto_duration\" Type=\"real_4\"/>\n", fp ) == EOF || \
320XLALFilePuts( " <Column Name=\"Gamma0\" Type=\"real_4\"/>\n", fp ) == EOF || \
321XLALFilePuts( " <Column Name=\"Gamma1\" Type=\"real_4\"/>\n", fp ) == EOF || \
322XLALFilePuts( " <Column Name=\"Gamma2\" Type=\"real_4\"/>\n", fp ) == EOF || \
323XLALFilePuts( " <Column Name=\"Gamma3\" Type=\"real_4\"/>\n", fp ) == EOF || \
324XLALFilePuts( " <Column Name=\"Gamma4\" Type=\"real_4\"/>\n", fp ) == EOF || \
325XLALFilePuts( " <Column Name=\"Gamma5\" Type=\"real_4\"/>\n", fp ) == EOF || \
326XLALFilePuts( " <Column Name=\"Gamma6\" Type=\"real_4\"/>\n", fp ) == EOF || \
327XLALFilePuts( " <Column Name=\"Gamma7\" Type=\"real_4\"/>\n", fp ) == EOF || \
328XLALFilePuts( " <Column Name=\"Gamma8\" Type=\"real_4\"/>\n", fp ) == EOF || \
329XLALFilePuts( " <Column Name=\"Gamma9\" Type=\"real_4\"/>\n", fp ) == EOF || \
330XLALFilePuts( " <Column Name=\"spin1x\" Type=\"real_4\"/>\n", fp ) == EOF || \
331XLALFilePuts( " <Column Name=\"spin1y\" Type=\"real_4\"/>\n", fp ) == EOF || \
332XLALFilePuts( " <Column Name=\"spin1z\" Type=\"real_4\"/>\n", fp ) == EOF || \
333XLALFilePuts( " <Column Name=\"spin2x\" Type=\"real_4\"/>\n", fp ) == EOF || \
334XLALFilePuts( " <Column Name=\"spin2y\" Type=\"real_4\"/>\n", fp ) == EOF || \
335XLALFilePuts( " <Column Name=\"spin2z\" Type=\"real_4\"/>\n", fp ) == EOF || \
336XLALFilePuts( " <Column Name=\"event_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
337XLALFilePuts( " <Stream Name=\"sngl_inspiral:table\" Type=\"Local\" Delimiter=\",\">\n", fp ) == EOF )
338
339#define SNGL_INSPIRAL_ROW \
340" \"process:process_id:%ld\",\"%s\",\"%s\",\"%s\",%d,%d,%22.16e,%d,%d,%22.16e,%22.16e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%d,%e,%d,%e,%d,%22.16e,%e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,%.8e,\"sngl_inspiral:event_id:%ld\""
341
342#define PRINT_LIGOLW_XML_MULTI_INSPIRAL(fp) ( \
343XLALFilePuts( " <Table Name=\"multi_inspiral:table\">\n" , fp ) == EOF || \
344XLALFilePuts( " <Column Name=\"process:process_id\" Type=\"ilwd:char\"/>\n" , fp ) == EOF || \
345XLALFilePuts( " <Column Name=\"ifos\" Type=\"lstring\"/>\n" , fp ) == EOF || \
346XLALFilePuts( " <Column Name=\"search\" Type=\"lstring\"/>\n" , fp ) == EOF || \
347XLALFilePuts( " <Column Name=\"end_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
348XLALFilePuts( " <Column Name=\"end_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
349XLALFilePuts( " <Column Name=\"end_time_gmst\" Type=\"real_8\"/>\n" , fp ) == EOF || \
350XLALFilePuts( " <Column Name=\"impulse_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
351XLALFilePuts( " <Column Name=\"impulse_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
352XLALFilePuts( " <Column Name=\"amplitude\" Type=\"real_4\"/>\n" , fp ) == EOF || \
353XLALFilePuts( " <Column Name=\"distance\" Type=\"real_4\"/>\n" , fp ) == EOF || \
354XLALFilePuts( " <Column Name=\"eff_dist_h1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
355XLALFilePuts( " <Column Name=\"eff_dist_h2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
356XLALFilePuts( " <Column Name=\"eff_dist_l\" Type=\"real_4\"/>\n" , fp ) == EOF || \
357XLALFilePuts( " <Column Name=\"eff_dist_g\" Type=\"real_4\"/>\n" , fp ) == EOF || \
358XLALFilePuts( " <Column Name=\"eff_dist_t\" Type=\"real_4\"/>\n" , fp ) == EOF || \
359XLALFilePuts( " <Column Name=\"eff_dist_v\" Type=\"real_4\"/>\n" , fp ) == EOF || \
360XLALFilePuts( " <Column Name=\"eff_dist_h1h2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
361XLALFilePuts( " <Column Name=\"coa_phase\" Type=\"real_4\"/>\n" , fp ) == EOF || \
362XLALFilePuts( " <Column Name=\"mass1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
363XLALFilePuts( " <Column Name=\"mass2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
364XLALFilePuts( " <Column Name=\"mchirp\" Type=\"real_4\"/>\n" , fp ) == EOF || \
365XLALFilePuts( " <Column Name=\"eta\" Type=\"real_4\"/>\n" , fp ) == EOF || \
366XLALFilePuts( " <Column Name=\"chi\" Type=\"real_4\"/>\n" , fp ) == EOF || \
367XLALFilePuts( " <Column Name=\"kappa\" Type=\"real_4\"/>\n" , fp ) == EOF || \
368XLALFilePuts( " <Column Name=\"tau0\" Type=\"real_4\"/>\n" , fp ) == EOF || \
369XLALFilePuts( " <Column Name=\"tau2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
370XLALFilePuts( " <Column Name=\"tau3\" Type=\"real_4\"/>\n" , fp ) == EOF || \
371XLALFilePuts( " <Column Name=\"tau4\" Type=\"real_4\"/>\n" , fp ) == EOF || \
372XLALFilePuts( " <Column Name=\"tau5\" Type=\"real_4\"/>\n" , fp ) == EOF || \
373XLALFilePuts( " <Column Name=\"ttotal\" Type=\"real_4\"/>\n" , fp ) == EOF || \
374XLALFilePuts( " <Column Name=\"snr\" Type=\"real_4\"/>\n" , fp ) == EOF || \
375XLALFilePuts( " <Column Name=\"snr_dof\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
376XLALFilePuts( " <Column Name=\"chisq\" Type=\"real_4\"/>\n" , fp ) == EOF || \
377XLALFilePuts( " <Column Name=\"chisq_dof\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
378XLALFilePuts( " <Column Name=\"bank_chisq\" Type=\"real_4\"/>\n" , fp ) == EOF || \
379XLALFilePuts( " <Column Name=\"bank_chisq_dof\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
380XLALFilePuts( " <Column Name=\"cont_chisq\" Type=\"real_4\"/>\n" , fp ) == EOF || \
381XLALFilePuts( " <Column Name=\"cont_chisq_dof\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
382XLALFilePuts( " <Column Name=\"trace_snr\" Type=\"real_4\"/>\n" , fp ) == EOF || \
383XLALFilePuts( " <Column Name=\"snr_h1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
384XLALFilePuts( " <Column Name=\"snr_h2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
385XLALFilePuts( " <Column Name=\"snr_l\" Type=\"real_4\"/>\n" , fp ) == EOF || \
386XLALFilePuts( " <Column Name=\"snr_g\" Type=\"real_4\"/>\n" , fp ) == EOF || \
387XLALFilePuts( " <Column Name=\"snr_t\" Type=\"real_4\"/>\n" , fp ) == EOF || \
388XLALFilePuts( " <Column Name=\"snr_v\" Type=\"real_4\"/>\n" , fp ) == EOF || \
389XLALFilePuts( " <Column Name=\"amp_term_1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
390XLALFilePuts( " <Column Name=\"amp_term_2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
391XLALFilePuts( " <Column Name=\"amp_term_3\" Type=\"real_4\"/>\n" , fp ) == EOF || \
392XLALFilePuts( " <Column Name=\"amp_term_4\" Type=\"real_4\"/>\n" , fp ) == EOF || \
393XLALFilePuts( " <Column Name=\"amp_term_5\" Type=\"real_4\"/>\n" , fp ) == EOF || \
394XLALFilePuts( " <Column Name=\"amp_term_6\" Type=\"real_4\"/>\n" , fp ) == EOF || \
395XLALFilePuts( " <Column Name=\"amp_term_7\" Type=\"real_4\"/>\n" , fp ) == EOF || \
396XLALFilePuts( " <Column Name=\"amp_term_8\" Type=\"real_4\"/>\n" , fp ) == EOF || \
397XLALFilePuts( " <Column Name=\"amp_term_9\" Type=\"real_4\"/>\n" , fp ) == EOF || \
398XLALFilePuts( " <Column Name=\"amp_term_10\" Type=\"real_4\"/>\n" , fp ) == EOF || \
399XLALFilePuts( " <Column Name=\"sigmasq_h1\" Type=\"real_8\"/>\n" , fp ) == EOF || \
400XLALFilePuts( " <Column Name=\"sigmasq_h2\" Type=\"real_8\"/>\n" , fp ) == EOF || \
401XLALFilePuts( " <Column Name=\"sigmasq_l\" Type=\"real_8\"/>\n" , fp ) == EOF || \
402XLALFilePuts( " <Column Name=\"sigmasq_g\" Type=\"real_8\"/>\n" , fp ) == EOF || \
403XLALFilePuts( " <Column Name=\"sigmasq_t\" Type=\"real_8\"/>\n" , fp ) == EOF || \
404XLALFilePuts( " <Column Name=\"sigmasq_v\" Type=\"real_8\"/>\n" , fp ) == EOF || \
405XLALFilePuts( " <Column Name=\"chisq_h1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
406XLALFilePuts( " <Column Name=\"chisq_h2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
407XLALFilePuts( " <Column Name=\"chisq_l\" Type=\"real_4\"/>\n" , fp ) == EOF || \
408XLALFilePuts( " <Column Name=\"chisq_g\" Type=\"real_4\"/>\n" , fp ) == EOF || \
409XLALFilePuts( " <Column Name=\"chisq_t\" Type=\"real_4\"/>\n" , fp ) == EOF || \
410XLALFilePuts( " <Column Name=\"chisq_v\" Type=\"real_4\"/>\n" , fp ) == EOF || \
411XLALFilePuts( " <Column Name=\"sngl_chisq_dof\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
412XLALFilePuts( " <Column Name=\"bank_chisq_h1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
413XLALFilePuts( " <Column Name=\"bank_chisq_h2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
414XLALFilePuts( " <Column Name=\"bank_chisq_l\" Type=\"real_4\"/>\n" , fp ) == EOF || \
415XLALFilePuts( " <Column Name=\"bank_chisq_g\" Type=\"real_4\"/>\n" , fp ) == EOF || \
416XLALFilePuts( " <Column Name=\"bank_chisq_t\" Type=\"real_4\"/>\n" , fp ) == EOF || \
417XLALFilePuts( " <Column Name=\"bank_chisq_v\" Type=\"real_4\"/>\n" , fp ) == EOF || \
418XLALFilePuts( " <Column Name=\"sngl_bank_chisq_dof\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
419XLALFilePuts( " <Column Name=\"cont_chisq_h1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
420XLALFilePuts( " <Column Name=\"cont_chisq_h2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
421XLALFilePuts( " <Column Name=\"cont_chisq_l\" Type=\"real_4\"/>\n" , fp ) == EOF || \
422XLALFilePuts( " <Column Name=\"cont_chisq_g\" Type=\"real_4\"/>\n" , fp ) == EOF || \
423XLALFilePuts( " <Column Name=\"cont_chisq_t\" Type=\"real_4\"/>\n" , fp ) == EOF || \
424XLALFilePuts( " <Column Name=\"cont_chisq_v\" Type=\"real_4\"/>\n" , fp ) == EOF || \
425XLALFilePuts( " <Column Name=\"sngl_cont_chisq_dof\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
426XLALFilePuts( " <Column Name=\"ra\" Type=\"real_4\"/>\n" , fp ) == EOF || \
427XLALFilePuts( " <Column Name=\"dec\" Type=\"real_4\"/>\n" , fp ) == EOF || \
428XLALFilePuts( " <Column Name=\"ligo_angle\" Type=\"real_4\"/>\n" , fp ) == EOF || \
429XLALFilePuts( " <Column Name=\"ligo_angle_sig\" Type=\"real_4\"/>\n" , fp ) == EOF || \
430XLALFilePuts( " <Column Name=\"inclination\" Type=\"real_4\"/>\n" , fp ) == EOF || \
431XLALFilePuts( " <Column Name=\"polarization\" Type=\"real_4\"/>\n" , fp ) == EOF || \
432XLALFilePuts( " <Column Name=\"null_statistic\" Type=\"real_4\"/>\n" , fp ) == EOF || \
433XLALFilePuts( " <Column Name=\"null_stat_h1h2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
434XLALFilePuts( " <Column Name=\"null_stat_degen\" Type=\"real_4\"/>\n" , fp ) == EOF || \
435XLALFilePuts( " <Column Name=\"event_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
436XLALFilePuts( " <Column Name=\"h1quad_re\" Type=\"real_4\"/>\n" , fp ) == EOF || \
437XLALFilePuts( " <Column Name=\"h1quad_im\" Type=\"real_4\"/>\n" , fp ) == EOF || \
438XLALFilePuts( " <Column Name=\"h2quad_re\" Type=\"real_4\"/>\n" , fp ) == EOF || \
439XLALFilePuts( " <Column Name=\"h2quad_im\" Type=\"real_4\"/>\n" , fp ) == EOF || \
440XLALFilePuts( " <Column Name=\"l1quad_re\" Type=\"real_4\"/>\n" , fp ) == EOF || \
441XLALFilePuts( " <Column Name=\"l1quad_im\" Type=\"real_4\"/>\n" , fp ) == EOF || \
442XLALFilePuts( " <Column Name=\"g1quad_re\" Type=\"real_4\"/>\n" , fp ) == EOF || \
443XLALFilePuts( " <Column Name=\"g1quad_im\" Type=\"real_4\"/>\n" , fp ) == EOF || \
444XLALFilePuts( " <Column Name=\"t1quad_re\" Type=\"real_4\"/>\n" , fp ) == EOF || \
445XLALFilePuts( " <Column Name=\"t1quad_im\" Type=\"real_4\"/>\n" , fp ) == EOF || \
446XLALFilePuts( " <Column Name=\"v1quad_re\" Type=\"real_4\"/>\n" , fp ) == EOF || \
447XLALFilePuts( " <Column Name=\"v1quad_im\" Type=\"real_4\"/>\n" , fp ) == EOF || \
448XLALFilePuts( " <Column Name=\"coh_snr_h1h2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
449XLALFilePuts( " <Column Name=\"cohSnrSqLocal\" Type=\"real_4\"/>\n" , fp ) == EOF || \
450XLALFilePuts( " <Column Name=\"autoCorrCohSq\" Type=\"real_4\"/>\n" , fp ) == EOF || \
451XLALFilePuts( " <Column Name=\"crossCorrCohSq\" Type=\"real_4\"/>\n" , fp ) == EOF || \
452XLALFilePuts( " <Column Name=\"autoCorrNullSq\" Type=\"real_4\"/>\n" , fp ) == EOF || \
453XLALFilePuts( " <Column Name=\"crossCorrNullSq\" Type=\"real_4\"/>\n" , fp ) == EOF || \
454XLALFilePuts( " <Column Name=\"ampMetricEigenVal1\" Type=\"real_8\"/>\n" , fp ) == EOF || \
455XLALFilePuts( " <Column Name=\"ampMetricEigenVal2\" Type=\"real_8\"/>\n" , fp ) == EOF || \
456XLALFilePuts( " <Column Name=\"time_slide:time_slide_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
457XLALFilePuts( " <Stream Name=\"multi_inspiral:table\" Type=\"Local\" Delimiter=\",\">\n", fp ) == EOF )
458
459#define MULTI_INSPIRAL_ROW \
460 " \"process:process_id:0\",\"%s\",\"%s\",%d,%d,%22.16e,%d,%d,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%d,%e,%d,%e,%d,%e,%d,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%d,%e,%e,%e,%e,%e,%e,%d,%e,%e,%e,%e,%e,%e,%d,%e,%e,%e,%e,%e,%e,%e,%e,%e,\"multi_inspiral:event_id:%" LAL_INT8_FORMAT "\",%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,\"time_slide:time_slide_id:%" LAL_INT8_FORMAT "\""
461
462#define PRINT_LIGOLW_XML_SIM_INSPIRAL(fp) ( \
463XLALFilePuts( " <Table Name=\"sim_inspiral:table\">\n" , fp ) == EOF || \
464XLALFilePuts( " <Column Name=\"process:process_id\" Type=\"ilwd:char\"/>\n", fp ) == EOF || \
465XLALFilePuts( " <Column Name=\"waveform\" Type=\"lstring\"/>\n" , fp ) == EOF || \
466XLALFilePuts( " <Column Name=\"geocent_end_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
467XLALFilePuts( " <Column Name=\"geocent_end_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
468XLALFilePuts( " <Column Name=\"h_end_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
469XLALFilePuts( " <Column Name=\"h_end_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
470XLALFilePuts( " <Column Name=\"l_end_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
471XLALFilePuts( " <Column Name=\"l_end_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
472XLALFilePuts( " <Column Name=\"g_end_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
473XLALFilePuts( " <Column Name=\"g_end_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
474XLALFilePuts( " <Column Name=\"t_end_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
475XLALFilePuts( " <Column Name=\"t_end_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
476XLALFilePuts( " <Column Name=\"v_end_time\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
477XLALFilePuts( " <Column Name=\"v_end_time_ns\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
478XLALFilePuts( " <Column Name=\"end_time_gmst\" Type=\"real_8\"/>\n" , fp ) == EOF || \
479XLALFilePuts( " <Column Name=\"source\" Type=\"lstring\"/>\n" , fp ) == EOF || \
480XLALFilePuts( " <Column Name=\"mass1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
481XLALFilePuts( " <Column Name=\"mass2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
482XLALFilePuts( " <Column Name=\"mchirp\" Type=\"real_4\"/>\n" , fp ) == EOF || \
483XLALFilePuts( " <Column Name=\"eta\" Type=\"real_4\"/>\n" , fp ) == EOF || \
484XLALFilePuts( " <Column Name=\"distance\" Type=\"real_4\"/>\n" , fp ) == EOF || \
485XLALFilePuts( " <Column Name=\"longitude\" Type=\"real_4\"/>\n" , fp ) == EOF || \
486XLALFilePuts( " <Column Name=\"latitude\" Type=\"real_4\"/>\n" , fp ) == EOF || \
487XLALFilePuts( " <Column Name=\"inclination\" Type=\"real_4\"/>\n" , fp ) == EOF || \
488XLALFilePuts( " <Column Name=\"coa_phase\" Type=\"real_4\"/>\n" , fp ) == EOF || \
489XLALFilePuts( " <Column Name=\"polarization\" Type=\"real_4\"/>\n" , fp ) == EOF || \
490XLALFilePuts( " <Column Name=\"psi0\" Type=\"real_4\"/>\n" , fp ) == EOF || \
491XLALFilePuts( " <Column Name=\"psi3\" Type=\"real_4\"/>\n" , fp ) == EOF || \
492XLALFilePuts( " <Column Name=\"alpha\" Type=\"real_4\"/>\n" , fp ) == EOF || \
493XLALFilePuts( " <Column Name=\"alpha1\" Type=\"real_4\"/>\n" , fp ) == EOF || \
494XLALFilePuts( " <Column Name=\"alpha2\" Type=\"real_4\"/>\n" , fp ) == EOF || \
495XLALFilePuts( " <Column Name=\"alpha3\" Type=\"real_4\"/>\n" , fp ) == EOF || \
496XLALFilePuts( " <Column Name=\"alpha4\" Type=\"real_4\"/>\n" , fp ) == EOF || \
497XLALFilePuts( " <Column Name=\"alpha5\" Type=\"real_4\"/>\n" , fp ) == EOF || \
498XLALFilePuts( " <Column Name=\"alpha6\" Type=\"real_4\"/>\n" , fp ) == EOF || \
499XLALFilePuts( " <Column Name=\"beta\" Type=\"real_4\"/>\n" , fp ) == EOF || \
500XLALFilePuts( " <Column Name=\"spin1x\" Type=\"real_4\"/>\n" , fp ) == EOF || \
501XLALFilePuts( " <Column Name=\"spin1y\" Type=\"real_4\"/>\n" , fp ) == EOF || \
502XLALFilePuts( " <Column Name=\"spin1z\" Type=\"real_4\"/>\n" , fp ) == EOF || \
503XLALFilePuts( " <Column Name=\"spin2x\" Type=\"real_4\"/>\n" , fp ) == EOF || \
504XLALFilePuts( " <Column Name=\"spin2y\" Type=\"real_4\"/>\n" , fp ) == EOF || \
505XLALFilePuts( " <Column Name=\"spin2z\" Type=\"real_4\"/>\n" , fp ) == EOF || \
506XLALFilePuts( " <Column Name=\"theta0\" Type=\"real_4\"/>\n" , fp ) == EOF || \
507XLALFilePuts( " <Column Name=\"phi0\" Type=\"real_4\"/>\n" , fp ) == EOF || \
508XLALFilePuts( " <Column Name=\"f_lower\" Type=\"real_4\"/>\n" , fp ) == EOF || \
509XLALFilePuts( " <Column Name=\"f_final\" Type=\"real_4\"/>\n" , fp ) == EOF || \
510XLALFilePuts( " <Column Name=\"eff_dist_h\" Type=\"real_4\"/>\n" , fp ) == EOF || \
511XLALFilePuts( " <Column Name=\"eff_dist_l\" Type=\"real_4\"/>\n" , fp ) == EOF || \
512XLALFilePuts( " <Column Name=\"eff_dist_g\" Type=\"real_4\"/>\n" , fp ) == EOF || \
513XLALFilePuts( " <Column Name=\"eff_dist_t\" Type=\"real_4\"/>\n" , fp ) == EOF || \
514XLALFilePuts( " <Column Name=\"eff_dist_v\" Type=\"real_4\"/>\n" , fp ) == EOF || \
515XLALFilePuts( " <Column Name=\"numrel_mode_min\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
516XLALFilePuts( " <Column Name=\"numrel_mode_max\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
517XLALFilePuts( " <Column Name=\"numrel_data\" Type=\"lstring\"/>\n" , fp ) == EOF || \
518XLALFilePuts( " <Column Name=\"amp_order\" Type=\"int_4s\"/>\n" , fp ) == EOF || \
519XLALFilePuts( " <Column Name=\"taper\" Type=\"lstring\"/>\n", fp ) == EOF || \
520XLALFilePuts( " <Column Name=\"bandpass\" Type=\"int_4s\"/>\n", fp ) == EOF || \
521XLALFilePuts( " <Column Name=\"simulation_id\" Type=\"ilwd:char\"/>\n" , fp ) == EOF || \
522XLALFilePuts( " <Stream Name=\"sim_inspiral:table\" Type=\"Local\" Delimiter=\",\">\n", fp ) == EOF )
523
524#define SIM_INSPIRAL_ROW \
525" \"process:process_id:%ld\",\"%s\",%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%22.16e,\"%s\",%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%d,%d,\"%s\",%d,\"%s\",%d,\"sim_inspiral:simulation_id:%ld\""
526
527
528
529void
532 LIGOLwXMLStream *xml,
533 const CHAR *path
534 )
535
536{
537 LIGOLwXMLStream *new;
538 XLAL_PRINT_DEPRECATION_WARNING("XLALOpenLIGOLwXMLFile");
542
544 if ( ! new )
545 {
547 }
548
549 *xml = *new;
550 XLALFree(new);
551
552 RETURN( status );
553}
554
555
556void
559 LIGOLwXMLStream *xml
560 )
561
562{
563 LIGOLwXMLStream *copy;
564 XLAL_PRINT_DEPRECATION_WARNING("XLALCloseLIGOLwXMLFile");
565 /* print the xml footer and close the file handle */
569 /* make an XLALFree()'able copy */
570 copy = XLALMalloc(sizeof(*copy));
571 if ( ! copy )
572 {
574 }
575 *copy = *xml;
576 if ( XLALCloseLIGOLwXMLFile( copy ) )
577 {
578 XLALFree( copy );
580 }
581 xml->fp = NULL;
582 RETURN( status );
583}
584
585
586void
589 LIGOLwXMLStream *xml,
591 )
592
593{
594 /* print the header for the xml table */
598
599 switch( table )
600 {
601 case no_table:
603 break;
604 case process_table:
605 (void)PRINT_LIGOLW_XML_PROCESS( xml->fp );
606 break;
609 break;
612 break;
615 break;
618 break;
621 break;
623 (void)PRINT_LIGOLW_XML_SIM_INSPIRAL( xml->fp );
624 break;
626 (void)PRINT_LIGOLW_XML_SIM_RINGDOWN( xml->fp );
627 break;
628 default:
630 }
631 RETURN( status );
632}
633
634
635void
638 LIGOLwXMLStream *xml
639 )
640
641{
642 /* print the header for the xml table */
646 (void)PRINT_LIGOLW_XML_TABLE_FOOTER( xml->fp );
647 RETURN( status );
648}
649
650/* macro to print a comma on subsequent table rows */
651#define FIRST_TABLE_ROW \
652 if ( first ) \
653{ \
654 first = 0; \
655} else \
656{ \
657 XLALFilePrintf( xml->fp, ",\n" ); \
658}
659
660
661void
664 LIGOLwXMLStream *xml,
665 MetadataTable tablePtr,
667 )
668
669{
670 int first = 1;
671 int rowCount = 0;
672 /* print contents of the database struct into the xml table */
676 switch( table )
677 {
678 case no_table:
680 break;
681 case process_table:
682 while( tablePtr.processTable )
683 {
686 tablePtr.processTable->program,
687 tablePtr.processTable->version,
690 tablePtr.processTable->comment,
691 tablePtr.processTable->is_online,
692 tablePtr.processTable->node,
693 tablePtr.processTable->username,
694 tablePtr.processTable->unix_procid,
697 tablePtr.processTable->jobid,
698 tablePtr.processTable->domain,
699 tablePtr.processTable->ifos
700 );
701 tablePtr.processTable = tablePtr.processTable->next;
702 ++rowCount;
703 }
704 break;
706 while( tablePtr.processParamsTable )
707 {
710 tablePtr.processParamsTable->program,
711 tablePtr.processParamsTable->param,
712 tablePtr.processParamsTable->type,
713 tablePtr.processParamsTable->value
714 );
715 tablePtr.processParamsTable = tablePtr.processParamsTable->next;
716 ++rowCount;
717 }
718 break;
720 while( tablePtr.searchSummaryTable )
721 {
725 tablePtr.searchSummaryTable->comment,
726 tablePtr.searchSummaryTable->ifos,
735 tablePtr.searchSummaryTable->nevents,
736 tablePtr.searchSummaryTable->nnodes
737 );
738 tablePtr.searchSummaryTable = tablePtr.searchSummaryTable->next;
739 ++rowCount;
740 }
741 break;
743 while( tablePtr.snglInspiralTable )
744 {
748 tablePtr.snglInspiralTable->ifo,
749 tablePtr.snglInspiralTable->search,
750 tablePtr.snglInspiralTable->channel,
761 tablePtr.snglInspiralTable->mass1,
762 tablePtr.snglInspiralTable->mass2,
763 tablePtr.snglInspiralTable->mchirp,
764 tablePtr.snglInspiralTable->mtotal,
765 tablePtr.snglInspiralTable->eta,
766 tablePtr.snglInspiralTable->kappa,
767 tablePtr.snglInspiralTable->chi,
768 tablePtr.snglInspiralTable->tau0,
769 tablePtr.snglInspiralTable->tau2,
770 tablePtr.snglInspiralTable->tau3,
771 tablePtr.snglInspiralTable->tau4,
772 tablePtr.snglInspiralTable->tau5,
773 tablePtr.snglInspiralTable->ttotal,
774 tablePtr.snglInspiralTable->psi0,
775 tablePtr.snglInspiralTable->psi3,
776 tablePtr.snglInspiralTable->alpha,
777 tablePtr.snglInspiralTable->alpha1,
778 tablePtr.snglInspiralTable->alpha2,
779 tablePtr.snglInspiralTable->alpha3,
780 tablePtr.snglInspiralTable->alpha4,
781 tablePtr.snglInspiralTable->alpha5,
782 tablePtr.snglInspiralTable->alpha6,
783 tablePtr.snglInspiralTable->beta,
784 tablePtr.snglInspiralTable->f_final,
785 tablePtr.snglInspiralTable->snr,
786 tablePtr.snglInspiralTable->chisq,
792 tablePtr.snglInspiralTable->sigmasq,
794 tablePtr.snglInspiralTable->Gamma[0],
795 tablePtr.snglInspiralTable->Gamma[1],
796 tablePtr.snglInspiralTable->Gamma[2],
797 tablePtr.snglInspiralTable->Gamma[3],
798 tablePtr.snglInspiralTable->Gamma[4],
799 tablePtr.snglInspiralTable->Gamma[5],
800 tablePtr.snglInspiralTable->Gamma[6],
801 tablePtr.snglInspiralTable->Gamma[7],
802 tablePtr.snglInspiralTable->Gamma[8],
803 tablePtr.snglInspiralTable->Gamma[9],
804 tablePtr.snglInspiralTable->spin1x,
805 tablePtr.snglInspiralTable->spin1y,
806 tablePtr.snglInspiralTable->spin1z,
807 tablePtr.snglInspiralTable->spin2x,
808 tablePtr.snglInspiralTable->spin2y,
809 tablePtr.snglInspiralTable->spin2z,
810 tablePtr.snglInspiralTable->event_id );
811 tablePtr.snglInspiralTable = tablePtr.snglInspiralTable->next;
812 ++rowCount;
813 }
814 break;
816 while( tablePtr.snglRingdownTable )
817 {
820 tablePtr.snglRingdownTable->ifo,
821 tablePtr.snglRingdownTable->channel,
826 tablePtr.snglRingdownTable->quality,
827 tablePtr.snglRingdownTable->phase,
828 tablePtr.snglRingdownTable->mass,
829 tablePtr.snglRingdownTable->spin,
830 tablePtr.snglRingdownTable->epsilon,
832 tablePtr.snglRingdownTable->ds2_H1H2,
833 tablePtr.snglRingdownTable->ds2_H1L1,
834 tablePtr.snglRingdownTable->ds2_H1V1,
835 tablePtr.snglRingdownTable->ds2_H2L1,
836 tablePtr.snglRingdownTable->ds2_H2V1,
837 tablePtr.snglRingdownTable->ds2_L1V1,
839 tablePtr.snglRingdownTable->snr,
840 tablePtr.snglRingdownTable->eff_dist,
841 tablePtr.snglRingdownTable->sigma_sq,
843 );
844 tablePtr.snglRingdownTable = tablePtr.snglRingdownTable->next;
845 ++rowCount;
846 }
847 break;
849 while( tablePtr.multiInspiralTable )
850 {
853 tablePtr.multiInspiralTable->ifos,
854 tablePtr.multiInspiralTable->search,
870 tablePtr.multiInspiralTable->mass1,
871 tablePtr.multiInspiralTable->mass2,
872 tablePtr.multiInspiralTable->mchirp,
873 tablePtr.multiInspiralTable->eta,
874 tablePtr.multiInspiralTable->chi,
875 tablePtr.multiInspiralTable->kappa,
876 tablePtr.multiInspiralTable->tau0,
877 tablePtr.multiInspiralTable->tau2,
878 tablePtr.multiInspiralTable->tau3,
879 tablePtr.multiInspiralTable->tau4,
880 tablePtr.multiInspiralTable->tau5,
881 tablePtr.multiInspiralTable->ttotal,
882 tablePtr.multiInspiralTable->snr,
883 tablePtr.multiInspiralTable->snr_dof,
884 tablePtr.multiInspiralTable->chisq,
891 tablePtr.multiInspiralTable->snr_h1,
892 tablePtr.multiInspiralTable->snr_h2,
893 tablePtr.multiInspiralTable->snr_l,
894 tablePtr.multiInspiralTable->snr_g,
895 tablePtr.multiInspiralTable->snr_t,
896 tablePtr.multiInspiralTable->snr_v,
915 tablePtr.multiInspiralTable->chisq_l,
916 tablePtr.multiInspiralTable->chisq_g,
917 tablePtr.multiInspiralTable->chisq_t,
918 tablePtr.multiInspiralTable->chisq_v,
934 tablePtr.multiInspiralTable->ra,
935 tablePtr.multiInspiralTable->dec,
944 crealf(tablePtr.multiInspiralTable->h1quad),
945 cimagf(tablePtr.multiInspiralTable->h1quad),
946 crealf(tablePtr.multiInspiralTable->h2quad),
947 cimagf(tablePtr.multiInspiralTable->h2quad),
948 crealf(tablePtr.multiInspiralTable->l1quad),
949 cimagf(tablePtr.multiInspiralTable->l1quad),
950 crealf(tablePtr.multiInspiralTable->g1quad),
951 cimagf(tablePtr.multiInspiralTable->g1quad),
952 crealf(tablePtr.multiInspiralTable->t1quad),
953 cimagf(tablePtr.multiInspiralTable->t1quad),
954 crealf(tablePtr.multiInspiralTable->v1quad),
955 cimagf(tablePtr.multiInspiralTable->v1quad),
965 );
966 tablePtr.multiInspiralTable = tablePtr.multiInspiralTable->next;
967 ++rowCount;
968 }
969 break;
971 {
972 while( tablePtr.simInspiralTable )
973 {
977 tablePtr.simInspiralTable->waveform,
991 tablePtr.simInspiralTable->source,
992 tablePtr.simInspiralTable->mass1,
993 tablePtr.simInspiralTable->mass2,
994 tablePtr.simInspiralTable->mchirp,
995 tablePtr.simInspiralTable->eta,
996 tablePtr.simInspiralTable->distance,
997 tablePtr.simInspiralTable->longitude,
998 tablePtr.simInspiralTable->latitude,
1000 tablePtr.simInspiralTable->coa_phase,
1002 tablePtr.simInspiralTable->psi0,
1003 tablePtr.simInspiralTable->psi3,
1004 tablePtr.simInspiralTable->alpha,
1005 tablePtr.simInspiralTable->alpha1,
1006 tablePtr.simInspiralTable->alpha2,
1007 tablePtr.simInspiralTable->alpha3,
1008 tablePtr.simInspiralTable->alpha4,
1009 tablePtr.simInspiralTable->alpha5,
1010 tablePtr.simInspiralTable->alpha6,
1011 tablePtr.simInspiralTable->beta,
1012 tablePtr.simInspiralTable->spin1x,
1013 tablePtr.simInspiralTable->spin1y,
1014 tablePtr.simInspiralTable->spin1z,
1015 tablePtr.simInspiralTable->spin2x,
1016 tablePtr.simInspiralTable->spin2y,
1017 tablePtr.simInspiralTable->spin2z,
1018 tablePtr.simInspiralTable->theta0,
1019 tablePtr.simInspiralTable->phi0,
1020 tablePtr.simInspiralTable->f_lower,
1021 tablePtr.simInspiralTable->f_final,
1022 tablePtr.simInspiralTable->eff_dist_h,
1023 tablePtr.simInspiralTable->eff_dist_l,
1024 tablePtr.simInspiralTable->eff_dist_g,
1025 tablePtr.simInspiralTable->eff_dist_t,
1026 tablePtr.simInspiralTable->eff_dist_v,
1029 tablePtr.simInspiralTable->numrel_data,
1030 tablePtr.simInspiralTable->amp_order,
1031 tablePtr.simInspiralTable->taper,
1032 tablePtr.simInspiralTable->bandpass,
1034 );
1035 tablePtr.simInspiralTable = tablePtr.simInspiralTable->next;
1036 ++rowCount;
1037 }
1038 }
1039 break;
1040 case sim_ringdown_table:
1041 {
1042 while( tablePtr.simRingdownTable )
1043 {
1046 tablePtr.simRingdownTable->waveform,
1047 tablePtr.simRingdownTable->coordinates,
1057 tablePtr.simRingdownTable->longitude,
1058 tablePtr.simRingdownTable->latitude,
1059 tablePtr.simRingdownTable->distance,
1060 tablePtr.simRingdownTable->inclination,
1062 tablePtr.simRingdownTable->frequency,
1063 tablePtr.simRingdownTable->quality,
1064 tablePtr.simRingdownTable->phase,
1065 tablePtr.simRingdownTable->mass,
1066 tablePtr.simRingdownTable->spin,
1067 tablePtr.simRingdownTable->epsilon,
1068 tablePtr.simRingdownTable->amplitude,
1069 tablePtr.simRingdownTable->eff_dist_h,
1070 tablePtr.simRingdownTable->eff_dist_l,
1071 tablePtr.simRingdownTable->eff_dist_v,
1072 tablePtr.simRingdownTable->hrss,
1073 tablePtr.simRingdownTable->hrss_h,
1074 tablePtr.simRingdownTable->hrss_l,
1075 tablePtr.simRingdownTable->hrss_v,
1076 rowCount
1077 );
1078 tablePtr.simRingdownTable = tablePtr.simRingdownTable->next;
1079 ++rowCount;
1080 }
1081 }
1082 break;
1083 default:
1085 }
1086 RETURN( status );
1087}
const LALVCSInfo lalAppsVCSInfo
VCS and build information for LALApps.
#define ABORT(statusptr, code, mesg)
#define ASSERT(assertion, statusptr, code, mesg)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
int XLALCloseLIGOLwXMLFile(LIGOLwXMLStream *xml)
LIGOLwXMLStream * XLALOpenLIGOLwXMLFile(const char *path)
#define PROCESS_PARAMS_ROW
#define PRINT_LIGOLW_XML_SNGL_INSPIRAL(fp)
#define PROCESS_ROW
#define LIGOLWXMLH_EOPEN
#define LIGOLWXMLH_ENNUL
#define PRINT_LIGOLW_XML_PROCESS_PARAMS(fp)
#define SNGL_RINGDOWN_ROW
#define SNGL_INSPIRAL_ROW
#define PRINT_LIGOLW_XML_SNGL_RINGDOWN(fp)
#define LIGOLWXMLH_ECLOS
#define PRINT_LIGOLW_XML_TABLE_FOOTER(fp)
#define LIGOLWXMLH_MSGENTAB
void LALWriteLIGOLwXMLTable(LALStatus *status, LIGOLwXMLStream *xml, MetadataTable tablePtr, MetadataTableType table)
#define LIGOLWXMLH_MSGENULL
void LALOpenLIGOLwXMLFile(LALStatus *status, LIGOLwXMLStream *xml, const CHAR *path)
#define PRINT_LIGOLW_XML_SEARCH_SUMMARY(fp)
void LALBeginLIGOLwXMLTable(LALStatus *status, LIGOLwXMLStream *xml, MetadataTableType table)
#define LIGOLWXMLH_ENTAB
void LALEndLIGOLwXMLTable(LALStatus *status, LIGOLwXMLStream *xml)
#define SIM_RINGDOWN_ROW
#define SIM_INSPIRAL_ROW
#define LIGOLWXMLH_MSGENNUL
#define PRINT_LIGOLW_XML_PROCESS(fp)
#define FIRST_TABLE_ROW
void LALCloseLIGOLwXMLFile(LALStatus *status, LIGOLwXMLStream *xml)
#define PRINT_LIGOLW_XML_MULTI_INSPIRAL(fp)
#define PRINT_LIGOLW_XML_SIM_INSPIRAL(fp)
#define LIGOLWXMLH_MSGEOPEN
#define LIGOLWXMLH_MSGECLOS
#define PRINT_LIGOLW_XML_SIM_RINGDOWN(fp)
#define MULTI_INSPIRAL_ROW
#define LIGOLWXMLH_MSGEUTAB
#define LIGOLWXMLH_ENULL
#define LIGOLWXMLH_EUTAB
#define SEARCH_SUMMARY_ROW
Provides prototypes for obsolete code.
MetadataTableType
@ sngl_inspiral_table
@ sim_inspiral_table
@ search_summary_table
@ sim_ringdown_table
@ no_table
@ process_params_table
@ sngl_ringdown_table
@ multi_inspiral_table
@ process_table
int XLALFilePrintf(LALFILE *file, const char *fmt,...)
char CHAR
void * XLALMalloc(size_t n)
void XLALFree(void *p)
#define XLAL_PRINT_DEPRECATION_WARNING(replacement)
static LALStatus status
Definition: inspinj.c:552
path
first
const char *const vcsTag
INT4 gpsNanoSeconds
struct tagMultiInspiralTable * next
LIGOTimeGPS end_time
CHAR ifos[LIGOMETA_IFOS_MAX]
LIGOTimeGPS impulse_time
CHAR search[LIGOMETA_SEARCH_MAX]
CHAR type[LIGOMETA_TYPE_MAX]
CHAR param[LIGOMETA_PARAM_MAX]
CHAR value[LIGOMETA_VALUE_MAX]
struct tagProcessParamsTable * next
CHAR program[LIGOMETA_PROGRAM_MAX]
CHAR domain[LIGOMETA_DOMAIN_MAX]
CHAR version[LIGOMETA_VERSION_MAX]
LIGOTimeGPS start_time
CHAR ifos[LIGOMETA_IFOS_MAX]
CHAR program[LIGOMETA_PROGRAM_MAX]
struct tagProcessTable * next
LIGOTimeGPS cvs_entry_time
CHAR node[LIGOMETA_NODE_MAX]
CHAR cvs_repository[LIGOMETA_CVS_REPOSITORY_MAX]
LIGOTimeGPS end_time
CHAR username[LIGOMETA_USERNAME_MAX]
CHAR comment[LIGOMETA_COMMENT_MAX]
CHAR comment[LIGOMETA_COMMENT_MAX]
LIGOTimeGPS out_start_time
LIGOTimeGPS in_end_time
struct tagSearchSummaryTable * next
CHAR ifos[LIGOMETA_IFOS_MAX]
LIGOTimeGPS in_start_time
LIGOTimeGPS out_end_time
LIGOTimeGPS l_end_time
LIGOTimeGPS geocent_end_time
CHAR source[LIGOMETA_SOURCE_MAX]
LIGOTimeGPS v_end_time
struct tagSimInspiralTable * next
LIGOTimeGPS t_end_time
CHAR taper[LIGOMETA_INSPIRALTAPER_MAX]
LIGOTimeGPS g_end_time
LIGOTimeGPS h_end_time
CHAR waveform[LIGOMETA_WAVEFORM_MAX]
CHAR numrel_data[LIGOMETA_STRING_MAX]
CHAR waveform[LIGOMETA_WAVEFORM_MAX]
LIGOTimeGPS h_start_time
LIGOTimeGPS v_start_time
struct tagSimRingdownTable * next
LIGOTimeGPS geocent_start_time
CHAR coordinates[LIGOMETA_COORDINATES_MAX]
LIGOTimeGPS l_start_time
LIGOTimeGPS impulse_time
CHAR ifo[LIGOMETA_IFO_MAX]
LIGOTimeGPS end
struct tagSnglInspiralTable * next
CHAR channel[LIGOMETA_CHANNEL_MAX]
CHAR search[LIGOMETA_SEARCH_MAX]
CHAR ifo[LIGOMETA_IFO_MAX]
CHAR channel[LIGOMETA_CHANNEL_MAX]
struct tagSnglRingdownTable * next
LIGOTimeGPS start_time
SearchSummaryTable * searchSummaryTable
SnglRingdownTable * snglRingdownTable
MultiInspiralTable * multiInspiralTable
ProcessTable * processTable
SimRingdownTable * simRingdownTable
SnglInspiralTable * snglInspiralTable
ProcessParamsTable * processParamsTable
SimInspiralTable * simInspiralTable