def log_likelihood_onebin(binnum, pos): eta = pos[0] xs = pos[1] xb = pos[2] if eta < 0.: return np.NINF s = N_sig[binnum] * (1 + E_sig[binnum]/N_sig[binnum])**xs b = N_bkg[binnum] * (1 + E_bkg[binnum]/N_bkg[binnum])**xb lam = eta * s + b log_Normal_xs = np.log(1./np.sqrt(2*np.pi)) -xs**2/2. log_Normal_xb = np.log(1./np.sqrt(2*np.pi)) -xb**2/2. log_Poisson_lam = np.log(poisson.pmf(Data_obs[binnum], lam)) log_likelihood = np.log(prior((eta,s,b))) + log_Poisson_lam + log_Normal_xs + log_Normal_xb progbar.step_progress() return log_likelihood
def log_likelihood_all(pos): eta = pos[0] xs = pos[1] xb = pos[2] if eta < 0.: return np.NINF s = N_sig * (1 + E_sig/N_sig)**xs b = N_bkg * (1 + E_bkg/N_bkg)**xb lam = eta * s + b log_Normal_xs = np.log(1./np.sqrt(2*np.pi)) -xs**2/2. log_Normal_xb = np.log(1./np.sqrt(2*np.pi)) -xb**2/2. log_Poisson_lam = np.log(poisson.pmf(Data_obs, lam)) log_likelihood = np.log(prior((eta,s,b))) + np.sum(log_Poisson_lam) + log_Normal_xs + log_Normal_xb progbar.step_progress() return log_likelihood
def log_likelihood_all_legacy(pos): eta = pos[0] xs = pos[1] xb = pos[2] if eta < 0.: return np.NINF s = N_sig * (1 + E_sig/N_sig)**xs b = N_bkg * (1 + E_bkg/N_bkg)**xb lam = eta * s + b log_Normal_xs = np.log(1./np.sqrt(2*np.pi)) -xs**2/2. log_Normal_xb = np.log(1./np.sqrt(2*np.pi)) -xb**2/2. log_factorial = np.zeros_like(Data_obs) for i in range(0,len(log_factorial)): for j in range(1,np.round(Data_obs[i]).astype(np.int)): log_factorial[i] += np.log(j) log_Poisson_lam = Data_obs*np.log(lam) -lam - log_factorial log_likelihood = np.log(prior((eta,s,b))) + np.sum(log_Poisson_lam) + log_Normal_xs + log_Normal_xb progbar.step_progress() return log_likelihood