1 // BeamShape.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2010 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.
6 // Header for classes to set beam momentum and interaction vertex spread.
8 #ifndef Pythia8_BeamShape_H
9 #define Pythia8_BeamShape_H
12 #include "PythiaStdlib.h"
17 //==========================================================================
19 // Base class to set beam momentum and interaction spot spread.
29 virtual ~BeamShape() {}
31 // Initialize beam parameters.
32 virtual void init( Settings& settings, Rndm* rndmPtrIn);
34 // Set the two beam momentum deviations and the beam vertex.
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);}
45 double deltaPxA, deltaPyA, deltaPzA, deltaPxB, deltaPyB, deltaPzB,
46 vertexX, vertexY, vertexZ, vertexT;
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,
55 // Pointer to the random number generator.
60 //==========================================================================
62 } // end namespace Pythia8
64 #endif // Pythia8_BeamShape_H