本文整理汇总了Python中Constants.g_kperpA方法的典型用法代码示例。如果您正苦于以下问题:Python Constants.g_kperpA方法的具体用法?Python Constants.g_kperpA怎么用?Python Constants.g_kperpA使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Constants
的用法示例。
在下文中一共展示了Constants.g_kperpA方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Getkperphitmiss
# 需要导入模块: import Constants [as 别名]
# 或者: from Constants import g_kperpA [as 别名]
def Getkperphitmiss(self,string): # to be used within the string decay class
''' function used to generate a sensible kperp value based on a hit or miss rejection basis '''
''' Find the suitable range (min - max) of kperp values based on the given string '''
sigma = Constants.kperpsigma()
g_sigma = Constants.gsigma() # this value is for g(x) such that g(x) > f(x). If edited, needs to be recalculated (c.f. finding a suitable.... generation)
#g_sigma = Constants.kperpsigma()
B = 1/(g_sigma*g_sigma)
A = Constants.g_kperpA()
M = string.Getstringmass()
kperpmin = 0
kperpmax = M/2 # where M is the invariant mass of the string decaying
# g_kperp = Aexp(-kperp/(gsigma*gsigma) = Aexp(-Bkperp) #numpy.exp(-M*M/(sigma1*sigma1)) - this factor can be omited as it cancels when creating testvalue (its essentially a constant)
G_kperp_max = -(A/B)*numpy.exp(-B*kperpmax)
G_kperp_min = -(A/B)*numpy.exp(-B*kperpmin)
while True:
rand_1 = numpy.random.uniform(0,1) #(kperpmin,kperpmax)
rand_2 = numpy.random.uniform(0,1) #(kperpmin,kperpmax)
kperp_test = -(1/B)*numpy.log(rand_1*(numpy.exp(-kperpmax*B)-1) + 1) # working inverse function
#kperp_test = -(1/B)*numpy.log(rand_1*(1-numpy.exp(kperpmax*B)) - 1) # bfroken inverse function
#kperp_test = -(1/B)*numpy.log(rand_1 - 1 +numpy.exp(-kperpmax*B)) # dans inverse function
f_kperptest = numpy.exp(-kperp_test*kperp_test/(sigma*sigma)) # system designed such that gx is always greater than fx
g_kperptest = A*numpy.exp(-B*kperp_test)
testvalue = f_kperptest/g_kperptest
if rand_2 <= testvalue:
return kperp_test
break
else:
continue