main02.py

Gloals

  • compute bin/total cross section in \(ep\) reaction

Code

First we include some headers

import sys,os
sys.path.append(os.path.dirname( os.path.dirname(os.path.abspath(__file__) ) ) )
import numpy as np
from theory.tools import save, load
from theory.idis  import IDIS

sys.path.append(os.path.dirname( os.path.dirname(os.path.abspath(__file__) ) ) ) will add paths to be able to load the theory module. Next we set physical parameters of the reaction

rs   = 140.7
lum  = '10:fb-1'
sign = 1  #--electron=1 positron=-1

Select lhapdf table name

tabname='JAM4EIC'

Define a user defined global cuts

def veto(x,y,Q2,W2):
    if   W2 < 10          : return 0
    elif Q2 < 1           : return 0
    else                  : return 1

Create a dictionary with all the parameters and initialize the IDIS class

data={}
data['tabname'] = tabname
data['iset']    = 0    #--central
data['iF2']     = 908
data['iFL']     = 909
data['iF3']     = 910
data['sign']    = 1    #--electron=1 positron=-1
data['veto']    = veto
idis=IDIS(data)

Next we setup the kimeatics to compute the cross section

data['neval'] = 10000
data['rs']    = 140.7
data['iw']    = 0
data['units'] = 'fb'  # or 'GeV^-2'

data['mode']  = 'xy'
data['xmin']  = 0.01
data['xmax']  = 0.02
data['ymin']  = 0.7
data['ymax']  = 0.8

val,err,Q = idis.get_cross_section(**data)
print('%0.4e +/- %0.4e (%s) (Q=%f)'%(val,err,data['units'],Q))

Here use mode=xy to integrate cross sections in \(x-y\) space. The parameter iw=0,1,2 is to integrate with a factor of \(1,x,y\) respectively. neval controls the vegas samples.

The mode parameter can be changed to compute the cross section in \(x-Q^2\) space e.g

data['mode']  = 'xQ2'
data['xmin']  = 0.01
data['xmax']  = 0.02
data['Q2min'] = 5.0
data['Q2max'] = 10.0

val,err,Q = idis.get_cross_section(**data)
print('%0.4e +/- %0.4e (%s) (Q=%f)'%(val,err,data['units'],Q))