def convolvedecay(x, *args): n = len(args) sig = args[-1] t0 = args[-2] baseline = args[-3] A = args[:(n - 3) // 2] gam = args[(n - 3) // 2:-3] return gaussian_heaviside(x, sig, t0) * decay(x, A, gam, t0, baseline)
# Ath = lognorm(s=shape,loc=mu,scale=sig).pdf(Gamth) # Gaussian mu1, mu2 = 6.5, 2.37 #np.random.uniform(4,8) # sig1,sig2 = np.random.uniform(0,mu1/5),np.random.uniform(0,mu2/5) # Ath = (1.6*norm.pdf(Gamth,mu1,sig1)+0.6*norm.pdf(Gamth,mu2,sig2))*(Gamth>0) Gamth = np.array([6.5, 2.37]) Ath = np.array([0.73, 0.27]) t0 = 5 true_taueff = np.sum(Ath / Gamth) / np.sum(Ath) simu_data = np.zeros(2500) for i in range(size): t0 = t0 + np.random.normal(0, 0.003) # model_data = gaussian_heaviside(t,0.027,t0+i*periode)*decay(t,Ath,Gamth,t0+i*periode,0) model_data = gaussian_heaviside(t, rtime, t0) * test_dlt( t, (t0), Gamth, Ath) * np.random.uniform(5e3, 2e4) + 30 # model_data = gaussian_heaviside(t,0.027,t0+i*periode)*gaussian_decay(t-(t0+i*periode),Ath[0],sig,mu) # simu_data += (model_data).astype(np.int) simu_data += (np.round(np.random.poisson(model_data))).astype( np.int) simu_data = simu_data / size #plt.semilogy(t,model_data+30,label="model") #plt.semilogy(t,simu_data,'.',label="Simu wo gaussian") # ntime,ndata = mergeData(t,simu_data,binsize) # prepared_data = prepareData(t,simu_data)[:-1] # fig, ax = plt.subplots() # #ax.plot(*prepared_data,'.',c='k',label='data') # ##plt.plot(ntime,ndata) # fig,ax=plt.subplots() # for i in range(1,30):