tprak

Theoretical Physics Practical Training
git clone git://popovic.xyz/tprak.git
Log | Files | Refs

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()