337f13a4fd6bc836f407cf724ad4da83f91ae09c
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / include / BeamShape.h
1 // BeamShape.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2008 Torbjorn Sjostrand.
3 // PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
4 // Please respect the MCnet Guidelines, see GUIDELINES for details.
5
6 // Header for classes to set beam momentum and interaction vertex spread.
7
8 #ifndef Pythia8_BeamShape_H
9 #define Pythia8_BeamShape_H
10
11 #include "Basics.h"
12 #include "PythiaStdlib.h"
13 #include "Settings.h"
14
15 namespace Pythia8 {
16  
17 //**************************************************************************
18
19 // Base class to set beam momentum and interaction spot spread.
20
21 class BeamShape {
22
23 public:
24
25   // Constructor.
26   BeamShape() {}
27
28   // Destructor.
29   virtual ~BeamShape() {}
30
31   // Initialize beam parameters.
32   virtual void init();
33
34   // Set the two beam momentum deviations and the beam vertex.
35   virtual void pick();
36
37   // Methods to read out the choice made with the above method.
38   Vec4 deltaPA() const {return Vec4( deltaPxA, deltaPyA, deltaPzA, 0);}
39   Vec4 deltaPB() const {return Vec4( deltaPxB, deltaPyB, deltaPzB, 0);}
40   Vec4 vertex()  const {return Vec4( vertexX, vertexY, vertexZ, vertexT);}
41
42 protected:
43
44   // Values to be set.
45   double deltaPxA, deltaPyA, deltaPzA, deltaPxB, deltaPyB, deltaPzB,
46          vertexX, vertexY, vertexZ, vertexT;
47   
48   // Parameters of Gaussian parametrizations.
49   bool   allowMomentumSpread, allowVertexSpread;
50   double sigmaPxA, sigmaPyA, sigmaPzA, maxDevA, sigmaPxB, sigmaPyB, 
51          sigmaPzB, maxDevB, sigmaVertexX, sigmaVertexY, sigmaVertexZ, 
52          maxDevVertex, sigmaTime, maxDevTime, offsetX, offsetY, 
53          offsetZ, offsetT;
54
55 };
56  
57 //**************************************************************************
58
59 } // end namespace Pythia8
60
61 #endif // Pythia8_BeamShape_H