PYTHIA  8.311
Public Member Functions | List of all members
PartonVertex Class Reference

The PartonVertex class sets parton-level vertex information. More...

#include <PartonVertex.h>

Inheritance diagram for PartonVertex:
PhysicsBase

Public Member Functions

 PartonVertex ()
 Constructor.
 
virtual ~PartonVertex ()
 Destructor.
 
virtual void init ()
 Initialize a few parameters from Settings. More...
 
virtual void vertexBeam (int iBeam, vector< int > &iRemn, vector< int > &iInit, Event &event)
 Select vertex for a beam particle. More...
 
virtual void vertexMPI (int iBeg, int nAdd, double bNowIn, Event &event)
 Select vertex for an MPI. More...
 
virtual void vertexFSR (int iNow, Event &event)
 Select vertex for an FSR branching. More...
 
virtual void vertexISR (int iNow, Event &event)
 Select vertex for an ISR branching. More...
 
virtual void vertexHadrons (int nBefFrag, Event &event)
 Propagate parton vertex information to hadrons. More...
 
- Public Member Functions inherited from PhysicsBase
void initInfoPtr (Info &infoPtrIn)
 This function is called from above for physics objects used in a run. More...
 
virtual ~PhysicsBase ()
 Empty virtual destructor.
 
bool flag (string key) const
 Shorthand to read settings values.
 
int mode (string key) const
 
double parm (string key) const
 
string word (string key) const
 
vector< bool > fvec (string key) const
 
vector< int > mvec (string key) const
 
vector< double > pvec (string key) const
 
vector< string > wvec (string key) const
 

Additional Inherited Members

- Public Types inherited from PhysicsBase
enum  Status {
  INCOMPLETE = -1, COMPLETE = 0, CONSTRUCTOR_FAILED, INIT_FAILED,
  LHEF_END, LOWENERGY_FAILED, PROCESSLEVEL_FAILED, PROCESSLEVEL_USERVETO,
  MERGING_FAILED, PARTONLEVEL_FAILED, PARTONLEVEL_USERVETO, HADRONLEVEL_FAILED,
  CHECK_FAILED, OTHER_UNPHYSICAL, HEAVYION_FAILED, HADRONLEVEL_USERVETO
}
 Enumerate the different status codes the event generation can have.
 
- Protected Member Functions inherited from PhysicsBase
 PhysicsBase ()
 Default constructor.
 
virtual void onInitInfoPtr ()
 
virtual void onBeginEvent ()
 This function is called in the very beginning of each Pythia::next call.
 
virtual void onEndEvent (Status)
 
virtual void onStat ()
 This function is called from the Pythia::stat() call.
 
void registerSubObject (PhysicsBase &pb)
 Register a sub object that should have its information in sync with this.
 
- Protected Attributes inherited from PhysicsBase
InfoinfoPtr = {}
 
SettingssettingsPtr = {}
 Pointer to the settings database.
 
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
 
LoggerloggerPtr = {}
 Pointer to logger.
 
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
 
RndmrndmPtr = {}
 Pointer to the random number generator.
 
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
 
CoupSUSYcoupSUSYPtr = {}
 
BeamSetupbeamSetupPtr = {}
 
BeamParticlebeamAPtr = {}
 
BeamParticlebeamBPtr = {}
 
BeamParticlebeamPomAPtr = {}
 
BeamParticlebeamPomBPtr = {}
 
BeamParticlebeamGamAPtr = {}
 
BeamParticlebeamGamBPtr = {}
 
BeamParticlebeamVMDAPtr = {}
 
BeamParticlebeamVMDBPtr = {}
 
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
 
SigmaTotalsigmaTotPtr = {}
 Pointers to the total/elastic/diffractive cross sections.
 
SigmaCombinedsigmaCmbPtr = {}
 
set< PhysicsBase * > subObjects
 
UserHooksPtr userHooksPtr
 

Detailed Description

The PartonVertex class sets parton-level vertex information.

Member Function Documentation

void init ( )
virtual

Initialize a few parameters from Settings.

The PartonVertex class.

Find relevant settings.

void vertexBeam ( int  iBeam,
vector< int > &  iRemn,
vector< int > &  iInit,
Event event 
)
virtual

Select vertex for a beam particle.

Set vertices for a beam particle and the beam remnants.

Set vertex for incoming beam particle itself.

Variables for further use.

Loop over all remnants and set their location relative to the beam.

Sample according to sphere.

Sample according to Gaussian.

Save. Calculate energy-weighted center and displacement weight.

Add initiator energy-weighted center relative to proton center.

Distribute recoil among remnants to ensure that center is centered. (But scale down if suspiciously large shift.)

void vertexFSR ( int  iNow,
Event event 
)
virtual

Select vertex for an FSR branching.

Start from known vertex, or mother one.

Add Gaussian smearing.

void vertexHadrons ( int  nBefFrag,
Event event 
)
virtual

Propagate parton vertex information to hadrons.

Propagate parton vertex information to hadrons. Still to be improved for closed gluon loops and junction topologies.

Identify known cases and else return.

Use middle of endpoints for collapse to single hadron.

Simple qqbar strings or closed gluon loops. Warning: for the latter still to transfer info on first breakup, so not correct as is, but still good enough for smearing purposes?

Initial values and variables.

Loop over new primary hadrons. Midpoint energy of new hadron.

Step up to parton pair that spans hadron midpoint energy.

Add weighted average of parton vertices to hadron vertex.

Done for simple cases.

Junction systems: identify order of hadrons produced.

Repair cases where one colour end is not identified.

Initial values for the two lowest-energy legs.

Loop over primary hadrons in two lowest-energy legs.

Step up to parton pair that spans hadron midpoint energy.

If only one parton left then set entirely by it, else weight.

Initial values for last leg.

Loop over primary hadrons in last leg.

Step up to parton pair that spans hadron midpoint energy.

If only one parton left then set entirely by it, else weight. Warning: could do better for junction baryon and hadron after it.

void vertexISR ( int  iNow,
Event event 
)
virtual

Select vertex for an ISR branching.

Start from known vertex or mother/daughter one.

Add Gaussian smearing.

void vertexMPI ( int  iBeg,
int  nAdd,
double  bNowIn,
Event event 
)
virtual

Select vertex for an MPI.

Convert the impact parameter to physical units. Prepare selection.

Sample x and y inside a box, and then require it to be within sphere.

Sample x and y according to two-dimensional Gaussian.

Option with elliptic shape.

Option with azimuthal distribution 1 + epsilon * cos(2 * phi).

Set production vertices.


The documentation for this class was generated from the following files: