Project

General

Profile

2017-03-24 straight tracks scattering requirements ยป cdb_tof_triggers_lookup.py

Rogers, Chris, 24 March 2017 11:43

 
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)
    (1-1/1)