Esempio n. 1
0
def MakeEffLimits(exp, xLim_DP, Lim_DP, geff, optype, DelIni=0.1):
    xeff, ProdEff = br.NProd(DelIni, exp, geff, optype)
    xProd_DP, NProd_DP = br.NProd_DP(exp)

    #     if exp=="faser": print("faser Lim eps original:",ProdEff,xeff,NProd_DP,xProd_DP,Lim_DP,xLim_DP)

    xi, ratio, Lim = uf.GetRatio(ProdEff, xeff, NProd_DP, xProd_DP, Lim_DP,
                                 xLim_DP)
    if optype == "AV":  # We need to rescale the decay rate also
        Lam1TeV = np.full(np.size(xi), 1000)
        GamV = am.GamHDSee(xi, DelIni, Lam1TeV, {
            "gu11": 2 / 3.,
            "gd11": -1 / 3.,
            "gd22": -1 / 3.,
            "gl11": -1.
        }, "V")
        GamAV = am.GamHDSee(xi, DelIni, Lam1TeV, geff, "AV")
        Gamratio = GamAV / GamV
    else:
        Lam1TeV = np.full(np.size(xi), 1000)
        GamVem = am.GamHDSee(xi, DelIni, Lam1TeV, {
            "gu11": 2 / 3.,
            "gd11": -1 / 3.,
            "gd22": -1 / 3.,
            "gl11": -1.
        }, "V")
        GamV = am.GamHDSee(xi, DelIni, Lam1TeV, geff, "V")
        Gamratio = GamV / GamVem
    EffLimIni = 0.013 * np.sqrt(xi) / np.sqrt(Lim) * np.power(
        ratio * Gamratio, 1 / 8.) * 1000
    #     if exp=="faser": print("faser ratio original:",ratio[xi>0.01]*Gamratio[xi>0.01])

    #     if exp=="faser": print("faser EffLimIni original:",EffLimIni[xi>0.01])
    #     print(xi, EffLimIni)
    return xi, EffLimIni
Esempio n. 2
0
def FastScatLimit(exp, x_in, Lim_in, Del_in, Del, geff, optype="V"):
    ##### Assuming the splitting to be irrelevant --> upscattering easy to get using the beam energy
    gu, gd, ge, gs = Fillg(geff)

    if Del > 0.5:
        print(
            "Warning: recasting of scattering limits only implemented for small or zero splitting"
        )
    M2tildeToM1 = (1 + 1 / (1 + Del)) / (2 + Del_in)
    xProd_DPtmp, NProd_DP = br.NProd_DP(exp)
    xProd_DP = xProd_DPtmp / 1.0  # Switching to zero splitting to avoid problems at the resonance
    mymin = np.min(xProd_DP) / M2tildeToM1
    # Sending M1 to M2tilde
    mymax = np.max(xProd_DP) / M2tildeToM1
    xi = uf.log_sample(mymin, mymax, 200)
    Lam1TeV = np.full(np.size(xi), 1000)
    xProd_new, Prod_new = br.NProd(Del, exp, geff, optype)
    Nnew = np.interp(xi, xProd_new * (1 + Del), Prod_new)

    xProd, NProd = br.NProd(Del, exp, geff, optype)

    xi, ratio, LimDP = uf.GetRatio(NProd, xProd, NProd_DP, xProd_DP, Lim_in,
                                   x_in)

    gscat = (np.abs(gu) + np.abs(gd))
    EffLim = 0.013 * np.sqrt(xi) / np.sqrt(LimDP) * np.power(
        ratio, 1 / 8.) * 1000 * np.sqrt(gscat)

    return xi, EffLim