StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
PartonVertex.h
1 // PartonVertex.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 file for vertex information during the parton-level evolution.
7 
8 #ifndef Pythia8_PartonVertex_H
9 #define Pythia8_PartonVertex_H
10 
11 #include "Pythia8/Basics.h"
12 #include "Pythia8/Event.h"
13 #include "Pythia8/Info.h"
14 #include "Pythia8/PythiaStdlib.h"
15 #include "Pythia8/Settings.h"
16 
17 namespace Pythia8 {
18 
19 //==========================================================================
20 
21 // The PartonVertex class sets parton-level vertex information.
22 
23 class PartonVertex {
24 
25 public:
26 
27  // Constructor.
28  PartonVertex() {}
29 
30  // Destructor.
31  virtual ~PartonVertex() {}
32 
33  // Initialize various pointers.
34  // (Separated from rest of init since not virtual.)
35  void initPtr(Info* infoPtrIn, Settings* settingsPtrIn, Rndm* rndmPtrIn) {
36  infoPtr = infoPtrIn; settingsPtr = settingsPtrIn; rndmPtr = rndmPtrIn;}
37 
38  // Initialize a few parameters from Settings.
39  virtual void init();
40 
41  // Select vertex for a Beam Remnant particle.
42  virtual void vertexBeam( int iNow, int iBeam, Event& event);
43 
44  // Select vertex for an MPI.
45  virtual void vertexMPI( int iBeg, int nAdd, double bNowIn, Event& event);
46 
47  // Select vertex for an FSR branching.
48  virtual void vertexFSR( int iNow, Event& event);
49 
50  // Select vertex for an ISR branching.
51  virtual void vertexISR( int iNow, Event& event);
52 
53 protected:
54 
55  // Pointer to various information on the generation.
56  Info* infoPtr;
57 
58  // Pointer to the settings database.
59  Settings* settingsPtr;
60 
61  // Pointer to the random number generator.
62  Rndm* rndmPtr;
63 
64 private:
65 
66  // Data related to currently implemented models.
67  bool doVertex;
68  int modeVertex;
69  double rProton, pTmin, widthEmission, bScale;
70 
71  // Current values.
72  double bNow, xMax, yMax, mux;
73 
74 };
75 
76 //==========================================================================
77 
78 } // end namespace Pythia8
79 
80 #endif // Pythia8_PartonVertex_H