1 | <html> |
---|
2 | <head> |
---|
3 | <title>Parton Distributions</title> |
---|
4 | <link rel="stylesheet" type="text/css" href="pythia.css"/> |
---|
5 | <link rel="shortcut icon" href="pythia32.gif"/> |
---|
6 | </head> |
---|
7 | <body> |
---|
8 | |
---|
9 | <script language=javascript type=text/javascript> |
---|
10 | function stopRKey(evt) { |
---|
11 | var evt = (evt) ? evt : ((event) ? event : null); |
---|
12 | var node = (evt.target) ? evt.target :((evt.srcElement) ? evt.srcElement : null); |
---|
13 | if ((evt.keyCode == 13) && (node.type=="text")) |
---|
14 | {return false;} |
---|
15 | } |
---|
16 | |
---|
17 | document.onkeypress = stopRKey; |
---|
18 | </script> |
---|
19 | <?php |
---|
20 | if($_POST['saved'] == 1) { |
---|
21 | if($_POST['filepath'] != "files/") { |
---|
22 | echo "<font color='red'>SETTINGS SAVED TO FILE</font><br/><br/>"; } |
---|
23 | else { |
---|
24 | echo "<font color='red'>NO FILE SELECTED YET.. PLEASE DO SO </font><a href='SaveSettings.php'>HERE</a><br/><br/>"; } |
---|
25 | } |
---|
26 | ?> |
---|
27 | |
---|
28 | <form method='post' action='PartonDistributions.php'> |
---|
29 | |
---|
30 | <h2>Parton Distributions</h2> |
---|
31 | |
---|
32 | The parton distributions file contains the <code>PDF</code> class. |
---|
33 | <code>PDF</code> is the base class, from which specific <code>PDF</code> |
---|
34 | classes are derived. |
---|
35 | |
---|
36 | <p/> |
---|
37 | The choice of which PDF to use is made by settings in the |
---|
38 | <code>Pythia</code> class, see <?php $filepath = $_GET["filepath"]; |
---|
39 | echo "<a href='PDFSelection.php?filepath=".$filepath."' target='page'>";?>here</a>. |
---|
40 | These settings also allow to access all the proton PDF's available in the |
---|
41 | LHAPDF library [<a href="Bibliography.php" target="page">Wha05</a>]. Thus there is no need for a normal user |
---|
42 | to study the <code>PDF</code> class. The structure must only be understood |
---|
43 | when interfacing new PDF's, e.g. ones not yet found in LHAPDF. |
---|
44 | |
---|
45 | <h3>The PDF base class</h3> |
---|
46 | |
---|
47 | <code>PDF</code> defines the interface that all PDF classes should respect. |
---|
48 | The constructor requires the incoming beam species to be given: |
---|
49 | even if used for a proton PDF, one needs to know whether the beam |
---|
50 | is actually an antiproton. This is one of the reasons why <code>Pythia</code> |
---|
51 | always defines two PDF objects in an event, one for each beam. |
---|
52 | |
---|
53 | <p/> |
---|
54 | Once a <code>PDF</code> object has been constructed, call it <code>pdf</code>, |
---|
55 | the main method is <code>pdf.xf( id, x, Q2)</code>, which returns |
---|
56 | <i>x*f_id(x, Q2)</i>, properly taking into account whether the beam |
---|
57 | is an antiparticle or not. |
---|
58 | |
---|
59 | <p/> |
---|
60 | Whenever the <code>xf</code> member is called with a new flavour, <i>x</i> |
---|
61 | or <i>Q^2</i>, the <code>xfUpdate</code> member is called to do the actual |
---|
62 | updating. This routine may either update that particular flavour or all |
---|
63 | flavours at this <i>(x, Q^2)</i> point. (In the latter case the saved |
---|
64 | <code>id</code> value <code>idSav</code> should be set to 9.) The choice is |
---|
65 | to be made by the producer of a given set, based on what he/she deems most |
---|
66 | effective, given that sometimes only one flavour need be evaluated, and |
---|
67 | about equally often all flavours are needed at the same <i>x</i> and |
---|
68 | <i>Q^2</i>. Anyway, the latest value is always kept in memory. This is |
---|
69 | the other reason why <code>Pythia</code> has one separate <code>PDF</code> |
---|
70 | object for each beam, so that values at different <i>x</i> can be kept |
---|
71 | in memory. |
---|
72 | |
---|
73 | <p/> |
---|
74 | Two further public methods are <code>xfVal( id, x, Q2)</code> and |
---|
75 | <code>xfSea( id, x, Q2)</code>. These are simple variants whereby |
---|
76 | the quark distributions can be subdivided into a valence and a sea part. |
---|
77 | If these are not directly accessible in the parametrization, onc can |
---|
78 | make the simplified choices <i>u_sea = ubar_sea, u_val = u_tot - u_sea</i>, |
---|
79 | and correspondingly for <i>d</i>. (Positivity will always be guaranteed |
---|
80 | at output.) The <code>xfUpdate</code> method should also take care of |
---|
81 | updating this information. |
---|
82 | |
---|
83 | <p/> |
---|
84 | A method <code>setExtrapolate(bool)</code> allows you to switch between |
---|
85 | freezing parametrizations at the <i>x</i> and <i>Q^2</i> boundaries |
---|
86 | (<code>false</code>) or extrapolating them outside the boundaries |
---|
87 | (<code>true</code>). This method is only implemented for the LHAPDF class |
---|
88 | below. If you implement a new PDF you are free to use this method, but it |
---|
89 | would be smarter to hardcode the desired limiting behaviour. |
---|
90 | |
---|
91 | <h3>Derived classes</h3> |
---|
92 | |
---|
93 | There is only one pure virtual method, <code>xfUpdate</code>, that |
---|
94 | therefore must be implemented in any derived class. A reasonable |
---|
95 | number of such classes come with the program: |
---|
96 | |
---|
97 | <p/> |
---|
98 | For protons: |
---|
99 | <ul> |
---|
100 | <li><code>LHAPDFinterface</code> provides an interface to the |
---|
101 | LHAPDF library[<a href="Bibliography.php" target="page">Wha05</a>].</li> |
---|
102 | <li><code>GRV94L</code> gives the GRV 94 L parametrization |
---|
103 | [<a href="Bibliography.php" target="page">Glu95</a>].</li> |
---|
104 | <li><code>CTEQ5L</code> gives the CTEQ 5 L parametrization |
---|
105 | [<a href="Bibliography.php" target="page">Lai00</a>].</li> |
---|
106 | <li><code>MSTWpdf</code> gives the four distributions of the |
---|
107 | MRST/MSTW group that have been implemented.</li> |
---|
108 | <li><code>CTEQ6pdf</code> gives the six distributions of the |
---|
109 | CTEQ/CT group that have been implemented.</li> |
---|
110 | </ul> |
---|
111 | The current default is CTEQ 5L, which has been used in most studies |
---|
112 | to date. |
---|
113 | |
---|
114 | <p/> |
---|
115 | For charged pions: |
---|
116 | <ul> |
---|
117 | <li><code>GRVpiL</code> gives the GRV 1992 pi+ parametrization.</li> |
---|
118 | </ul> |
---|
119 | |
---|
120 | <p/> |
---|
121 | For Pomerons (used to describe diffraction): |
---|
122 | <ul> |
---|
123 | <li><code>PomFix</code> gives a simple but flexible |
---|
124 | <i>Q2</i>-independent parametrization.</li> |
---|
125 | <li><code>PomH1FitAB</code> gives the H1 2006 Fit A and Fit B |
---|
126 | parametrizations.</li> |
---|
127 | <li><code>PomH1Jets</code> gives the H1 2007 Jets parametrization.</li> |
---|
128 | </ul> |
---|
129 | |
---|
130 | <p/> |
---|
131 | For charged leptons (e, mu, tau): |
---|
132 | <ul> |
---|
133 | <li><code>Lepton</code> gives a QED parametrization [<a href="Bibliography.php" target="page">Kle89</a>]. |
---|
134 | In QED there are not so many ambiguities, so here one set should be |
---|
135 | enough. On the other hand, there is the problem that the |
---|
136 | lepton-inside-lepton pdf is integrably divergent for <i>x -> 1</i>, |
---|
137 | which gives numerical problems. Like in PYTHIA 6, the pdf is therefore |
---|
138 | made to vanish for <i>x > 1 - 10^{-10}</i>, and scaled up in the range |
---|
139 | <i>1 - 10^{-7} < x < 1 - 10^{-10}</i> in such a way that the |
---|
140 | total area under the pdf is preserved.</li> |
---|
141 | <li><code>LeptonPoint</code> gives the trivial distribution of a |
---|
142 | pointlike (i.e. unresolved) charged lepton.</li> |
---|
143 | </ul> |
---|
144 | |
---|
145 | <p/> |
---|
146 | For neutrinos: |
---|
147 | <ul> |
---|
148 | <li><code>NeutrinoPoint</code> is the only method, so there is no choice. |
---|
149 | Analogously to <code>LeptonPoint</code> it gives the distribution of a |
---|
150 | pointlike (i.e. unresolved) neutrino. A difference, however, is that |
---|
151 | neutrinos always are lefthanded, so there is no need to average over |
---|
152 | incoming spin states. Since the PYTHIA formalism assumes unpolarized |
---|
153 | beams, and thus implicitly includes a 1/2 for incoming fermions, the |
---|
154 | <code>NeutrinoPoint</code> PDF is normalized to 2 rather than 1 |
---|
155 | to compensate for this.</li> |
---|
156 | </ul> |
---|
157 | |
---|
158 | <p/> |
---|
159 | There is another method, <code>isSetup()</code>, that returns the |
---|
160 | base-class boolean variable <code>isSet</code>. This variable is |
---|
161 | initially <code>true</code>, but could be set <code>false</code> if the |
---|
162 | setup procedure of a PDF failed, e.g. if the user has chosen an unknown |
---|
163 | PDF set. |
---|
164 | |
---|
165 | <p/> |
---|
166 | The MRST/MSTW, CTEQ/CT and H1 PDF routines are based on the interpolation |
---|
167 | in <i>(x, Q)</i> grids. The grid files are stored in the |
---|
168 | <code>xmldoc</code> subdirectory, like settings and particle data. |
---|
169 | Only PDF sets that will be used are read in during the initialization |
---|
170 | stage. |
---|
171 | |
---|
172 | </body> |
---|
173 | </html> |
---|
174 | |
---|
175 | <!-- Copyright (C) 2012 Torbjorn Sjostrand --> |
---|