PYTHIA  8.312
PartonVertex.h
1 // PartonVertex.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2024 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/PhysicsBase.h"
15 #include "Pythia8/PythiaStdlib.h"
16 #include "Pythia8/Settings.h"
17 
18 namespace Pythia8 {
19 
20 //==========================================================================
21 
22 // The PartonVertex class sets parton-level vertex information.
23 
24 class PartonVertex : public PhysicsBase {
25 
26 public:
27 
28  // Constructor.
29  PartonVertex() : doVertex(), modeVertex(), epsPhi(), epsRat(), rProton(),
30  rProton2(), pTmin(), widthEmission(), bNow(), bHalf(), xMax(), yMax(),
31  zWtMax() {}
32 
33  // Destructor.
34  virtual ~PartonVertex() {}
35 
36  // Initialize a few parameters from Settings.
37  virtual void init();
38 
39  // Select vertex for a beam particle.
40  virtual void vertexBeam( int iBeam, vector<int>& iRemn, vector<int>& iInit,
41  Event& event);
42 
43  // Select vertex for an MPI.
44  virtual void vertexMPI( int iBeg, int nAdd, double bNowIn, Event& event);
45 
46  // Select vertex for an FSR branching.
47  virtual void vertexFSR( int iNow, Event& event);
48 
49  // Select vertex for an ISR branching.
50  virtual void vertexISR( int iNow, Event& event);
51 
52  // Propagate parton vertex information to hadrons.
53  virtual void vertexHadrons( int nBefFrag, Event& event);
54 
55 private:
56 
57  // Data related to currently implemented models.
58  bool doVertex;
59  int modeVertex;
60  double epsPhi, epsRat, rProton, rProton2, pTmin, widthEmission;
61 
62  // Current values.
63  double bNow, bHalf, xMax, yMax, zWtMax;
64 
65 };
66 
67 //==========================================================================
68 
69 } // end namespace Pythia8
70 
71 #endif // Pythia8_PartonVertex_H
Definition: PhysicsBase.h:27
The Event class holds all info on the generated event.
Definition: Event.h:453
virtual void init()
Initialize a few parameters from Settings.
Definition: PartonVertex.cc:20
virtual void vertexFSR(int iNow, Event &event)
Select vertex for an FSR branching.
Definition: PartonVertex.cc:156
virtual ~PartonVertex()
Destructor.
Definition: PartonVertex.h:34
virtual void vertexHadrons(int nBefFrag, Event &event)
Propagate parton vertex information to hadrons.
Definition: PartonVertex.cc:196
The PartonVertex class sets parton-level vertex information.
Definition: PartonVertex.h:24
virtual void vertexBeam(int iBeam, vector< int > &iRemn, vector< int > &iInit, Event &event)
Select vertex for a beam particle.
Definition: PartonVertex.cc:37
virtual void vertexISR(int iNow, Event &event)
Select vertex for an ISR branching.
Definition: PartonVertex.cc:175
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
virtual void vertexMPI(int iBeg, int nAdd, double bNowIn, Event &event)
Select vertex for an MPI.
Definition: PartonVertex.cc:99
PartonVertex()
Constructor.
Definition: PartonVertex.h:29