ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/FGolf/Tools/mergeJSON.py
Revision: 1.1
Committed: Sun Aug 29 18:25:19 2010 UTC (14 years, 8 months ago) by fgolf
Content type: text/x-python
Branch: MAIN
CVS Tags: ss_summer2011approvalV2, ss_summer2011approval, synchMay2011v1, ss20May2011, ss2010_10_06, fkwsynch3pbv2, fkw_3pb_samesign_synch, HEAD
Log Message:
some tools useful for a variety of studies

File Contents

# Content
1 #!/usr/bin/env python
2
3 import sys,os,json
4
5 def convertRange(runs):
6 result = {}
7 for run in runs.keys():
8 tmp = []
9 for lumirange in runs[run]:
10 tmp.extend(range(lumirange[0],lumirange[1]+1))
11 result[run] = tmp
12 return result
13
14 def convertArray(runs):
15 result = {}
16 for run in runs.keys():
17 lumis = runs[run]
18 lumis.sort()
19 endRange = lumis[0]
20 startRange = lumis[0]
21 lumiRanges = []
22 for lumi in range(1,len(lumis)) :
23 if endRange+1 == lumis[lumi] :
24 endRange = lumis[lumi]
25 else :
26 lumiRanges.append([startRange,endRange])
27 endRange = lumis[lumi]
28 startRange = lumis[lumi]
29 lumiRanges.append([startRange,endRange])
30 result[run] = lumiRanges
31 return result
32
33 input_arrays = []
34 for argv in sys.argv[1:]:
35 input_arrays.append(convertRange(json.load(open(argv))))
36
37 result_array = {}
38 for array in input_arrays:
39 for run in array.keys():
40 if run in result_array.keys():
41 for lumi in array[run]:
42 if lumi not in result_array[run]:
43 result_array[run].append(lumi)
44 else :
45 result_array[run] = array[run]
46
47 result_range = convertArray(result_array)
48
49 output_handle = open("merged.json",'w')
50 json.dump(result_range,output_handle)
51 output_handle.close()
52
53