1 <chapter name="Parton Distributions">
3 <h2>Parton Distributions</h2>
5 The parton distributions file contains the <code>PDF</code> class.
6 <code>PDF</code> is the base class, from which specific <code>PDF</code>
10 The choice of which PDF to use is made by settings in the
11 <code>Pythia</code> class, see <aloc href="PDFSelection">here</aloc>.
12 These settings also allow to access all the proton PDF's available in the
13 LHAPDF library <ref>Wha05</ref>. Thus there is no need for a normal user
14 to study the <code>PDF</code> class. The structure must only be understood
15 when interfacing new PDF's, e.g. ones not yet found in LHAPDF.
17 <h3>The PDF base class</h3>
19 <code>PDF</code> defines the interface that all PDF classes should respect.
20 The constructor requires the incoming beam species to be given:
21 even if used for a proton PDF, one needs to know whether the beam
22 is actually an antiproton. This is one of the reasons why <code>Pythia</code>
23 always defines two PDF objects in an event, one for each beam.
26 Once a <code>PDF</code> object has been constructed, call it <code>pdf</code>,
27 the main method is <code>pdf.xf( id, x, Q2)</code>, which returns
28 <ei>x*f_id(x, Q2)</ei>, properly taking into account whether the beam
29 is an antiparticle or not.
32 Whenever the <code>xf</code> member is called with a new flavour, <ei>x</ei>
33 or <ei>Q^2</ei>, the <code>xfUpdate</code> member is called to do the actual
34 updating. This routine may either update that particular flavour or all
35 flavours at this <ei>(x, Q^2)</ei> point. (In the latter case the saved
36 <code>id</code> value <code>idSav</code> should be set to 9.) The choice is
37 to be made by the producer of a given set, based on what he/she deems most
38 effective, given that sometimes only one flavour need be evaluated, and
39 about equally often all flavours are needed at the same <ei>x</ei> and
40 <ei>Q^2</ei>. Anyway, the latest value is always kept in memory. This is
41 the other reason why <code>Pythia</code> has one separate <code>PDF</code>
42 object for each beam, so that values at different <ei>x</ei> can be kept
46 Two further public methods are <code>xfVal( id, x, Q2)</code> and
47 <code>xfSea( id, x, Q2)</code>. These are simple variants whereby
48 the quark distributions can be subdivided into a valence and a sea part.
49 If these are not directly accessible in the parametrization, onc can
50 make the simplified choices <ei>u_sea = ubar_sea, u_val = u_tot - u_sea</ei>,
51 and correspondingly for <ei>d</ei>. (Positivity will always be guaranteed
52 at output.) The <code>xfUpdate</code> method should also take care of
53 updating this information.
56 A method <code>setExtrapolate(bool)</code> allows you to switch between
57 freezing parametrizations at the <ei>x</ei> and <ei>Q^2</ei> boundaries
58 (<code>false</code>) or extrapolating them outside the boundaries
59 (<code>true</code>). This method is only implemented for the LHAPDF class
60 below. If you implement a new PDF you are free to use this method, but it
61 would be smarter to hardcode the desired limiting behaviour.
63 <h3>Derived classes</h3>
65 There is only one pure virtual method, <code>xfUpdate</code>, that
66 therefore must be implemented in any derived class. A reasonable
67 number of such classes come with the program:
72 <li><code>LHAPDFinterface</code> provides an interface to the
73 LHAPDF library<ref>Wha05</ref>.</li>
74 <li><code>GRV94L</code> gives the GRV 94 L parametrization
75 <ref>Glu95</ref>.</li>
76 <li><code>CTEQ5L</code> gives the CTEQ 5 L parametrization
77 <ref>Lai00</ref>.</li>
78 <li><code>MSTWpdf</code> gives the four distributions of the
79 MRST/MSTW group that have been implemented.</li>
80 <li><code>CTEQ6pdf</code> gives the six distributions of the
81 CTEQ/CT group that have been implemented.</li>
83 The current default is CTEQ 5L, which has been used in most studies
89 <li><code>GRVpiL</code> gives the GRV 1992 pi+ parametrization.</li>
93 For Pomerons (used to describe diffraction):
95 <li><code>PomFix</code> gives a simple but flexible
96 <ei>Q2</ei>-independent parametrization.</li>
97 <li><code>PomH1FitAB</code> gives the H1 2006 Fit A and Fit B
98 parametrizations.</li>
99 <li><code>PomH1Jets</code> gives the H1 2007 Jets parametrization.</li>
103 For charged leptons (e, mu, tau):
105 <li><code>Lepton</code> gives a QED parametrization <ref>Kle89</ref>.
106 In QED there are not so many ambiguities, so here one set should be
107 enough. On the other hand, there is the problem that the
108 lepton-inside-lepton pdf is integrably divergent for <ei>x -> 1</ei>,
109 which gives numerical problems. Like in PYTHIA 6, the pdf is therefore
110 made to vanish for <ei>x > 1 - 10^{-10}</ei>, and scaled up in the range
111 <ei>1 - 10^{-7} < x < 1 - 10^{-10}</ei> in such a way that the
112 total area under the pdf is preserved.</li>
113 <li><code>LeptonPoint</code> gives the trivial distribution of a
114 pointlike (i.e. unresolved) lepton or neutrino.</li>
117 There is another method, <code>isSetup()</code>, that returns the
118 base-class boolean variable <code>isSet</code>. This variable is
119 initially <code>true</code>, but could be set <code>false</code> if the
120 setup procedure of a PDF failed, e.g. if the user has chosen an unknown
124 The MRST/MSTW, CTEQ/CT and H1 PDF routines are based on the interpolation
125 in <ei>(x, Q)</ei> grids. The grid files are stored in the
126 <code>xmldoc</code> subdirectory, like settings and particle data.
127 Only PDF sets that will be used are read in during the initialization
132 <!-- Copyright (C) 2010 Torbjorn Sjostrand -->