Ejemplo n.º 1
0
def plot_av_shapes(avs, stds, ref_om, run):
    sncalo_0 = sn.calorimeter("average_shape_{}".format(run),
                              with_palette=True)
    sncalo_0.draw_content = False
    sncalo_0.draw_omid = False
    print(avs)
    for om, val in enumerate(avs):
        if om == ref_om and ref_om is not None:
            sncalo_0.setcontent(om, 1)
        elif val is None or val < 0.9:
            pass
        else:
            sncalo_0.setcontent(om, val)
    sncalo_0.setrange(0.95, 1)
    sncalo_0.draw()
    sncalo_0.save("/Users/williamquinn/Desktop/commissioning")
    del sncalo_0

    sncalo_1 = sn.calorimeter("std_shape_{}".format(run), with_palette=True)
    sncalo_1.draw_content = False
    sncalo_1.draw_omid = False
    for om, val in enumerate(stds):
        if om == ref_om and ref_om is not None:
            sncalo_1.setcontent(om, 1)
        elif val is None:
            pass
        else:
            sncalo_1.setcontent(om, val)
    sncalo_1.draw()
    sncalo_1.save("/Users/williamquinn/Desktop/commissioning")
    del sncalo_1
Ejemplo n.º 2
0
def main():
    file = ROOT.TFile("/Users/williamquinn/Desktop/commissioning/run_430.root",
                      "READ")
    tree = file.T
    events = [0 for i in range(712)]
    n_events = tree.GetEntries()
    i_e = 0
    for event in tree:
        i_e += 1
        if i_e % 10000 == 0:
            print(i_e, "/", n_events)
        for index, om in enumerate(list(event.OM_ID)):
            amplitude = list(event.raw_amplitude)[index]

            if amplitude > 100:
                events[om] += 1

    print(events)

    sncalo = sn.calorimeter("event_map_430", with_palette=True)
    sncalo.draw_omid = True
    # sncalo.draw_omnum_label()
    sncalo.draw_content = False

    for om in range(712):
        if events[om] > 0:
            sncalo.setcontent(om, events[om])

    sncalo.draw()
    sncalo.save("/Users/williamquinn/Desktop/commissioning")
Ejemplo n.º 3
0
def plot_reflectometry(times, side):

    sncalo = sn.calorimeter("reflectometery_" + side, with_palette=True)
    sncalo.draw_omnum_label()
    for om in times.keys():
        sncalo.setcontent(om, times[om])
    sncalo.draw()
    sncalo.save('/Users/williamquinn/Desktop/commissioning')
def plot_event_map(events):
    sncalo = sn.calorimeter("demo_event_map", with_palette=True)
    sncalo.draw_omid = False
    # sncalo.draw_omnum_label()
    sncalo.draw_content = False
    for om, val in enumerate(events):
        if val > 0:
            sncalo.setcontent(om, val)
    sncalo.draw()
    sncalo.save("/Users/williamquinn/Desktop/commissioning")
    del sncalo
def plot_HV_map(plot):
    file = open(
        "/Users/williamquinn/Desktop/commissioning/calorimeter_hv_211207.txt",
        "r")
    fl = file.readlines()
    HV_map = {}
    for line in fl:
        if '#' in line:
            continue
        line_list = line.split("\t")
        om = int(line_list[0].strip())
        '''om_id_str = line_list[0]
        om_typ = om_id_str.split(":")[0]
        if om_typ == 'M':
            side = int(om_id_str.split(":")[1].split(".")[0])
            col = int(om_id_str.split(":")[1].split(".")[1])
            row = int(om_id_str.split(":")[1].split(".")[2])
            om = get_om_num(om_typ, side=side, col=col, row=row, wall=None)
        elif om_typ == 'X':
            side = int(om_id_str.split(":")[1].split(".")[0])
            wall = int(om_id_str.split(":")[1].split(".")[1])
            col = int(om_id_str.split(":")[1].split(".")[2])
            row = int(om_id_str.split(":")[1].split(".")[3])
            om = get_om_num(om_typ, side=side, col=col, row=row, wall=wall)
        elif om_typ == 'X':
            side = int(om_id_str.split(":")[1].split(".")[0])
            wall = int(om_id_str.split(":")[1].split(".")[1])
            col = int(om_id_str.split(":")[1].split(".")[2])
            om = get_om_num(om_typ, side=side, col=col, row=None, wall=wall)
        else:
            continue'''
        HV = float(line_list[-1].strip())
        HV_map[om] = HV
    file.close()
    if plot:
        sncalo = sn.calorimeter("HV_map_march2021", with_palette=True)
        sncalo.draw_content = False
        sncalo.draw_omnum = False
        sncalo.draw_omid = False
        for om in range(712):
            if om not in HV_map.keys():
                continue
            if HV_map[om] == 0:
                continue
            sncalo.setcontent(om, HV_map[om])
        sncalo.draw()
        sncalo.save("/Users/williamquinn/Desktop/commissioning")
        del sncalo
    return HV_map
