def __init__(self): conf['alphaSmode'] = 'backward' conf['order'] = 'NLO' conf['Q20'] = 1 conf['alphaS'] = ALPHAS() self.aux = conf['aux'] self.CF = self.aux.CF self.TR = self.aux.TR self.CA = self.aux.CA self.eU2 = 4.0 / 9.0 self.eD2 = 1.0 / 9.0 self.storage = {} conf['cpdf'] = INTERPOLATOR('CJ15lo_0000')
def red_integrad(stf, rs, x, Q2, sign, iF2, iFL, iF3, iw, current): F2 = stf.xfxQ2(iF2, x, Q2) FL = stf.xfxQ2(iFL, x, Q2) F3 = 0 aS = ALPHAS() M_W = 80.385 G_F = 1.16638e-5 #value taken from HERAfitter y = np.log(np.sqrt(Q2) / (x * rs)) Yp = 1 + (1 - y)**2 if iw == 0: factor = 1 elif iw == 1: factor = x elif iw == 2: factor = Q if current == 'NC': red_factor = (Q2**2 * x) / (2 * np.pi * aS**2 * Yp) elif current == 'CC': red_factor = (2 * np.pi * x / G_F**2) / ((M_W**2 + Q2) / M_W**2) else: print('current not specified when calculating sigma reduced') return get_sigma_dxdQ2(rs, x, Q2, F2, FL, F3, sign) * factor * red_factor
'min': 0, 'max': 2 } conf['lattice tabs'] = READER(conf).load_data_sets('lattice') ##################################################### conf['path2CJ'] = '../../external/CJLIB' conf['path2LSS'] = '../../external/LSSLIB' conf['path2DSS'] = '../../external/DSSLIB' # setup for inclusive dis conf['alphaSmode'] = 'backward' conf['Q20'] = 1 conf['order'] = 'LO' conf['aux'] = AUX() conf['alphaS'] = ALPHAS(conf) conf['pdf-NLO'] = CJ(conf) conf['dis stfuncs'] = DIS_STFUNCS(conf) # setup tmd sidis conf['order'] = 'LO' conf['_pdf'] = CJ(conf) conf['_ppdf'] = LSS(conf) conf['_ff'] = DSS(conf) conf['pdf'] = PDF(conf) conf['ppdf'] = PPDF(conf) conf['ff'] = FF(conf) conf['transversity'] = TRANSVERSITY(conf) conf['sivers'] = SIVERS(conf) conf['boermulders'] = BOERMULDERS(conf) conf['pretzelosity'] = PRETZELOSITY(conf)
def get_dsig(self,ppT,lpT,yL,yP,thLP,x, z, xi, zt, rs, tar, had): # Mandelstam variables at the hadron level ss = rs * rs oz = 1. / z ozt= 1. / zt rf=self.get_rapidityf(rs,ppT,lpT,yL,yP,thLP) mp=self.get_mparton(x,xi,z,zt,rs,ppT,lpT,yL,yP,thLP) m=self.get_mandelstam(mp['s'], mp['t'], mp['u'], mp['sp'], mp['tp'], mp['up']) # Prefactor aS=ALPHAS() denfacint = 1. / (zt*zt*xi*z*z*x) pifac = (1. / math.pi**3.) denfac = 1. / (-xi*xi*rf['tt']*rf['ss']*rf['ss']*rf['uu']*x*x*z*z) numfac=-(1./137.)*as.get_alphaS(mp['Q2']) convert=(.389379)**3. #Gev^-6 to millibarn^3 prefac=denfacint*pifac*denfac*numfac*convert Hupol=self.get_Hupol(ppT,lpT,yL,yP,thLP,x, z, xi, zt, rs) Hupol1 = Hupol[1] Hupol2 = Hupol[2] Hupol3 = Hupol[3] Hupol4 = Hupol[4] Hupol5 = Hupol[5] # Get arrays of the nonperturbative functions f = self.get_f(x, mp['Q2']) #ft = get_ft(xp, Q2) d = self.get_d(z, mp['Q2'], 'pi+') fl = self.get_fl(xi,mp['Q2']) dl = self.get_dl(zt,mp['Q2']) if had.endswith('-'): d = conf['aux'].charge_conj(d) elif had.endswith('0'): dp=d dm=conf['aux'].charge_conj(d) d=0.5*(dp+dm) #print z,z*dp,z*dm,z*d fg = f[0] fu = f[1] fub = f[2] fd = f[3] fdb = f[4] fs = f[5] fsb = f[6] dg = d[0] du = d[1] dub = d[2] dd = d[3] ddb = d[4] ds = d[5] dsb = d[6] #e[i] is charge of pdf function Hadprod = 0 for i in range (6): for j in range ( i+1,6): Hadprod = Hadprod +e[i]*el*e[i]*el*f[i]*d[j] Hupol = xi*xi*(Hupol1-Hupol2+Hupol3)+Hupol4+Hupol5 upol=fl*dl*Hupol*Hadprod return prefac * upol