]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA8/pythia8170/include/BeamShape.h
Update to pythi8.170
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8170 / include / BeamShape.h
diff --git a/PYTHIA8/pythia8170/include/BeamShape.h b/PYTHIA8/pythia8170/include/BeamShape.h
new file mode 100644 (file)
index 0000000..ed7343c
--- /dev/null
@@ -0,0 +1,64 @@
+// BeamShape.h is a part of the PYTHIA event generator.
+// Copyright (C) 2012 Torbjorn Sjostrand.
+// PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
+// Please respect the MCnet Guidelines, see GUIDELINES for details.
+
+// Header for classes to set beam momentum and interaction vertex spread.
+
+#ifndef Pythia8_BeamShape_H
+#define Pythia8_BeamShape_H
+
+#include "Basics.h"
+#include "PythiaStdlib.h"
+#include "Settings.h"
+
+namespace Pythia8 {
+//==========================================================================
+
+// Base class to set beam momentum and interaction spot spread.
+
+class BeamShape {
+
+public:
+
+  // Constructor.
+  BeamShape() {}
+
+  // Destructor.
+  virtual ~BeamShape() {}
+
+  // Initialize beam parameters.
+  virtual void init( Settings& settings, Rndm* rndmPtrIn);
+
+  // Set the two beam momentum deviations and the beam vertex.
+  virtual void pick();
+
+  // Methods to read out the choice made with the above method.
+  Vec4 deltaPA() const {return Vec4( deltaPxA, deltaPyA, deltaPzA, 0);}
+  Vec4 deltaPB() const {return Vec4( deltaPxB, deltaPyB, deltaPzB, 0);}
+  Vec4 vertex()  const {return Vec4( vertexX, vertexY, vertexZ, vertexT);}
+
+protected:
+
+  // Values to be set.
+  double deltaPxA, deltaPyA, deltaPzA, deltaPxB, deltaPyB, deltaPzB,
+         vertexX, vertexY, vertexZ, vertexT;
+  
+  // Parameters of Gaussian parametrizations.
+  bool   allowMomentumSpread, allowVertexSpread;
+  double sigmaPxA, sigmaPyA, sigmaPzA, maxDevA, sigmaPxB, sigmaPyB, 
+         sigmaPzB, maxDevB, sigmaVertexX, sigmaVertexY, sigmaVertexZ, 
+         maxDevVertex, sigmaTime, maxDevTime, offsetX, offsetY, 
+         offsetZ, offsetT;
+
+  // Pointer to the random number generator.
+  Rndm*  rndmPtr;
+
+};
+//==========================================================================
+
+} // end namespace Pythia8
+
+#endif // Pythia8_BeamShape_H