def tanbForXsecLow(xSecAtLimit,mHp,tanbRef,mu):

    tanb = tanbRef
        
    accuracy = 0.001
    
    counter = 0
    xSec = crosssection.whTauNuCrossSectionMSSM(mHp,tanb,mu)
    while(abs(xSecAtLimit - xSec)/xSecAtLimit > accuracy and xSec > 0 and tanb > 1.1 ):
        tanb = tanb - 0.1*(xSecAtLimit - xSec)/xSecAtLimit*tanb
        xSec = crosssection.whTauNuCrossSectionMSSM(mHp,tanb,mu)
        counter = counter+1
        if counter > 10: # to prevent infinite loops
            counter = 0
            accuracy = accuracy*2
    if tanb < 1.1 or xSec <= 0:
        return -1
    return tanb
def tanbForXsecLow(xSecAtLimit, mHp, tanbRef, mu):

    tanb = tanbRef

    accuracy = 0.001

    counter = 0
    xSec = crosssection.whTauNuCrossSectionMSSM(mHp, tanb, mu)
    while (abs(xSecAtLimit - xSec) / xSecAtLimit > accuracy and xSec > 0
           and tanb > 1.1):
        tanb = tanb - 0.1 * (xSecAtLimit - xSec) / xSecAtLimit * tanb
        xSec = crosssection.whTauNuCrossSectionMSSM(mHp, tanb, mu)
        counter = counter + 1
        if counter > 10:  # to prevent infinite loops
            counter = 0
            accuracy = accuracy * 2
    if tanb < 1.1 or xSec <= 0:
        return -1
    return tanb
def tanbForXsec(xSecAtLimit,mHp,tanbRef,mu):

    tanb = tanbRef

    accuracy = 0.001    

    counter = 0
    xSec = crosssection.whTauNuCrossSectionMSSM(mHp,tanb,mu)
    while(abs(xSecAtLimit - xSec)/xSecAtLimit > accuracy and xSec > 0 and tanb < 99 ):
        tanb = tanb + 0.1*(xSecAtLimit - xSec)/xSecAtLimit*tanb
	xSec = crosssection.whTauNuCrossSectionMSSM(mHp,tanb,mu)
	counter = counter+1
	if counter > 10: # to prevent infinite loops
	    counter = 0
	    accuracy = accuracy*2
#        print "       tanbForXsec loop, tanb, xsec ",tanb,xSec
#    print "check tanbForXsec ",tanb
    if tanb > 99 or xSec <= 0:
	return -1
    return tanb
def tanbForXsec(xSecAtLimit, mHp, tanbRef, mu):

    tanb = tanbRef

    accuracy = 0.001

    counter = 0
    xSec = crosssection.whTauNuCrossSectionMSSM(mHp, tanb, mu)
    while (abs(xSecAtLimit - xSec) / xSecAtLimit > accuracy and xSec > 0
           and tanb < 99):
        tanb = tanb + 0.1 * (xSecAtLimit - xSec) / xSecAtLimit * tanb
        xSec = crosssection.whTauNuCrossSectionMSSM(mHp, tanb, mu)
        counter = counter + 1
        if counter > 10:  # to prevent infinite loops
            counter = 0
            accuracy = accuracy * 2


#        print "       tanbForXsec loop, tanb, xsec ",tanb,xSec
#    print "check tanbForXsec ",tanb
    if tanb > 99 or xSec <= 0:
        return -1
    return tanb
def signalXsecAtNsigma(nSignal,tanbRef,nSignalAtLimit,mHp,mu):
    xSec_atRef = crosssection.whTauNuCrossSectionMSSM(mHp, tanbRef, mu)
    xSec_atLimit = xSec_atRef*nSignalAtLimit/nSignal
#    print "check signalXsecAtNsigma xSec_atRef,xSec_atLimit,nSignalAtLimit,nSignal ",xSec_atRef,xSec_atLimit,nSignalAtLimit,nSignal
    return xSec_atLimit
示例#6
0
def signalXsecAtNsigma(nSignal, tanbRef, nSignalAtLimit, mHp, mu):
    xSec_atRef = crosssection.whTauNuCrossSectionMSSM(mHp, tanbRef, mu)
    xSec_atLimit = xSec_atRef * nSignalAtLimit / nSignal
    #    print "check signalXsecAtNsigma xSec_atRef,xSec_atLimit,nSignalAtLimit,nSignal ",xSec_atRef,xSec_atLimit,nSignalAtLimit,nSignal
    return xSec_atLimit