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