]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8170/phpdoc/PartonDistributions.php
Update to pythi8.170
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8170 / phpdoc / PartonDistributions.php
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} &lt; x &lt; 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 -->