PYTHIA
8.312
|
#include <Ropewalk.h>
Public Member Functions | |
Ropewalk () | |
Constructor. | |
virtual bool | init () |
The Ropewalk init function sets parameters and pointers. More... | |
bool | extractDipoles (Event &event, ColConfig &colConfig) |
Extract all dipoles from an event. More... | |
bool | calculateOverlaps () |
Calculate all overlaps of all dipoles and store as OverlappingRopeDipoles. More... | |
double | getKappaHere (int e1, int e2, double yfrac) |
double | multiplicity (double p, double q) |
The multiplicity of a colour state given its quantum numbers. | |
double | averageKappa () |
pair< int, int > | select (int m, int n, Rndm *rndm) |
Invoke the random walk and select a state. More... | |
void | shoveTheDipoles (Event &event) |
Shove all dipoles in the event. More... | |
Public Member Functions inherited from StringInteractions | |
StringInteractions ()=default | |
Empty constructor. | |
virtual | ~StringInteractions () |
Empty virtual destructor. | |
ColRecPtr | getColourReconnections () const |
Access the pointers to the different models. | |
DipSwingPtr | getDipoleSwing () const |
StringRepPtr | getStringRepulsion () const |
FragModPtr | getFragmentationModifier () const |
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 StringInteractions | |
ColRecPtr | colrecPtr {} |
DipSwingPtr | dipswingPtr {} |
StringRepPtr | stringrepPtr {} |
FragModPtr | fragmodPtr {} |
Protected Attributes inherited from PhysicsBase | |
Info * | infoPtr = {} |
Settings * | settingsPtr = {} |
Pointer to the settings database. | |
ParticleData * | particleDataPtr = {} |
Pointer to the particle data table. | |
Logger * | loggerPtr = {} |
Pointer to logger. | |
HadronWidths * | hadronWidthsPtr = {} |
Pointer to the hadron widths data table. | |
Rndm * | rndmPtr = {} |
Pointer to the random number generator. | |
CoupSM * | coupSMPtr = {} |
Pointers to SM and SUSY couplings. | |
CoupSUSY * | coupSUSYPtr = {} |
BeamSetup * | beamSetupPtr = {} |
BeamParticle * | beamAPtr = {} |
BeamParticle * | beamBPtr = {} |
BeamParticle * | beamPomAPtr = {} |
BeamParticle * | beamPomBPtr = {} |
BeamParticle * | beamGamAPtr = {} |
BeamParticle * | beamGamBPtr = {} |
BeamParticle * | beamVMDAPtr = {} |
BeamParticle * | beamVMDBPtr = {} |
PartonSystems * | partonSystemsPtr = {} |
Pointer to information on subcollision parton locations. | |
SigmaTotal * | sigmaTotPtr = {} |
Pointers to the total/elastic/diffractive cross sections. | |
SigmaCombined * | sigmaCmbPtr = {} |
set< PhysicsBase * > | subObjects |
UserHooksPtr | userHooksPtr |
The Ropewalk class keeps track of all the strings making up ropes for shoving as well as flavour enhancement.
double averageKappa | ( | ) |
Calculate the average string tension of the event, in units of the default string tension (ie. 1 GeV/fm), using random walk in colour space.
Getting the overlaps: m, n.
Overlaps define the number of steps taken in the random walk. We define the present dipole to always point in the p-direction.
bool calculateOverlaps | ( | ) |
Calculate all overlaps of all dipoles and store as OverlappingRopeDipoles.
Go through all dipoles.
RopeDipoles rapidities in dipole rest frame.
Go through all possible overlapping dipoles.
Skip self and overlaps with miniscule dipoles.
Ignore if not overlapping in rapidity.
double getKappaHere | ( | int | e1, |
int | e2, | ||
double | yfrac | ||
) |
Calculate the effective string tension a fraction yfrac in on the dipole given by indices e1 and e2.
Calculate the effective string tension a fraction yfrac in on the dipole, given by indices e1 and e2.
Get quantum numbers m and n.
If we are always in the highest multiplet, we need not do a random walk
Invoke default random walk procedure.
Calculate enhancement factor.
|
virtual |
The Ropewalk init function sets parameters and pointers.
Ropewalk class. This class keeps track of all the strings making up ropes for shoving as well as flavour enhancement.
Parameters of the ropewalk.
Creat the interface objects.
Check consistency.
Sanity check of flavour rope and vertex information. Flavour ropes requires vertex information, unless an effective string tension is supplied by hand or Buffon treatment.
Reimplemented from StringInteractions.
pair< int, int > select | ( | int | m, |
int | n, | ||
Rndm * | rndm | ||
) |
Invoke the random walk and select a state.
Invoke the random walk of colour states.
Initial valuesM mm and nn are step counters.
We must take all steps before terminating.
Take randomly a step in one direction.
Calculate the step probabilities.
Select a state.
As above, but for nn.
Done.
void shoveTheDipoles | ( | Event & | event | ) |
Shove all dipoles in the event.
Possibility of some initial propagation.
The rapidity slices.
Order the dipoles in max rapidity.
Order the dipoles in max rapidity.
Find maximal and minimal rapidity to sample.
Do the sampling from flat distribution.
For each value of ySample, we have a vector of excitation pairs.
Construct an empty vector of excitation particles.
Find dipoles sampled in this slice, and store them temporarily.
Construct excitation particles, one for each sampled dipole in this slice.
Test if the dipole can bear the excitation.
Erase dipoles which could not bear an excitation.
Add the actual excitations, but only if we can create pairs.
We boost the excitation back from dipole rest frame.
Construct all pairs of possible excitations in this slice.
Don't allow a string to shove itself.
Give the excitations pointers to the excitation particles.
Shoving loop.
For all slices.
For all excitation pairs.
The direction vector is a space-time four-vector.
The string radius is time dependent, growing with the speed of light. Minimal string size is 1 / shower cut-off converted to fm.
Calculate the push, its direction and do the shoving.
Gain function.
Propagate the dipoles.
Add the excitations to the dipoles.