From ad2f7d874b51c5c3b49a2c7c02b1ac2fac2b0051 Mon Sep 17 00:00:00 2001 From: Jack Christopher Hutchinson Rolph <jack.rolph@desy.de> Date: Fri, 23 Dec 2022 19:19:44 +0100 Subject: [PATCH] Update example.py --- example.py | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/example.py b/example.py index f8a493d..b5bfdd3 100644 --- a/example.py +++ b/example.py @@ -1,4 +1,3 @@ - import os import sys import numpy as np @@ -7,6 +6,24 @@ from PeakOTron import PeakOTron from joblib import dump import time + +C_tau = lambda V, V_bd, V_0: (V - V_bd)/V_0 +f_tau = lambda V, V_bd, V_0: -1/np.log((1-np.exp(C_tau(V, V_bd, V_0)*np.exp(-1)))/(1 - np.exp(C_tau(V, V_bd, V_0)))) + +V_bd_hmt = 51.570574 + 0.307 +V_0_hmt = 2.906 + +tau = 21.953 ##SLOW COMPONENT OF SIPM PULSE +t_0 = 100.0 ## PRE-INTEGRATION TIME +t_gate = 104.0 ## GATE LENGTH +bin_0=-100.0 ## SELECT FIRST BIN OF SPECTRUM (CAN BE AUTOMATIC) +truncate_nsigma0_up = 2.0 ## SCAN SPECTRUM FROM Q < Q_0 - 4 sigma_0 +truncate_nsigma0_do = 2.0 ## EVALUATE SPECTRUM CHI2 IN Q_0 - x*sigma_0 < Q < Q_0 + 2*sigma_0 +prefit_only=False ## FIT THE WHOLE SPECTRUM + + + + print("--------------------") print('EXAMPLE SIPM CALIBRATION RUN') print("--------------------") @@ -16,7 +33,7 @@ out_dict = {} files_to_fit = [] ## Find all histograms in directory -for root, dirs, files in os.walk("./data/hamamatsu_pcb6/Light"): +for root, dirs, files in os.walk("./data_paper/hamamatsu_pcb6/Light"): for file in files: @@ -40,6 +57,9 @@ for i, (file, path) in enumerate(files_to_fit): V = float(items[2].replace('V', '').replace('p', '.')) + f_tau_hmt = f_tau(V, V_bd_hmt, V_0_hmt) + + print("\n\n") print("===============================================================") print("FIT {:d} - {:s}".format(i, file)) @@ -51,20 +71,25 @@ for i, (file, path) in enumerate(files_to_fit): data = np.loadtxt(path, skiprows=8) ## Create a PeakOTron Fit Object. - f_data = PeakOTron(verbose=True) + f_data = PeakOTron(verbose=False) ## Perform fit. f_data.Fit(data, - tau=21.953, #SLOW PULSE COMPONENT TIME CONSTANT (ns) - t_gate=104, #GATE LENGTH (ns) - t_0 = 64, #INTEGRATION TIME BEFORE GATE (ns) - tau_R=21.953 - + tau=tau, #SLOW PULSE COMPONENT TIME CONSTANT (ns) + t_gate=t_gate, #GATE LENGTH (ns) + t_0 = t_0, #INTEGRATION TIME BEFORE GATE (ns) + tau_R=f_tau_hmt*tau, + bin_0 = bin_0, + truncate_nsigma0_up = truncate_nsigma0_up, + truncate_nsigma0_do = truncate_nsigma0_do + + ) #BINNING RULE "knuth", "freedman", "scott" - use bw= #### to override. it is still required for DCR calculation. - f_data.PlotFit(xlabel="ADC", display=False, save_directory="./Results/{0}_fit.png".format(os.path.splitext(file)[0])) + f_data.PlotFit(plot_in_bins=True, display=False, save_directory="./Results/{0}_fit.png".format(os.path.splitext(file)[0])) + dump(f_data, "./Results/{0}.joblib".format(os.path.splitext(file)[0])) -- GitLab