1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 from glue.ligolw import table
26 from glue.ligolw import lsctables
27 from glue.ligolw import utils
28 from glue.ligolw import ligolw
29
30
31
32
33
34
35
36
37
38 -class ExtractSimInspiralTableLIGOLWContentHandler(ligolw.PartialLIGOLWContentHandler):
39 """
40 LIGOLWContentHandler that will extract only the SimInspiralTable from a document.
41 See glue.ligolw.LIGOLWContentHandler help for more info.
42 """
43 - def __init__(self,document):
44 def filterfunc(name,attrs):
45 return name==ligolw.Table.tagName and attrs.has_key('Name') and table.Table.TableName(attrs.get('Name'))==lsctables.SimInspiralTable.tableName
46 ligolw.PartialLIGOLWContentHandler.__init__(self,document,filterfunc)
47
48
50 """
51 Read the simInspiral tables from a list of files
52
53 @param fileList: list of input files
54 @param verbose: print ligolw_add progress
55 """
56 simInspiralTriggers = None
57
58 lsctables.use_in(ExtractSimInspiralTableLIGOLWContentHandler)
59 for thisFile in fileList:
60 doc = utils.load_filename(thisFile, gz=(thisFile or "stdin").endswith(".gz"), verbose=verbose, contenthandler=ExtractSimInspiralTableLIGOLWContentHandler)
61
62 try: simInspiralTable = lsctables.SimInspiralTable.get_table(doc)
63 except: simInspiralTable = None
64 if simInspiralTriggers and simInspiralTable:
65 simInspiralTriggers.extend(simInspiralTable)
66 elif not simInspiralTriggers:
67 simInspiralTriggers = simInspiralTable
68
69 return simInspiralTriggers
70