def rise_time_prob_exp_progression(rise_time,energy,mu_k,sigma_k,xlo,xhi): expfunc = lambda p, x: p[1]*np.exp(-p[0]*x) + p[2] expfunc1 = lambda p, x: p[1]*x + p[0] # Pull out the constants for the polynomials. allmu = expfunc(mu_k,energy) #allsigma = expfunc(sigma_k,energy) allsigma = expfunc1(sigma_k,energy) # Linear func #ret = (1.0/(x*sigma*np.sqrt(2*np.pi)))*np.exp(-((np.log(x)-mu)**2)/(2*sigma*sigma)) if type(rise_time)==np.ndarray: ret = np.zeros(len(rise_time)) for i in xrange(len(ret)): #print rise_time[i],allmu[i],allsigma[i] ret[i] = pdfs.lognormal(rise_time[i],allmu[i],allsigma[i],xlo,xhi) #print "\t",ret[i] else: ret = 0.0 #print rise_time,allmu,allsigma ret = pdfs.lognormal(rise_time,allmu,allsigma,xlo,xhi) #print "\t",ret return ret
def rise_time_prob_exp_progression(rise_time, energy, mu_k, sigma_k, xlo, xhi): expfunc = lambda p, x: p[1] * np.exp(-p[0] * x) + p[2] expfunc1 = lambda p, x: p[1] * x + p[0] # Pull out the constants for the polynomials. allmu = expfunc(mu_k, energy) #allsigma = expfunc(sigma_k,energy) allsigma = expfunc1(sigma_k, energy) # Linear func #ret = (1.0/(x*sigma*np.sqrt(2*np.pi)))*np.exp(-((np.log(x)-mu)**2)/(2*sigma*sigma)) if type(rise_time) == np.ndarray: ret = np.zeros(len(rise_time)) for i in xrange(len(ret)): #print rise_time[i],allmu[i],allsigma[i] ret[i] = pdfs.lognormal(rise_time[i], allmu[i], allsigma[i], xlo, xhi) #print "\t",ret[i] else: ret = 0.0 #print rise_time,allmu,allsigma ret = pdfs.lognormal(rise_time, allmu, allsigma, xlo, xhi) #print "\t",ret return ret
def rise_time_prob_fast_exp_dist(rise_time, energy, mu0, sigma0, murel, sigmarel, numrel, xlo, xhi): expfunc = lambda p, x: p[1] * np.exp(-p[0] * x) + p[2] # Pull out the constants for the polynomials. fast_mean0 = expfunc(mu0, energy) fast_sigma0 = expfunc(sigma0, energy) if type(rise_time) == np.ndarray: fast_num0 = np.ones(len(rise_time)).astype('float') else: fast_num0 = 1.0 # The entries for the relationship between the broad and narrow peak. fast_mean_rel = expfunc(murel, energy) fast_sigma_rel = expfunc(sigmarel, energy) fast_logn_num_rel = expfunc(numrel, energy) fast_mean1 = fast_mean0 - fast_mean_rel fast_sigma1 = fast_sigma0 - fast_sigma_rel fast_num1 = fast_num0 / fast_logn_num_rel tempnorm = (fast_num0 + fast_num1) fast_num0 /= tempnorm fast_num1 /= tempnorm #print "Fast NUMS 0 and 1: ",fast_num0[10],fast_num1[10] if type(rise_time) == np.ndarray: ret = np.zeros(len(rise_time)) for i in xrange(len(ret)): ##print rise_time[i],allmu[i],allsigma[i] pdf0 = pdfs.lognormal(rise_time[i], fast_mean0[i], fast_sigma0[i], xlo, xhi) pdf1 = pdfs.lognormal(rise_time[i], fast_mean1[i], fast_sigma1[i], xlo, xhi) #ret[i] = fast_num0[i]*pdf0 + fast_num1[i]*pdf1 ######### BELLIS IS THIS HOW WE NORMALIZE THE SUM????? ret[i] = (fast_num0[i] * pdf0 + fast_num1[i] * pdf1) / (fast_num0[i] + fast_num1[i]) #ret[i] = (fast_num0[i]*pdf0 + fast_num1[i]*pdf1) #print "\t",ret[i] else: pdf0 = pdfs.lognormal(rise_time, fast_mean0, fast_sigma0, xlo, xhi) pdf1 = pdfs.lognormal(rise_time, fast_mean1, fast_sigma1, xlo, xhi) #ret = fast_num0*pdf0 + fast_num1*pdf1 ######### BELLIS IS THIS HOW WE NORMALIZE THE SUM????? ret = (fast_num0 * pdf0 + fast_num1 * pdf1) / (fast_num0 + fast_num1) #ret = (fast_num0*pdf0 + fast_num1*pdf1) #print "\t",ret return ret
def rise_time_prob_fast_exp_dist(rise_time,energy,mu0,sigma0,murel,sigmarel,numrel,xlo,xhi): expfunc = lambda p, x: p[1]*np.exp(-p[0]*x) + p[2] # Pull out the constants for the polynomials. fast_mean0 = expfunc(mu0,energy) fast_sigma0 = expfunc(sigma0,energy) if type(rise_time)==np.ndarray: fast_num0 = np.ones(len(rise_time)).astype('float') else: fast_num0 = 1.0 # The entries for the relationship between the broad and narrow peak. fast_mean_rel = expfunc(murel,energy) fast_sigma_rel = expfunc(sigmarel,energy) fast_logn_num_rel = expfunc(numrel,energy) fast_mean1 = fast_mean0 - fast_mean_rel fast_sigma1 = fast_sigma0 - fast_sigma_rel fast_num1 = fast_num0 / fast_logn_num_rel tempnorm = (fast_num0+fast_num1) fast_num0 /= tempnorm fast_num1 /= tempnorm #print "Fast NUMS 0 and 1: ",fast_num0[10],fast_num1[10] if type(rise_time)==np.ndarray: ret = np.zeros(len(rise_time)) for i in xrange(len(ret)): ##print rise_time[i],allmu[i],allsigma[i] pdf0 = pdfs.lognormal(rise_time[i],fast_mean0[i],fast_sigma0[i],xlo,xhi) pdf1 = pdfs.lognormal(rise_time[i],fast_mean1[i],fast_sigma1[i],xlo,xhi) #ret[i] = fast_num0[i]*pdf0 + fast_num1[i]*pdf1 ######### BELLIS IS THIS HOW WE NORMALIZE THE SUM????? ret[i] = (fast_num0[i]*pdf0 + fast_num1[i]*pdf1)/(fast_num0[i]+fast_num1[i]) #ret[i] = (fast_num0[i]*pdf0 + fast_num1[i]*pdf1) #print "\t",ret[i] else: pdf0 = pdfs.lognormal(rise_time,fast_mean0,fast_sigma0,xlo,xhi) pdf1 = pdfs.lognormal(rise_time,fast_mean1,fast_sigma1,xlo,xhi) #ret = fast_num0*pdf0 + fast_num1*pdf1 ######### BELLIS IS THIS HOW WE NORMALIZE THE SUM????? ret = (fast_num0*pdf0 + fast_num1*pdf1)/(fast_num0+fast_num1) #ret = (fast_num0*pdf0 + fast_num1*pdf1) #print "\t",ret return ret