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
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")
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")