StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
BeamShape.h
1 // BeamShape.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2018 Torbjorn Sjostrand.
3 // PYTHIA is licenced under the GNU GPL v2 or later, 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  BeamShape() {}
27 
28  // Destructor.
29  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  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  // Pointer to the random number generator.
56  Rndm* rndmPtr;
57 
58 };
59 
60 //==========================================================================
61 
62 } // end namespace Pythia8
63 
64 #endif // Pythia8_BeamShape_H