standard.py (1814B)
1 #!/usr/bin/env python3.9 2 3 import numpy as np 4 from scipy.optimize import curve_fit 5 import matplotlib.pyplot as plt 6 from model import * 7 8 9 global p0 10 p0 = [0.77, 0.15, 0.78, 0.09, 0.0085, 0.002, 0.16, 0.3] # in GeV 11 12 def SND(): 13 data = np.loadtxt('../data/SND-VFF.txt') 14 x_data = data[:,0] 15 y_data = data[:, 1] 16 sigma = data[:, 2] 17 18 p, pcov = curve_fit(model, x_data, y_data, p0, sigma=sigma) 19 myplot('SND', x_data, y_data, p, np.sqrt(np.diag(pcov)), sigma) 20 21 return p, np.sqrt(np.diag(pcov)) 22 23 def CMD2(): 24 data = np.loadtxt('../data/CMD2-VFF.txt') 25 x_data = data[:,0] 26 y_data = data[:, 1] 27 sigma = data[:, 2] 28 29 p, pcov = curve_fit(model, x_data, y_data, p0, sigma=sigma) 30 myplot('CMD2', x_data, y_data, p, np.sqrt(np.diag(pcov)), sigma) 31 32 return p, np.sqrt(np.diag(pcov)) 33 34 def BABAR(): 35 data = np.loadtxt('../data/BABAR-VFF.txt') 36 cov_stat = np.loadtxt('../data/BABAR-StatCov.txt') 37 x_data = data[:,0] 38 y_data = data[:, 1] 39 40 p, pcov = curve_fit(model, x_data, y_data, p0, sigma=cov_stat) 41 myplot('BABAR', x_data, y_data, p, np.sqrt(np.diag(pcov)), sigma=np.sqrt(np.diag(cov_stat))) 42 43 return p, np.sqrt(np.diag(pcov)) 44 45 def KLOE(): 46 data = np.loadtxt('../data/KLOE-VFF.txt') 47 cov_stat = np.loadtxt('../data/KLOE-StatCov.txt') 48 x_data = data[:,0] 49 y_data = data[:, 1] 50 51 p, pcov = curve_fit(model, x_data, y_data, p0, sigma=cov_stat) 52 myplot('KLOE', x_data, y_data, p, np.sqrt(np.diag(pcov)), sigma=np.sqrt(np.diag(cov_stat))) 53 54 return p, np.sqrt(np.diag(pcov)) 55 56 57 def main(): 58 p1, dp1 = SND() 59 p2, dp2 = CMD2() 60 p3, dp3 = BABAR() 61 p4, dp4 = KLOE() 62 63 p = 1/4*(p1 + p2 + p3 + p4) 64 dp = 1/4*(dp1 + dp2 + dp3 + dp4) 65 66 for i in range(len(p)): 67 print(p[i], dp[i], sep='\t') 68 69 70 if __name__ == "__main__": 71 main()