DISPred - a program to calculate deep inelastic scattering cross sections
aa r X i v : . [ h e p - ph ] J u l DISPred - a program to calculate deep inelastic scatteringcross sectionsv1.0
J. FerrandoUniversity of OxfordSeptember 14, 2018
Abstract
A new package, DISPred, is described. The package can be used to calculate e ± p deepinelastic scattering cross sections at Born level in Electroweak theory and at both leadingand next-to-leading order in QCD. The package DISPred arose as a result of the need to produce predictions of deep inelasticscattering (DIS) electron-proton cross sections at next-to-leading order (NLO) in QCDfor comparison to data in ZEUS publications. In the current version (1.0) predictions forthe following are available at both leading order (LO) and NLO in QCD: • the reduced/ double-diff cross sections for neutral current (NC) and charged current(CC) DIS • the total cross section σ tot for NC and CC DIS • differential cross sections dσdQ , dσdx , dσdy for NC and CC DISfor collisions of unpolarized beams of electrons ( e ± ) and protons.DISPred has been tested with LHAPDF 5.8.2 [1] and can produce predictions for theZEUS-JETS [2] or HERA0.1 parton distribution functions (PDFs) in LHAPDF in the .LHpdf format, or any other PDF within LHAPDF in the .LHgrid format.It produces output in ascii text format and can also produce histograms and graphsin ROOT-based [3] formats. The LO QCD, Born-level electroweak, cross section is calculated according to the formu-lation given by Devenish and Cooper-Sarkar[4]. .1 Reduced and Double Differential Cross Sections The double differential cross section in NC scattering is:d σ e ± p NC d x d Q = 2 πα Y + xQ [ F NC2 ( x, Q ) − y Y + F NC L ( x, Q ) ∓ Y − Y + xF NC3 ( x, Q )] . (1)Where, as is conventional, Q is the virtuality of the exchanged boson, x is the mo-mentum fraction of the struck parton in the infinite proton-momentum, F NC i are structurefunctions defined later, Y ± = 1 ± (1 − y ) and y is the inelasticity of the electron.For the leading order calculation the structure functions are defined as follows: F NC2 = X i A i ( Q )( xq i ( x, Q ) + x ¯ q i ( x, Q )); (2) F NC L = 0; (3) xF NC3 = X i B i ( Q )( xq i ( x, Q ) − x ¯ q i ( x, Q )); ; (4)where A i and B i can be expressed in terms of the NC vector and axial-vector elec-troweak couplings to the quarks (electron) v i ( v e ) and a i ( a e ) and quark charge e i as A i = e i − e i v i v e P Z ( Q ) + ( v e + a e )( v i + a i ) P Z ( Q ) (5)and B i = − e i a i a e P Z ( Q ) + 4 a i v i v e a e P z ( Q ) (6)and P Z ( Q ) = Q Q + M Z (cid:18) θ W (cid:19) (7)The reduced cross section for NC scattering is:˜ σ e ± p NC = [ F NC2 ( x, Q ) − y Y + F NC L ( x, Q ) ∓ Y − Y + xF NC3 ( x, Q )] . (8) The double differential cross section in CC scattering is:d σ e ± p CC d x d Q = G F M W πx ( Q + M W ) [ Y + F CC2 ( x, Q ) − y F CC L ( x, Q ) ∓ Y − xF CC3 ( x, Q )] . (9) here M W is the mass of the W boson, G F the Fermi coupling constant and the F CC i are defined at LO in QCD as : F CC ,e + = x ( d + s + ¯ u + ¯ c ) (10) xF CC ,e + = x ( d + s − ¯ u − ¯ c ) (11) F CC ,e − = x ( u + c + ¯ d + ¯ s ) (12) xF CC ,e − = x ( u + c − ¯ d − ¯ s ) (13)which leads to the following expressions for the reduced cross sections:˜ σ CCe + = x [(1 − y ) ( d + s ) + ¯ u + ¯ c ] (14)˜ σ CCe − = x [(1 − y ) ( ¯ d + ¯ s ) + u + c ] (15) In order to calculate the single differential and total cross sections, the expression for thedouble differential cross sections is integrated over the allowed regions of Q , x and y usingthe VEGAS [5] algorithm as implemented in the GNU Scientific Library[6]. The numberof calls used in VEGAS may be specified via the control cards. Differential cross sectionsmay also be calculated at a “point”; in this case the width of the bin which containsthe point is multiplied by a predetermined factor (which can be chosen in the controlcards) to provide an approximate calculation. If no input points are specifed via cards,the option “AUTO” may be chosen which makes the program DISPrediction calculatethe differential cross sections at the centroid of the bin.
The implementation of
Qcdnum F , F L and F at NLO in QCD. The prescription used bythe ZEUS collaboration for the ZEUS JETS fit [8, 2] has been adopted. As such DISPred can perform the QCD evolution for the ZEUS-JETS and ZEUS-S fits and use the .LHpdf format files from LHAPDF for this. In the case of other PDFs
DISPred can fill a Q , x grid for Qcdnum using the values from the tt .LHGrid file. The structure functions arethen generated from this grid.All other aspects of the reduced cross section cross sectionare the same as for the leading order case.Predicted NLO reduced cross sections in CC DIS made using DISPred for e + p col-lisons with proton energy 920 GeV and positron energy 27.56 GeV are shown in figure 1.Predictions are shown for the PDF sets ZEUS-JETS [2], MSTW08 [9], CTEQ66 [10] andHERAPDF1.0 [11]. In addition the uncertainties for the ZEUS-JETS predictions areshown as a yellow band. In the expressions shown above the small, Cabbibo-suppressed, contribution from the b -quark is neglected,it is however included in the calculation made by DISPred. In v1.0 DISPred is only suitable for use for theHERA energy regime and so top quark contributions are not included (1-y) ~ s x=0.015 ZEUS-JETSMSTW08NLOCTEQ6.6HERAPDF1.0 )c+uZEUS-JETS ( , (1-y) ~ s x=0.032 (1-y) ~ s x=0.068 , (1-y) ~ s x=0.13 (1-y) ~ s x=0.24 , (1-y) ~ s x=0.42 Figure 1: Predictions of ˜ σ at NLO in QCD for CC DIS in e + p collisions with proton energy920 GeV and positron energy 27.56 GeV. 4 .2 Single Differential and Total Cross Sections The single and total cross sections at NLO are calculated in precisely the same manner asfor the LO calculations except that the NLO expressions for the structure functions areused.
The code has been tested on GNU/Linux systems and as such the following packages arerequired for installation: • GNU autoconf automake • The GNU scientific library • LHAPDF • ROOT
Tarballs of the package may be downloaded from .After downloadig the tarball, the package may be installed with: tar -zxvf DISPred-1.0.tgzcd DISPred./configure --prefix=
This assumes that root-config and lhapdf-config are already in your path. Do notchoose
Within
DISPrediction which canbe used to produce predictions for ep DIS cross sections. This program takes as input acards file e.g.:
DISPrediction example.cards
An example set for testing is available in the example subdirectory of the tarball. Theavailable options for the cards file are summarised in table 1.
The DISPred packagedprovides a library as well as the
DISPrediction executable. Thislibrary makes it easy to construct programmes that calculate DIS cross sections. Anexample of a simple programme is in fact
DISPrediction itself, which is very short: int ElectronCharge e + or e − int VegasCalls" string PDFSetFileName ”ZEUS2005 ZJ.LHpdf” Name of PDF file to use int PDFSubSet string QCDCalculationLevel ”LO” Can be “LO” or “NLO” string DISProcess ”NC” Choose CC or NC double ZBosonMass M Z (GeV) double WBosonMass M W (GeV) double AlphaEM × − α EM double GFermi − G F double TopMass M t double BottomMass M b double Vub V ub double Vcb V cb double Sin2ThetaW θ W double Sin2ThetaC θ C double CouplingVu v u SM= 0 . − ∗ sin θ W double CouplingVd -0.351 v d SM= − . ∗ sin θ W double CouplingVe -0.00538 v e SM= − . ∗ sin θ W double CouplingAu a u double CouplingAd -0.5 a d double CouplingAe -0.5 a e string ReducedCrossSection ”OFF” can be OFF or ON string ReducedCrossSectionBins ”q2xpoints.dat” file containing points for ˜ σ double DiffBinPointScale dσdQ etc. string DSigmaDQ2 ”OFF” can be OFF or ON string DSigmaDQ2Bins ”q2bins.dat” file containing bins for string DSigmaDQ2Points ”AUTO” file with points for dσdQ string DSigmaDX ”OFF” can be OFF or ON string DSigmaDXBins ”xbins.dat” file containing bins for dσdx string DSigmaDXPoints ”AUTO” file with points for string DSigmaDY ”OFF” can be OFF or ON string DSigmaDYBins ”ybins.dat” file containing points for dσdy string DSigmaDYPoints ”AUTO” file with points for double Q2Min Q double Q2Max Q double XMin x double XMax x double YMin y double YMax y double ELepton double EProton string ROOTOutputFile ”DISPredOut.root” Output file for ROOTTable 1: Available control cards for DISPrediction .6 include
DISPred . ControlCards
Class
The control cards class is used to handle configuration options that can be read in froma text file. It is implemented as a singleton class. Available methods for the class aredetailed below.
ControlCards* Instance() : Returns a pointer to the instance of control cards. void AddCardDouble(const std::string key, const double defval) : Defines a cardwith name key and with a default double precision value defval . void AddCardInt(const std::string key, const int defval) : Defines a card withname key and with a default value defval which is an integer. void AddCardString(const std::string key, std::string defval) : Defines a cardwith name key and with a default value defval which is a string. void AddCardVector(const std::string key, const std::vector
The
DISPredictor class is a singleton class that is the workhorse of DISPred. It hasmany public methods. static DISPredictor* Instance() : returns the instance of
DISPredictor . void Initialise(int my argc, char **my argv) : Initialise DISPredictor based on acards file name which can come directly from stdin . void CalculateCrossSections() : Calculate cross sections as configured in the cards. void InitPDF(int subset) : Initialise the chosen PDF set. void PrintResults() : Print results to stdout . void WriteOutput() : Write the output rootfile. double CalculateReducedCrossSection(double x, double q2) : Calculate a NC DISreduced cross section. double CalculateCCReducedCrossSection(double x, double q2) : Calculate a CCDIS reduced cross section. double CalculatePropagator(double q2, double x) : Calculate the NC propagator. double CalculateCCPropagator(double q2, double x) : Calculate the CC propaga-tor. double CalculateDSigmaDQ2(double q2min,double q2max) : Calculate dσdQ . double CalculateDSigmaDX(double xmin,double xmax) : Calculate dσdx . double CalculateQ2DSigmaDQ2(double q2min,double q2max) : Calculate Q dσdQ . double CalculateXDSigmaDX(double xmin,double xmax) :Calculate x dσdx . double CalculateDSigmaDY(double ymin,double ymax) : Calculate dσdy . double CalculateYDSigmaDY(double ymin,double ymax) : Calculate y dσdy . double S() : Return the centre-of-mass energy squared. RedSigmaPoint class
The
RedSigmaPoint class is a simple class for storing information about double-differentialcross sections points. For each point the Q ( q2 ), x ( x ), ˜ σ ( redsigma ) and d σdQ dx ( d2sdq2dx ). RedSigmaPoint(double q2, double x) : constructor that creates a point with q2 = q2 and x = x and other values 0. RedSigmaPoint(double q2, double x,double redsigma) : constructor that creates apoint with q2 = q2 and x = x , redsigma = redsigma and d2sdq2dx =0. RedSigmaPoint(double q2, double x,double redsigma, double d2sdq2dx ) : con-structor that creates a point with q2 = q2 and x = x , redsigma = redsigma and d2sdq2dx = d2sdq2dx . RedSigmaPoint() : Constructor with all vlaues set to 0; double Q2() : returns q2 . ouble X() : returns x . double RedSigma() : returns redsigma . double D2sDQ2Dx() : returns d2sdq2dx . void SetRedSigma(double reduced) : Set redsigma . void SetD2sDQ2Dx(double reduced) : Set d2sdq2dx . void Print() : Print out information. void PrintShort() : Briefly print out information. RedSigmaGrid class
The
RedSigmaGrid class inherits from a std::vector
DiffSigmaPoint class
The
DiffSigmaPoint class is a simple class for storing information about single-differentialcross sections at a point. A point in the variable of choice called var and the differentialcross section diffsigma are stored. The following public methods are available.
DiffSigmaPoint() : Default constructor, sets var to 1.5 and diffsigma to 0.
DiffSigmaPoint(double var) : Constructor that creates a point at var = var with diffsigma =0. DiffSigmaPoint(double var, double diffsigma) : Constructor that creates a pointat var = var with diffsigma = diffsigma . void Print() : Print out information. void PrintShort() : Briefly print out information. double Var() : returns var . double DiffSigma() : returns diffsigma . void SetDiffSigma(double diffsigma) : sets diffsigma to diffsigma . When DISPred produces an output root file, then a
TTree and several histograms andgraphs are produced.
TTree A TTree called
ReducedCrossSections is produced. The variables in this tree are listedin table 2. int point
An integer giving the ID of the point double Q2
The Q of the point double x The x of the point double ddiffsigma The double-differential cross section double redsigma
The reduced cross section double d
The d PDF at this point double dbar
The ¯ d PDF at this point double u
The u PDF at this point double ubar
The ¯ u PDF at this point double s
The s PDF at this point double sbar
The ¯ s PDF at this point double c
The c PDF at this point double cbar
The ¯ c PDF at this point double b
The b PDF at this point double bbar
The ¯ b PDF at this pointTable 2: Tree variables in the root output file.
Six
TH1D objects are produced:
DSigmaDQ2 : Binwise dσdQ ; DSigmaDX : Binwise dσdx ; DSigmaDY : Binwise dσdy . Q2DSigmaDQ2 : Binwise Q dσdQ ; XDSigmaDX : Binwise x dσdx ; YDSigmaDY : Binwise y dσdy . Three
TGraphAsymErrors objecs are produced:
GraphDSigmaDQ2 : Pointwise dσdQ ; GraphDSigmaDX : Pointwise dσdx ; GraphDSigmaDY : Pointwise dσdy . This manual for the DISPred package v1.0 has outlined the features currently imple-mented together with a simple example programme that will make predictions for DIScross sections in ep scattering. The code and most up-to-date information are hosted byhepforge at: http://projects.hepforge.org/dispred/ . cknowledgements The author wishes to thank C. Gwenlan for help with
QCDNUM and cross checks ofthe results from DISPred, M. Sutton for testing the code, A. Tapper for providing codethat is used for the implementation of control cards and R. Ciesielski, A. Cooper-Sarkar,K. Oliver, E. Tassi and M. Turcato for feedback on the results.
References [1] M. R. Whalley, D. Bourilkov, and R. C. Group,
The Les Houches Accord PDFs(LHAPDF) and Lhaglue , hep-ph/0508110 .[2] ZEUS
Collaboration, S. Chekanov et al. , An NLO QCD analysis of inclusivecross-section and jet- production data from the zeus experiment , Eur. Phys. J.
C42 (2005) 1–16, [ hep-ph/0503274 ].[3] R. Brun and F. Rademakers,
ROOT: An object oriented data analysis framework , Nucl. Instrum. Meth.
A389 (1997) 81–86.[4] R. Devenish and A. Cooper-Sarkar,
Deep inelastic scattering , . Oxford, UK: Univ.Pr. (2004) 403 p.[5] G. P. Lepage,
A New Algorithm for Adaptive Multidimensional Integration , J.Comput. Phys. (1978) 192.[6] M. Galassi et al. , GNU Scientific Library Reference Manual , . (3 rd Ed.) ISBN0954612078.[7] M. Botje,
A QCD analysis of HERA and fixed target structure function data , Eur.Phys. J.
C14 (2000) 285–297, [ hep-ph/9912439 ].[8]
ZEUS
Collaboration, S. Chekanov et al. , A ZEUS next-to-leading-order QCDanalysis of data on deep inelastic scattering , Phys. Rev.
D67 (2003) 012007,[ hep-ex/0208023 ].[9] A. D. Martin, W. J. Stirling, R. S. Thorne, and G. Watt,
Parton distributions forthe LHC , arXiv:0901.0002 .[10] W. K. Tung et al. , Heavy quark mass effects in deep inelastic scattering and globalQCD analysis , JHEP (2007) 053, [ hep-ph/0611254 ].[11] H1 and ZEUS
Collaboration, F. D. Aaron et al. , Combined Measurement andQCD Analysis of the Inclusive ep Scattering Cross Sections at HERA , JHEP (2010) 109, [ arXiv:0911.0884 ].].