def main():
    file = ROOT.TFile("/Users/williamquinn/Desktop/PMT_Project/run_521.root",
                      "READ")
    tree = file.T

    aan = [[] for i in range(712)]
    sncalo = sn.calorimeter("aan", True)
    #sncalo.draw_omid_label()
    #sncalo.draw_content_label('{:.3f}')
    sncalo.draw_content = False
    sncalo.draw_omid = False

    for event in tree:
        om = event.OM_ID
        aan[om].append(event.apulse_num)

    new_aan = []
    for om in range(len(aan)):
        if get_pmt_type(om) == 8:
            if len(aan[om]) > 0:
                sncalo.setcontent(om, np.average(aan[om]))
                new_aan.append(np.average(aan[om]))

    sncalo.draw()
    sncalo.save("~/Desktop/PMT_Project")

    del sncalo

    plt.figure(figsize=figsize)
    freq, bin_edges = np.histogram(new_aan, range=(0, 1.2), bins=12)
    width = bin_edges[2] - bin_edges[1]
    bin_centres = bin_edges[:-1] + width / 2
    plt.bar(bin_centres, freq, width=width, alpha=0.8, color='C2')
    plt.xlabel("Average After-Pulse Number")
    plt.title("Demonstrator PMT Average After-Pulse per Waveform")
    plt.ylabel("PMT Count")
    plt.xlim(0, 1.2)
    plt.tight_layout()
    plt.savefig("/Users/williamquinn/Desktop/PMT_Project/aan_demonstrator.pdf")

    file.Close()
def plot_aan(ap_info):
    sncalo = sn.calorimeter("aan", with_palette=True)
    sncalo.draw_content_label('{:.2f}')
    sncalo.draw_omid = False
    avs = [[], [], [], []]
    for om in range(712):
        if om not in ap_info.keys():
            continue
        om_t, om_s = om_type(om)
        nums = []
        for i in range(len(ap_info[om]["ap_num"])):
            nums.append(ap_info[om]["ap_num"][i])
        av = np.average(nums)
        avs[om_t].append(av)
        sncalo.setcontent(om, av)
    sncalo.draw()
    sncalo.save("/Users/williamquinn/Desktop/commissioning")
    del sncalo

    plt.figure(figsize=figsize)
    names = ['5inchMW', '8inchMW', '5inchXW', '5inchGV']
    for i in range(4):
        freq, bin_edges = np.histogram(avs[i], bins=10, range=(0, 2.5))
        width = bin_edges[2] - bin_edges[1]
        bin_centres = bin_edges[:-1] + width / 2
        plt.bar(bin_centres,
                freq / np.sum(freq),
                color='C{}'.format(i),
                alpha=0.5,
                width=width,
                label=names[i] + r' $\mu$={:.2f}'.format(np.average(avs[i])))
        plt.axvline(np.average(avs[i]), ls='--', color='C{}'.format(i))
    plt.xlabel('Average After-pulse Number')
    plt.ylabel('OM Count')
    plt.legend(loc='best')
    plt.tight_layout()
    plt.savefig(
        "/Users/williamquinn/Desktop/commissioning/aan_demon_all_oms.pdf")