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()
Пример #2
0
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]