12345678910111213141516171819202122232425262728293031323334 |
- import numpy as np
- from scipy.optimize import curve_fit
- import matplotlib.pyplot as plt
- from atlas_fit_function import atlas_invMass_mumu_core
- # Load data:
- inFileName = "DATA/original_histograms/mass_mm_higgs_Background.npz"
- with np.load(inFileName) as data:
- bin_edges = data['bin_edges']
- bin_centers = data['bin_centers']
- bin_values = data['bin_values']
- bin_errors = data['bin_errors']
- #############################################################################################################################
- def poly3(x, a, b, c, d):
- """Fit poly3"""
- return a * x**3 + b * x**2 + c * x + d
- fitfun = poly3
- popt, pcov = curve_fit(fitfun, bin_centers, bin_values, sigma=bin_errors, p0=[1, 1, 1, 1])
- perr = np.sqrt(np.diag(pcov))
- a, b, c, d = popt
- my_fit = np.array(fitfun(bin_centers, a, b, c, d))
- xerrs = 0.5 * (bin_edges[1:] - bin_edges[:-1])
- plt.figure()
- plt.errorbar(bin_centers, bin_values, bin_errors, xerrs, fmt="none", color='b', ecolor='b', label='Original histogram')
- plt.plot(bin_centers, my_fit, 'g-', label='fit poly3')
- plt.legend()
|