Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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