NumPyを使ってCERN ROOTの解析用ダミーデータを生成する2-物理実験っぽいデータの生成編
やること
解析用のダミーデータの生成。
研究室の教育用に。
コード
import numpy as np kNumEvent = 10000 fout = open("output.dat","w") for i in range(kNumEvent): rand1 = round(np.random.normal(0, 1),5) # 正規分布(平均, 標準偏差) rand2= round(np.random.rand(),5) # 一様分布() rand3 = round(np.random.binomial(100,0.3),5) # 二項分布(試行回数, 成功確率) rand4 = round(np.random.beta(2,5),5) # β分布(α値, β値) rand5 = round(np.random.gamma(4,1),5) #γ分布(形状母数(k), 尺度母数(Θ)) rand6 = round(np.random.chisquare(3),5) # χ二乗分布(自由度(k)) rand7 = np.random.normal(1000, 10) rand8 = np.random.normal(1300, 2) def func1(X,a,b,c): Y = a*X**(-0.5) + b/X + c return Y tmp_ADC = round(rand5*200) tmp_TDC1 = round(func1(rand5*200,1000,100,rand1*10+rand2*5+rand7)) tmp_TDC2 = round(rand7+rand8) tmp_TDC3 = round(1000+rand2*5) fout.write(str(i)+" "+str(tmp_ADC)+" "+str(tmp_TDC1)+" "+str(tmp_TDC2)+" "+str(tmp_TDC3)+" "+ str(rand1)+" "+str(rand2)+" "+str(rand3)+" "+str(rand4)+" "+str(rand5)+" "+str(rand6)+"\n") fout.close() print("F!!!!!")
結果