Line data Source code
1 : // BeamShape.h is a part of the PYTHIA event generator.
2 : // Copyright (C) 2015 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 "Pythia8/Basics.h"
12 : #include "Pythia8/PythiaStdlib.h"
13 : #include "Pythia8/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 0 : BeamShape() {}
27 :
28 : // Destructor.
29 0 : virtual ~BeamShape() {}
30 :
31 : // Initialize beam parameters.
32 : virtual void init( Settings& settings, Rndm* rndmPtrIn);
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 0 : Vec4 deltaPA() const {return Vec4( deltaPxA, deltaPyA, deltaPzA, 0);}
39 0 : Vec4 deltaPB() const {return Vec4( deltaPxB, deltaPyB, deltaPzB, 0);}
40 0 : 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 : // Pointer to the random number generator.
56 : Rndm* rndmPtr;
57 :
58 : };
59 :
60 : //==========================================================================
61 :
62 : } // end namespace Pythia8
63 :
64 : #endif // Pythia8_BeamShape_H
|