示例#1
0
 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')
示例#2
0
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
示例#3
0
        '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)
示例#4
0
    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