1
|
import sys
|
2
|
import cdb
|
3
|
|
4
|
def get_beamline(run_number):
|
5
|
bl = cdb.Beamline()
|
6
|
beamline_all = bl.get_beamline_for_run(run_number)[run_number]
|
7
|
return beamline_all
|
8
|
|
9
|
def get_tof_triggers_sum(tof_key, run_list):
|
10
|
trig_list = []
|
11
|
for run_number in run_list:
|
12
|
try:
|
13
|
trig_list.append(get_beamline(run_number)["scalars"][tof_key])
|
14
|
except:
|
15
|
sys.excepthook(*sys.exc_info())
|
16
|
print "Failed to find key", tof_key, "for run number", run_number
|
17
|
print get_beamline(run_list[0])["scalars"].keys()
|
18
|
return sum(trig_list)
|
19
|
|
20
|
def get_time_sum(run_list):
|
21
|
times = [] # time of each run in seconds
|
22
|
for run_number in run_list:
|
23
|
start = get_beamline(run_number)["start_time"]
|
24
|
end = get_beamline(run_number)["end_time"]
|
25
|
if start == None or end == None:
|
26
|
print "Failed to get times for run number", run_number, "- Start was", start, "end was", end
|
27
|
continue
|
28
|
delta = end - start
|
29
|
times.append(delta.total_seconds())
|
30
|
total_seconds = sum(times)
|
31
|
minutes = int(total_seconds)/60
|
32
|
hours = minutes/60
|
33
|
minutes = minutes % 60
|
34
|
return hours, minutes
|
35
|
|
36
|
def parse_one_setting(run_list):
|
37
|
tof1_triggers = get_tof_triggers_sum("ToF1 Triggers", run_list)
|
38
|
tof2_triggers = get_tof_triggers_sum("ToF2 Triggers", run_list)
|
39
|
lmc1234 = get_tof_triggers_sum("LMC-1234 Count", run_list)
|
40
|
hours, minutes = get_time_sum(run_list)
|
41
|
return {"runs":run_list, "tof1_triggers":tof1_triggers, "tof2_triggers":tof2_triggers, "lmc1234":lmc1234, "time":[hours, minutes]}
|
42
|
|
43
|
# +100pc 155 13374/25592 0.523
|
44
|
# +ao 118 11575/20535 0.564
|
45
|
|
46
|
STRAIGHT_TRACKS_240_LIH_RUNS = [7727, 7733, 7737, 7738, 7741, 7775, 7776, 7790, 7794, 7795, 7796, 7805, 7808, 7809, 7813, 7814, 7816, 7817, 7818, 7819, 7844, 7845, 7847, 7848, 7849, 7851, 7852, 7853, 7854, 7855, 7856, 7858, 7859, 7860]
|
47
|
STRAIGHT_TRACKS_170_LIH_RUNS = [7764, 7766, 7767, 7694, 7777, 7782, 7783, 7785, 7786, 7787, 7799, 7800, 7806, 7822, 7823, 7824, 7825, 7826, 7827, 7831, 7832, 7833, 7861, 7863, 7864, 7865, 7866]
|
48
|
|
49
|
if __name__ == "__main__":
|
50
|
#print parse_one_setting()
|
51
|
print parse_one_setting(STRAIGHT_TRACKS_170_LIH_RUNS)
|