def main(): gStyle.SetOptStat(10) gStyle.SetOptFit(111) materials = {"Cu":{"Z":29,"A":63}, "Al":{"Z":13,"A":26}} for mat, element in materials.items(): hist = get_hist(**element) can = make_canvas(mat) hist.Draw() initial_settings = (("N", lambda x: 100, lambda x: 0.0 , lambda x: 1e6), ("#tau", lambda x: 100, lambda x: 0.0 , lambda x: 5000)) fit_histogram(hist, "[0]*exp(-x/[1])", initial_settings, mat,) can.Update()
def fit_data(data_file, fit_type, data_type, inc_phase, inc_sin, l_bound, u_bound, img_dir="", fit_options="ILMER"): data_file.sum_integrals = {'f':0.0, 'cu':0.0} short_name = data_file.short_name bin_width = data_file.bin_width for hist_key, hist in data_file.hists.items(): func_fmt, initial_settings = get_fit_func_and_settings(data_type, hist, fit_type, inc_phase, inc_sin) func_name = "{}_{}".format(short_name, hist.GetName()) if img_dir: can = make_canvas(func_name, resize=True) hist.Draw() fit_histogram(hist, func_fmt, initial_settings, func_name, fit_options, l_bound, u_bound) can.Update() img_name = img_dir+"fits/"+func_name can.SaveAs(img_name+".eps") can.SaveAs(img_name+".svg") else: fit_histogram(hist, func_fmt, initial_settings, func_name, fit_options+"N") calculate_exp_integrals(hist, l_bound, u_bound) for k in data_file.sum_integrals: data_file.sum_integrals[k] += hist.integrals[k]