]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8130/xmldoc/BeamShape.xml
pythia8130 distributed with AliRoot
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / xmldoc / BeamShape.xml
1 <chapter name="Beam Shape">
2
3 <h2>Beam Shape</h2>
4
5 The <aloc href="BeamParameters">Beam Parameters</aloc>
6 page explains how you can set a momentum spread of the two incoming
7 beams, and a spread and offset for the location of the interaction
8 vertex. The spread is based on a simple parametrization in terms of
9 independent Gaussians, however, which is likely to be too primitive
10 for realistic applications. 
11
12 <p/>
13 It is therefore possible to define your own class, derived from the 
14 <code>BeamShape</code> base class, and hand it in to Pythia with the
15 <aloc href="ProgramFlow">
16 <code>pythia.setBeamShapePtr( BeamShape*)</code></aloc> method. 
17 Below we describe what such a class has to do. An explicit toy example 
18 is shown in <code>main27.cc</code>.
19
20 <p/>
21 The <code>BeamShape</code> base class has a very simple structure.
22 It only has two virtual methods. The first, <code>init()</code>, is 
23 used for initialization. The second, <code>pick()</code>, selects
24 beam momentum and production vertex in the current event.
25
26 <p/>
27 The base-class <code>init()</code> method simply reads in the values 
28 stored in the <code>Settings</code> data base. You are free to  
29 write your own derived initialization routine, or use the existing one. 
30 In the latter case you can then give your own modified interpretation 
31 to the beam spread parameters defined there. 
32
33 <p/>
34 The two flags <code>Beams:allowMomentumSpread</code> and 
35 <code>Beams:allowVertexSpread</code> should not be tampered with,
36 however. These are checked elsewhere to determine whether the beam 
37 shape should be set or not, whereas the other momentum-spread
38 and vertex-spread parameters are local to this class.
39
40 <p/>
41 The <code>pick()</code> method is the key one to supply in the derived
42 class. Here you are free to pick whatever parametrization you desire
43 for beam momenta and vertex position, including correlations between
44 the two. At the end of the day, you should set
45 <br/><code>deltaPxA, deltaPyA, deltaPzA</code> for the three-momentum 
46 deviation of the first incoming beam, relative to the nominal values;
47 <br/><code>deltaPxB, deltaPyB, deltaPzB</code> for the three-momentum 
48 deviation of the second incoming beam, relative to the nominal values;
49 <br/><code>vertexX, vertexY, vertexZ, vertexT</code> for the 
50 production-vertex position and time.
51 <br/>These values will then be read out with the three base-class methods
52 <code>deltaPA()</code>, <code>deltaPB()</code> and <code>vertex()</code>.  
53
54 </chapter>
55
56 <!-- Copyright (C) 2008 Torbjorn Sjostrand -->