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
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