#include <stringprocess.h>
String excitation processes used in SMASH.
Only one instance of this class should be created.
This class implements string excitation processes based on the UrQMD model Bass:1998ca [5], Bleicher:1999xi [10] and subsequent fragmentation according to the LUND/PYTHIA fragmentation scheme Andersson:1983ia [3], Sjostrand:2014zea [52], Bierlich:2022pfr [8].
The class implements the following functionality:
Definition at line 45 of file stringprocess.h.
Public Member Functions | |
StringProcess (double string_tension, double time_formation, double gluon_beta, double gluon_pmin, double quark_alpha, double quark_beta, double strange_supp, double diquark_supp, double sigma_perp, double stringz_a_leading, double stringz_b_leading, double stringz_a, double stringz_b, double string_sigma_T, double factor_t_form, bool mass_dependent_formation_times, double prob_proton_to_d_uu, bool separate_fragment_baryon, double popcorn_rate, bool use_monash_tune) | |
Constructor, initializes pythia. More... | |
void | common_setup_pythia (Pythia8::Pythia *pythia_in, double strange_supp, double diquark_supp, double popcorn_rate, double stringz_a, double stringz_b, double string_sigma_T) |
Common setup of PYTHIA objects for soft and hard string routines. More... | |
void | init_pythia_hadron_rndm () |
Set PYTHIA random seeds to be desired values. More... | |
std::array< double, 3 > | cross_sections_diffractive (int pdg_a, int pdg_b, double sqrt_s) |
Interface to pythia_sigmatot_ to compute cross-sections of A+B-> different final states Schuler:1993wr [49]. More... | |
void | set_pmin_gluon_lightcone (double p_light_cone_min) |
set the minimum lightcone momentum scale carried by gluon. More... | |
void | set_pow_fgluon (double betapow) |
lightcone momentum fraction of gluon is sampled according to probability distribution P(x) = 1/x * (1 - x)^{1 + pow_fgluon_beta_} in double-diffractive processes. More... | |
void | set_pow_fquark (double alphapow, double betapow) |
lightcone momentum fraction of quark is sampled according to probability distribution \( P(x) = x^{pow_fquark_alpha_ - 1} * (1 - x)^{pow_fquark_beta_ - 1} \) in non-diffractive processes. More... | |
void | set_sigma_qperp_ (double sigma_qperp) |
set the average amount of transverse momentum transfer sigma_qperp_. More... | |
void | set_tension_string (double kappa_string) |
set the string tension, which is used in append_final_state. More... | |
void | init (const ParticleList &incoming, double tcoll) |
initialization feed intial particles, time of collision and gamma factor of the center of mass. More... | |
void | compute_incoming_lightcone_momenta () |
compute the lightcone momenta of incoming particles where the longitudinal direction is set to be same as that of the three-momentum of particle A. More... | |
bool | set_mass_and_direction_2strings (const std::array< std::array< int, 2 >, 2 > &quarks, const std::array< FourVector, 2 > &pstr_com, std::array< double, 2 > &m_str, std::array< ThreeVector, 2 > &evec_str) |
Determine string masses and directions in which strings are stretched. More... | |
bool | make_final_state_2strings (const std::array< std::array< int, 2 >, 2 > &quarks, const std::array< FourVector, 2 > &pstr_com, const std::array< double, 2 > &m_str, const std::array< ThreeVector, 2 > &evec_str, bool flip_string_ends, bool separate_fragment_baryon) |
Prepare kinematics of two strings, fragment them and append to final_state. More... | |
bool | next_SDiff (bool is_AB_to_AX) |
Single-diffractive process is based on single pomeron exchange described in Ingelman:1984ns [28]. More... | |
bool | next_DDiff () |
Double-diffractive process ( A + B -> X + X ) is similar to the single-diffractive process, but lightcone momenta of gluons are sampled in the same was as the UrQMD model Bass:1998ca [5], Bleicher:1999xi [10]. More... | |
bool | next_NDiffSoft () |
Soft Non-diffractive process is modelled in accordance with dual-topological approach Capella:1978ig [15]. More... | |
bool | next_NDiffHard () |
Hard Non-diffractive process is based on PYTHIA 8 with partonic showers and interactions. More... | |
bool | next_BBbarAnn () |
Baryon-antibaryon annihilation process Based on what UrQMD Bass:1998ca [5], Bleicher:1999xi [10] does, it create two mesonic strings after annihilating one quark-antiquark pair. More... | |
void | replace_constituent (Pythia8::Particle &particle, std::array< int, 5 > &excess_constituent) |
Convert a partonic PYTHIA particle into the desired species and update the excess of constituents. More... | |
void | find_total_number_constituent (Pythia8::Event &event_intermediate, std::array< int, 5 > &nquark_total, std::array< int, 5 > &nantiq_total) |
Compute how many quarks and antiquarks we have in the system, and update the correspoing arrays with size 5. More... | |
bool | splitting_gluon_qqbar (Pythia8::Event &event_intermediate, std::array< int, 5 > &nquark_total, std::array< int, 5 > &nantiq_total, bool sign_constituent, std::array< std::array< int, 5 >, 2 > &excess_constituent) |
Take total number of quarks and check if the system has enough constituents that need to be converted into other flavors. More... | |
void | rearrange_excess (std::array< int, 5 > &nquark_total, std::array< std::array< int, 5 >, 2 > &excess_quark, std::array< std::array< int, 5 >, 2 > &excess_antiq) |
Take total number of quarks and check if the system has enough constituents that need to be converted into other flavors. More... | |
bool | restore_constituent (Pythia8::Event &event_intermediate, std::array< std::array< int, 5 >, 2 > &excess_quark, std::array< std::array< int, 5 >, 2 > &excess_antiq) |
Take the intermediate partonic state from PYTHIA event with mapped hadrons and convert constituents into the desired ones according to the excess of quarks and anti-quarks. More... | |
void | compose_string_parton (bool find_forward_string, Pythia8::Event &event_intermediate, Pythia8::Event &event_hadronize) |
Identify a set of partons, which are connected to form a color-neutral string, from a given PYTHIA event record. More... | |
void | compose_string_junction (bool &find_forward_string, Pythia8::Event &event_intermediate, Pythia8::Event &event_hadronize) |
Identify a set of partons and junction(s), which are connected to form a color-neutral string, from a given PYTHIA event record. More... | |
void | find_junction_leg (bool sign_color, std::vector< int > &col, Pythia8::Event &event_intermediate, Pythia8::Event &event_hadronize) |
Identify partons, which are associated with junction legs, from a given PYTHIA event record. More... | |
int | get_index_forward (bool find_forward, int np_end, Pythia8::Event &event) |
Obtain index of the most forward or backward particle in a given PYTHIA event record. More... | |
ParticleList | get_final_state () |
a function to get the final state particle list which is called after the collision More... | |
void | clear_final_state () |
a function that clears the final state particle list which is used for testing mainly More... | |
int | append_final_state (ParticleList &intermediate_particles, const FourVector &uString, const ThreeVector &evecLong) |
compute the formation time and fill the arrays with final-state particles as described in Andersson:1983ia [3]. More... | |
int | fragment_string (int idq1, int idq2, double mString, ThreeVector &evecLong, bool flip_string_ends, bool separate_fragment_baryon, ParticleList &intermediate_particles) |
perform string fragmentation to determine species and momenta of hadrons by exploiting PYTHIA 8.3 Andersson:1983ia [3], Sjostrand:2014zea [52], Bierlich:2022pfr [8]. More... | |
int | fragment_off_hadron (bool from_forward, bool separate_fragment_baryon, std::array< ThreeVector, 3 > &evec_basis, double &ppos_string, double &pneg_string, double &QTrx_string_pos, double &QTrx_string_neg, double &QTry_string_pos, double &QTry_string_neg, Pythia8::FlavContainer &flav_string_pos, Pythia8::FlavContainer &flav_string_neg, std::vector< int > &pdgid_frag, std::vector< FourVector > &momentum_frag) |
Fragment one hadron from a given string configuration if the string mass is above threshold (given by the consituent masses). More... | |
int | get_hadrontype_from_quark (int idq1, int idq2) |
Determines hadron type from valence quark constituents. More... | |
int | get_resonance_from_quark (int idq1, int idq2, double mass) |
bool | make_lightcone_final_two (bool separate_fragment_hadron, double ppos_string, double pneg_string, double mTrn_had_forward, double mTrn_had_backward, double &ppos_had_forward, double &ppos_had_backward, double &pneg_had_forward, double &pneg_had_backward) |
Determines lightcone momenta of two final hadrons fragmented from a string in the same way as StringFragmentation::finalTwo in StringFragmentation.cc of PYTHIA 8. More... | |
bool | remake_kinematics_fragments (Pythia8::Event &event_fragments, std::array< ThreeVector, 3 > &evec_basis, double ppos_string, double pneg_string, double QTrx_string, double QTry_string, double QTrx_add_pos, double QTry_add_pos, double QTrx_add_neg, double QTry_add_neg) |
void | shift_rapidity_event (Pythia8::Event &event, std::array< ThreeVector, 3 > &evec_basis, double factor_yrapid, double diff_yrapid) |
Shift the momentum rapidity of all particles in a given event record. More... | |
double | getPPosA () |
double | getPNegA () |
double | getPPosB () |
double | getPnegB () |
double | get_massA () |
double | get_massB () |
double | get_sqrts () |
std::array< PdgCode, 2 > | get_PDGs () |
std::array< FourVector, 2 > | get_plab () |
std::array< FourVector, 2 > | get_pcom () |
FourVector | get_ucom () |
ThreeVector | get_vcom () |
double | get_tcoll () |
Static Public Member Functions | |
static void | make_orthonormal_basis (ThreeVector &evec_polar, std::array< ThreeVector, 3 > &evec_basis) |
compute three orthonormal basis vectors from unit vector in the longitudinal direction More... | |
static void | find_excess_constituent (PdgCode &pdg_actual, PdgCode &pdg_mapped, std::array< int, 5 > &excess_quark, std::array< int, 5 > &excess_antiq) |
Compare the valence quark contents of the actual and mapped hadrons and evaluate how many more constituents the actual hadron has compared to the mapped one. More... | |
static bool | append_intermediate_list (int pdgid, FourVector momentum, ParticleList &intermediate_particles) |
append new particle from PYTHIA to a specific particle list More... | |
static void | convert_KaonLS (int &pythia_id) |
convert Kaon-L or Kaon-S into K0 or Anti-K0 More... | |
static void | quarks_from_diquark (int diquark, int &q1, int &q2, int °_spin) |
find two quarks from a diquark. More... | |
static int | diquark_from_quarks (int q1, int q2) |
Construct diquark from two quarks. More... | |
static void | make_string_ends (const PdgCode &pdgcode_in, int &idq1, int &idq2, double xi) |
make a random selection to determine partonic contents at the string ends. More... | |
static Pythia8::Vec4 | set_Vec4 (double energy, const ThreeVector &mom) |
Easy setter of Pythia Vec4 from SMASH. More... | |
static FourVector | reorient (Pythia8::Particle &particle, std::array< ThreeVector, 3 > &evec_basis) |
compute the four-momentum properly oriented in the lab frame. More... | |
static double | sample_zLund (double a, double b, double mTrn) |
Sample lightcone momentum fraction according to the LUND fragmentation function. More... | |
static void | assign_all_scaling_factors (int baryon_string, ParticleList &outgoing_particles, const ThreeVector &evecLong, double suppression_factor) |
Assign a cross section scaling factor to all outgoing particles. More... | |
static std::pair< int, int > | find_leading (int nq1, int nq2, ParticleList &list) |
Find the leading string fragments. More... | |
static void | assign_scaling_factor (int nquark, ParticleData &data, double suppression_factor) |
Assign a cross section scaling factor to the given particle. More... | |
static int | pdg_map_for_pythia (PdgCode &pdg) |
Take pdg code and map onto particle specie which can be handled by PYTHIA. More... | |
Private Types | |
typedef std::map< std::pair< int, int >, std::unique_ptr< Pythia8::Pythia > > | pythia_map |
Map containing PYTHIA objects for hard string routines. More... | |
Private Attributes | |
double | PPosA_ |
forward lightcone momentum p^{+} of incoming particle A in CM-frame [GeV] More... | |
double | PPosB_ |
forward lightcone momentum p^{+} of incoming particle B in CM-frame [GeV] More... | |
double | PNegA_ |
backward lightcone momentum p^{-} of incoming particle A in CM-frame [GeV] More... | |
double | PNegB_ |
backward lightcone momentum p^{-} of incoming particle B in CM-frame [GeV] More... | |
double | massA_ |
mass of incoming particle A [GeV] More... | |
double | massB_ |
mass of incoming particle B [GeV] More... | |
double | sqrtsAB_ |
sqrt of Mandelstam variable s of collision [GeV] More... | |
std::array< PdgCode, 2 > | PDGcodes_ |
PdgCodes of incoming particles. More... | |
std::array< FourVector, 2 > | plab_ |
momenta of incoming particles in the lab frame [GeV] More... | |
std::array< FourVector, 2 > | pcom_ |
momenta of incoming particles in the center of mass frame [GeV] More... | |
FourVector | ucomAB_ |
velocity four vector of the center of mass in the lab frame More... | |
ThreeVector | vcomAB_ |
velocity three vector of the center of mass in the lab frame More... | |
std::array< ThreeVector, 3 > | evecBasisAB_ |
Orthonormal basis vectors in the center of mass frame, where the 0th one is parallel to momentum of incoming particle A. More... | |
int | NpartFinal_ |
total number of final state particles More... | |
std::array< int, 2 > | NpartString_ |
number of particles fragmented from strings More... | |
double | pmin_gluon_lightcone_ |
the minimum lightcone momentum scale carried by a gluon [GeV] More... | |
double | pow_fgluon_beta_ |
parameter \(\beta\) for the gluon distribution function \( P(x) = x^{-1} (1 - x)^{1 + \beta} \) More... | |
double | pow_fquark_alpha_ |
parameter \(\alpha\) for the quark distribution function \( P(x) = x^{\alpha - 1} (1 - x)^{\beta - 1} \) More... | |
double | pow_fquark_beta_ |
parameter \(\beta\) for the quark distribution function \( P(x) = x^{\alpha - 1} (1 - x)^{\beta - 1} \) More... | |
double | sigma_qperp_ |
Transverse momentum spread of the excited strings. More... | |
double | stringz_a_leading_ |
parameter (StringZ:aLund) for the fragmentation function of leading baryon in soft non-diffractive string processes More... | |
double | stringz_b_leading_ |
parameter (StringZ:bLund) for the fragmentation function of leading baryon in soft non-diffractive string processes More... | |
double | stringz_a_produce_ |
parameter (StringZ:aLund) for the fragmentation function of other (produced) hadrons in soft non-diffractive string processes More... | |
double | stringz_b_produce_ |
parameter (StringZ:bLund) for the fragmentation function of other (produced) hadrons in soft non-diffractive string processes More... | |
double | strange_supp_ |
strange quark suppression factor More... | |
double | diquark_supp_ |
diquark suppression factor More... | |
double | popcorn_rate_ |
popcorn rate More... | |
double | string_sigma_T_ |
transverse momentum spread in string fragmentation More... | |
double | kappa_tension_string_ |
string tension [GeV/fm] More... | |
double | additional_xsec_supp_ |
additional cross-section suppression factor to take coherence effect into account. More... | |
double | time_formation_const_ |
constant proper time in the case of constant formation time [fm] More... | |
double | soft_t_form_ |
factor to be multiplied to formation times in soft strings More... | |
double | time_collision_ |
time of collision in the computational frame [fm] More... | |
bool | mass_dependent_formation_times_ |
Whether the formation time should depend on the mass of the fragment according to Andersson:1983ia [3] eq. More... | |
double | prob_proton_to_d_uu_ |
Probability of splitting a nucleon into the quark flavour it has only once and a diquark it has twice. More... | |
bool | separate_fragment_baryon_ |
Whether to use a separate fragmentation function for leading baryons. More... | |
bool | use_monash_tune_ |
Whether to use the monash tune Skands:2014pea [53] for all string processes. More... | |
ParticleList | final_state_ |
final state array which must be accessed after the collision More... | |
pythia_map | hard_map_ |
Map object to contain the different pythia objects. More... | |
std::unique_ptr< Pythia8::Pythia > | pythia_hadron_ |
PYTHIA object used in fragmentation. More... | |
Pythia8::SigmaTotal | pythia_sigmatot_ |
An object to compute cross-sections. More... | |
Pythia8::StringFlav | pythia_stringflav_ |
An object for the flavor selection in string fragmentation in the case of separate fragmentation function for leading baryon. More... | |
Pythia8::Event | event_intermediate_ |
event record for intermediate partonic state in the hard string routine More... | |
|
private |
Map containing PYTHIA objects for hard string routines.
Particle IDs are used as the keys to obtain the respective object. This was introduced to reduce the amount of Pythia init() calls.
Definition at line 184 of file stringprocess.h.
smash::StringProcess::StringProcess | ( | double | string_tension, |
double | time_formation, | ||
double | gluon_beta, | ||
double | gluon_pmin, | ||
double | quark_alpha, | ||
double | quark_beta, | ||
double | strange_supp, | ||
double | diquark_supp, | ||
double | sigma_perp, | ||
double | stringz_a_leading, | ||
double | stringz_b_leading, | ||
double | stringz_a, | ||
double | stringz_b, | ||
double | string_sigma_T, | ||
double | factor_t_form, | ||
bool | mass_dependent_formation_times, | ||
double | prob_proton_to_d_uu, | ||
bool | separate_fragment_baryon, | ||
double | popcorn_rate, | ||
bool | use_monash_tune | ||
) |
Constructor, initializes pythia.
Should only be called once.
[in] | string_tension | value of kappa_tension_string_ [GeV/fm] |
[in] | time_formation | value of time_formation_const_ [fm] |
[in] | gluon_beta | value of pow_fgluon_beta_ |
[in] | gluon_pmin | value of pmin_gluon_lightcone_ |
[in] | quark_alpha | value of pow_fquark_alpha_ |
[in] | quark_beta | value of pow_fquark_beta_ |
[in] | strange_supp | strangeness suppression factor (StringFlav:probStoUD) in fragmentation |
[in] | diquark_supp | diquark suppression factor (StringFlav:probQQtoQ) in fragmentation |
[in] | sigma_perp | value of sigma_qperp_ [GeV] |
[in] | stringz_a_leading | Parameter a in Lund fragmentation function for leading baryons. |
[in] | stringz_b_leading | Parameter b in Lund fragmentation function for leading baryons. |
[in] | stringz_a | parameter (StringZ:aLund) for the fragmentation function |
[in] | stringz_b | parameter (StringZ:bLund) for the fragmentation function [GeV^-2] |
[in] | string_sigma_T | transverse momentum spread (StringPT:sigma) in fragmentation [GeV] |
[in] | factor_t_form | to be multiplied to soft string formation times |
[in] | mass_dependent_formation_times | Whether the formation times of string fragments should depend on their mass. |
[in] | prob_proton_to_d_uu | Probability of a nucleon to be split into the quark it contains once and a diquark another flavour. |
[in] | separate_fragment_baryon | whether to use a separate fragmentation function for leading baryons in non-diffractive string processes. |
[in] | popcorn_rate | parameter (StringFlav:popcornRate) to determine the production rate of popcorn mesons from the diquark end of a string. |
[in] | use_monash_tune | whether to use the monash tune for all string processes. This is recommended if one runs smash at LHC energies |
Definition at line 22 of file stringprocess.cc.
void smash::StringProcess::common_setup_pythia | ( | Pythia8::Pythia * | pythia_in, |
double | strange_supp, | ||
double | diquark_supp, | ||
double | popcorn_rate, | ||
double | stringz_a, | ||
double | stringz_b, | ||
double | string_sigma_T | ||
) |
Common setup of PYTHIA objects for soft and hard string routines.
[out] | pythia_in | pointer to the PYTHIA object |
[in] | strange_supp | strangeness suppression factor (StringFlav:probStoUD) in fragmentation |
[in] | diquark_supp | diquark suppression factor (StringFlav:probQQtoQ) in fragmentation |
[in] | popcorn_rate | parameter (StringFlav:popcornRate) to determine the production rate of popcorn mesons from the diquark end of a string. |
[in] | stringz_a | parameter (StringZ:aLund) for the fragmentation function |
[in] | stringz_b | parameter (StringZ:bLund) for the fragmentation function |
[in] | string_sigma_T | transverse momentum spread (StringPT:sigma) in fragmentation [GeV] |
Definition at line 89 of file stringprocess.cc.
|
inline |
Set PYTHIA random seeds to be desired values.
The value is recalculated such that it is allowed by PYTHIA.
Definition at line 299 of file stringprocess.h.
|
inline |
Interface to pythia_sigmatot_ to compute cross-sections of A+B-> different final states Schuler:1993wr [49].
[in] | pdg_a | pdg code of incoming particle A |
[in] | pdg_b | pdg code of incoming particle B |
[in] | sqrt_s | collision energy in the center of mass frame [GeV] |
Definition at line 319 of file stringprocess.h.
|
inline |
set the minimum lightcone momentum scale carried by gluon.
Must be cleaned up if necessary. This is relevant for the double-diffractive process. The minimum lightcone momentum fraction is set to be pmin_gluon_lightcone_/sqrtsAB.
p_light_cone_min | a value that we want to use for pmin_gluon_lightcone_. |
Definition at line 355 of file stringprocess.h.
|
inline |
lightcone momentum fraction of gluon is sampled according to probability distribution P(x) = 1/x * (1 - x)^{1 + pow_fgluon_beta_} in double-diffractive processes.
betapow | is a value that we want to use for pow_fgluon_beta_. |
Definition at line 365 of file stringprocess.h.
|
inline |
lightcone momentum fraction of quark is sampled according to probability distribution \( P(x) = x^{pow_fquark_alpha_ - 1} * (1 - x)^{pow_fquark_beta_ - 1} \) in non-diffractive processes.
alphapow | is a value that we want to use for pow_fquark_alpha_. |
betapow | is a value that we want to use for pow_fquark_beta_. |
Definition at line 374 of file stringprocess.h.
|
inline |
set the average amount of transverse momentum transfer sigma_qperp_.
sigma_qperp | is a value that we want to use for sigma_qperp_. |
Definition at line 382 of file stringprocess.h.
|
inline |
set the string tension, which is used in append_final_state.
kappa_string | is a value that we want to use for string tension. |
Definition at line 387 of file stringprocess.h.
void smash::StringProcess::init | ( | const ParticleList & | incoming, |
double | tcoll | ||
) |
initialization feed intial particles, time of collision and gamma factor of the center of mass.
[in] | incoming | is the list of initial state particles. |
[in] | tcoll | is time of collision. |
Definition at line 213 of file stringprocess.cc.
|
static |
compute three orthonormal basis vectors from unit vector in the longitudinal direction
[in] | evec_polar | unit three-vector in the longitudinal direction |
[out] | evec_basis | orthonormal basis vectors of which evec_basis[0] is in the longitudinal direction while evec_basis[1] and evec_basis[2] span the transverse plane. |
Definition at line 1636 of file stringprocess.cc.
void smash::StringProcess::compute_incoming_lightcone_momenta | ( | ) |
compute the lightcone momenta of incoming particles where the longitudinal direction is set to be same as that of the three-momentum of particle A.
Definition at line 1685 of file stringprocess.cc.
bool smash::StringProcess::set_mass_and_direction_2strings | ( | const std::array< std::array< int, 2 >, 2 > & | quarks, |
const std::array< FourVector, 2 > & | pstr_com, | ||
std::array< double, 2 > & | m_str, | ||
std::array< ThreeVector, 2 > & | evec_str | ||
) |
Determine string masses and directions in which strings are stretched.
[in] | quarks | pdg ids of string ends |
[in] | pstr_com | 4-momenta of strings in the C.o.m. frame [GeV] |
[out] | m_str | masses of strings [GeV] |
[out] | evec_str | are directions in which strings are stretched. |
Definition at line 324 of file stringprocess.cc.
bool smash::StringProcess::make_final_state_2strings | ( | const std::array< std::array< int, 2 >, 2 > & | quarks, |
const std::array< FourVector, 2 > & | pstr_com, | ||
const std::array< double, 2 > & | m_str, | ||
const std::array< ThreeVector, 2 > & | evec_str, | ||
bool | flip_string_ends, | ||
bool | separate_fragment_baryon | ||
) |
Prepare kinematics of two strings, fragment them and append to final_state.
[in] | quarks | pdg ids of string ends |
[in] | pstr_com | 4-momenta of strings in the C.o.m. frame [GeV] |
[in] | m_str | masses of strings [GeV] |
[out] | evec_str | are directions in which strings are stretched. |
[in] | flip_string_ends | is whether or not we randomly switch string ends. |
[in] | separate_fragment_baryon | is whether to fragment leading baryons (or anti-baryons) with a separate fragmentation function. |
Definition at line 361 of file stringprocess.cc.
bool smash::StringProcess::next_SDiff | ( | bool | is_AB_to_AX | ) |
Single-diffractive process is based on single pomeron exchange described in Ingelman:1984ns [28].
[in] | is_AB_to_AX | specifies which hadron to excite into a string. true : A + B -> A + X, false : A + B -> X + B |
Definition at line 242 of file stringprocess.cc.
bool smash::StringProcess::next_DDiff | ( | ) |
Double-diffractive process ( A + B -> X + X ) is similar to the single-diffractive process, but lightcone momenta of gluons are sampled in the same was as the UrQMD model Bass:1998ca [5], Bleicher:1999xi [10].
String masses are computed after pomeron exchange aquiring transverse momentum transfer.
Definition at line 394 of file stringprocess.cc.
bool smash::StringProcess::next_NDiffSoft | ( | ) |
Soft Non-diffractive process is modelled in accordance with dual-topological approach Capella:1978ig [15].
This involves a parton exchange in conjunction with momentum transfer. Probability distribution function of the lightcone momentum fraction carried by quark is based on the UrQMD model Bass:1998ca [5], Bleicher:1999xi [10].
std::runtime_error | if incoming particles are neither mesonic nor baryonic |
Definition at line 449 of file stringprocess.cc.
bool smash::StringProcess::next_NDiffHard | ( | ) |
Hard Non-diffractive process is based on PYTHIA 8 with partonic showers and interactions.
Definition at line 526 of file stringprocess.cc.
bool smash::StringProcess::next_BBbarAnn | ( | ) |
Baryon-antibaryon annihilation process Based on what UrQMD Bass:1998ca [5], Bleicher:1999xi [10] does, it create two mesonic strings after annihilating one quark-antiquark pair.
Each string has mass equal to half of sqrts.
std::invalid_argument | if incoming particles are not baryon-antibaryon pair |
Definition at line 1525 of file stringprocess.cc.
|
static |
Compare the valence quark contents of the actual and mapped hadrons and evaluate how many more constituents the actual hadron has compared to the mapped one.
excess_quark[i - 1] is how many more quarks with flavor i (PDG id i) pdg_actual has compared to pdg_mapped. excess_antiq[i - 1] is how many more antiquarks with flavor i (PDG id -i) pdg_actual has compared to pdg_mapped.
[in] | pdg_actual | PDG code of actual incoming particle. |
[in] | pdg_mapped | PDG code of mapped particles used in PYTHIA event generation. |
[out] | excess_quark | excess of quarks. |
[out] | excess_antiq | excess of anti-quarks. |
Definition at line 776 of file stringprocess.cc.
void smash::StringProcess::replace_constituent | ( | Pythia8::Particle & | particle, |
std::array< int, 5 > & | excess_constituent | ||
) |
Convert a partonic PYTHIA particle into the desired species and update the excess of constituents.
If the quark flavor i is converted into another flavor j, excess_constituent[i - 1] increases by 1 and excess_constituent[j - 1] decreases by 1. Note that this happens only if excess_constituent[i - 1] < 0 and excess_constituent[j - 1] > 0 (i.e., the incoming hadron has more constituents with flavor j and less constituents with flavor i, compared to the mapped hadron), so they get closer to 0 after the function call.
[out] | particle | PYTHIA particle object to be converted. |
[out] | excess_constituent | excess in the number of quark constituents. If the particle has positive (negative) quark number, excess of quarks (anti-quarks) should be used. |
Definition at line 810 of file stringprocess.cc.
void smash::StringProcess::find_total_number_constituent | ( | Pythia8::Event & | event_intermediate, |
std::array< int, 5 > & | nquark_total, | ||
std::array< int, 5 > & | nantiq_total | ||
) |
Compute how many quarks and antiquarks we have in the system, and update the correspoing arrays with size 5.
Note that elements of the array (0, 1, 2, 3, 4) correspond to d, u, s, c, b flavors.
[in] | event_intermediate | PYTHIA partonic event record which contains output from PYTHIA (hard) event generation. |
[out] | nquark_total | total number of quarks in the system. This is computed based on event_intermediate. |
[out] | nantiq_total | total number of antiquarks in the system. This is computed based on event_intermediate. |
Definition at line 895 of file stringprocess.cc.
bool smash::StringProcess::splitting_gluon_qqbar | ( | Pythia8::Event & | event_intermediate, |
std::array< int, 5 > & | nquark_total, | ||
std::array< int, 5 > & | nantiq_total, | ||
bool | sign_constituent, | ||
std::array< std::array< int, 5 >, 2 > & | excess_constituent | ||
) |
Take total number of quarks and check if the system has enough constituents that need to be converted into other flavors.
If that is not the case, a gluon is splitted into a quark-antiquark pair with desired flavor, so that their flavor can be changed afterwards. For example, if there is no antiquark in the system and we have excess_antiq = (1, -1, 0, 0, 0) (i.e., one ubar has to be converted into dbar), a gluon will be splitted into u-ubar pair.
[out] | event_intermediate | PYTHIA partonic event record to be updated when a gluon happens to split into a qqbar pair. |
[out] | nquark_total | total number of quarks in the system. This is computed based on event_intermediate. |
[out] | nantiq_total | total number of antiquarks in the system. This is computed based on event_intermediate. |
[in] | sign_constituent | true (false) if want to check quarks (antiquarks) and their excesses. |
[in] | excess_constituent | excess in the number of quark constituents. If sign_constituent is true (false), excess of quarks (anti-quarks) should be used. |
Definition at line 924 of file stringprocess.cc.
void smash::StringProcess::rearrange_excess | ( | std::array< int, 5 > & | nquark_total, |
std::array< std::array< int, 5 >, 2 > & | excess_quark, | ||
std::array< std::array< int, 5 >, 2 > & | excess_antiq | ||
) |
Take total number of quarks and check if the system has enough constituents that need to be converted into other flavors.
If that is not the case, excesses of quarks and antiquarks are modified such that the net quark number of each flavor is conserved. For example, if there is no antiquark in the system and we have excess_antiq = (1, -1, 0, 0, 0) (i.e., one ubar has to be converted into dbar), excess_antiq will be changed into (0, 0, 0, 0, 0) and (-1, 1, 0, 0, 0) will be added to excess_quark (i.e., one d quark has to be converted into u quark instead).
Number of quarks is checked if the first argument is the total number of quarks, and the second and third arguments are respectively excesses of quarks and antiquarks. Number of antiquarks is checked if the first argument is the total number of antiquarks, and the second and third arguments are respectively excesses of antiquarks and quarks.
[in] | nquark_total | total number of quarks (antiquarks) in the system. |
[out] | excess_quark | excess of quarks (antiquarks) in incoming particles, compared to the mapped ones. |
[out] | excess_antiq | excess of anti-quarks (quarks) in incoming particles, compared to the mapped ones. |
Definition at line 1057 of file stringprocess.cc.
bool smash::StringProcess::restore_constituent | ( | Pythia8::Event & | event_intermediate, |
std::array< std::array< int, 5 >, 2 > & | excess_quark, | ||
std::array< std::array< int, 5 >, 2 > & | excess_antiq | ||
) |
Take the intermediate partonic state from PYTHIA event with mapped hadrons and convert constituents into the desired ones according to the excess of quarks and anti-quarks.
Quark (antiquark) flavor is changed and excess of quark (antiquark) is also updated by calling StringProcess::replace_constituent. Beginning with the most forward (or backward) constituent, conversion is done until the total net quark number of each flavor is same with that of incoming hadrons. (i.e., excess_quark minus excess_antiq of incoming hadrons becomes zero.)
However, note that there are some circumstances where this procedure is not directly carried out. For example, a proton-kaon(+) collision mapped onto a proton-pion(+) might be an issue if it involves d + dbar -> g g partonic interaction, given that we anticipate to change dbar to sbar. If such case occurs, we first try to split gluon into quark-antiquark pair with desired flavor. If there are not enough gluons to split, we try to modify the excesses of constituents such that the net quark number is conserved.
[out] | event_intermediate | PYTHIA partonic event record to be updated according to the valence quark contents of incoming hadrons. |
[out] | excess_quark | excess of quarks in incoming particles, compared to the mapped ones. |
[out] | excess_antiq | excess of anti-quarks in incoming particles, compared to the mapped ones. |
Definition at line 1114 of file stringprocess.cc.
void smash::StringProcess::compose_string_parton | ( | bool | find_forward_string, |
Pythia8::Event & | event_intermediate, | ||
Pythia8::Event & | event_hadronize | ||
) |
Identify a set of partons, which are connected to form a color-neutral string, from a given PYTHIA event record.
All partons found are moved into a new event record for the further hadronization process. Note that col and acol of Pythia8::Particle contain information on the color flow. This function begins with the most forward (or backward) parton.
For example, quark (col = 1, acol = 0), gluon (col = 2, acol = 1) and antiquark (col = 0, acol = 2) correspond to a \( \bar{q} \, g \, q \) mesonic string. quark (col = 1, acol = 0) and diquark (col = 0, acol = 1) correspond to a \( qq \, q\) baryonic string.
[in] | find_forward_string | If it is set to be true (false), it begins with forward (backward) parton. |
[out] | event_intermediate | PYTHIA event record from which a string is identified. All partons found here are removed. |
[out] | event_hadronize | PYTHIA event record to which partons in a string are added. |
Definition at line 1273 of file stringprocess.cc.
void smash::StringProcess::compose_string_junction | ( | bool & | find_forward_string, |
Pythia8::Event & | event_intermediate, | ||
Pythia8::Event & | event_hadronize | ||
) |
Identify a set of partons and junction(s), which are connected to form a color-neutral string, from a given PYTHIA event record.
All partons found are moved into a new event record for the further hadronization process. Junction topology in PYTHIA combines three quarks (antiquarks) to make a color-neutral baryonic (anti-baryonic) configuration. A junction (anti-junction) carries three color (anti-color) indices which are connected with quarks (antiquarks). This function begins with the first junction.
For example, if there is a kind-1 junction with legs (col = 1, 2 and 3), it will first look for three partons with color indices col = 1, 2 and 3 and trace color indices until each leg is `‘closed’' with quark. If there is no quark in the end, there should be an anti-junction and its legs are connected to partons with corresponding anti-colors.
[out] | find_forward_string | If it is set to be true (false), it is a string in the forward (backward) direction. |
[out] | event_intermediate | PYTHIA event record from which a string is identified. All partons and junction(s) found here are removed. |
[out] | event_hadronize | PYTHIA event record to which partons in a string are added. |
Definition at line 1360 of file stringprocess.cc.
void smash::StringProcess::find_junction_leg | ( | bool | sign_color, |
std::vector< int > & | col, | ||
Pythia8::Event & | event_intermediate, | ||
Pythia8::Event & | event_hadronize | ||
) |
Identify partons, which are associated with junction legs, from a given PYTHIA event record.
All partons found are moved into a new event record for the further hadronization process.
[in] | sign_color | true (false) if the junction is associated with color (anti-color) indices, corresponding baryonic (anti-baryonic) string |
[out] | col | set of color indices that need to be found. The value is set to be zero once the corresponding partons are found. |
[out] | event_intermediate | PYTHIA event record from which a string is identified. All partons and junction(s) found here are removed. |
[out] | event_hadronize | PYTHIA event record to which partons in a string are added. |
Definition at line 1463 of file stringprocess.cc.
|
inline |
Obtain index of the most forward or backward particle in a given PYTHIA event record.
[in] | find_forward | if it looks for the most forward or backward particle. |
[in] | np_end | number of the last particle entries to be excluded in lookup. In other words, it finds the most forward (or backward) particle among event[1, ... , event.size() - 1 - np_end]. |
[in] | event | PYTHIA event record which contains particle entries. Note that event[0] is reserved for information on the entire system. |
Definition at line 764 of file stringprocess.h.
|
inline |
a function to get the final state particle list which is called after the collision
Definition at line 783 of file stringprocess.h.
|
inline |
a function that clears the final state particle list which is used for testing mainly
Definition at line 789 of file stringprocess.h.
int smash::StringProcess::append_final_state | ( | ParticleList & | intermediate_particles, |
const FourVector & | uString, | ||
const ThreeVector & | evecLong | ||
) |
compute the formation time and fill the arrays with final-state particles as described in Andersson:1983ia [3].
[out] | intermediate_particles | list of fragmented particles to be appended |
[in] | uString | is velocity four vector of the string. |
[in] | evecLong | is unit 3-vector in which string is stretched. |
std::invalid_argument | if fragmented particle is not hadron |
std::invalid_argument | if string is neither mesonic nor baryonic |
Definition at line 157 of file stringprocess.cc.
|
inlinestatic |
append new particle from PYTHIA to a specific particle list
[in] | pdgid | PDG id of particle |
[in] | momentum | four-momentum of particle |
[out] | intermediate_particles | particle list to which the new particle is added. |
Definition at line 815 of file stringprocess.h.
|
inlinestatic |
convert Kaon-L or Kaon-S into K0 or Anti-K0
[out] | pythia_id | is PDG id to be converted. |
Definition at line 835 of file stringprocess.h.
|
static |
find two quarks from a diquark.
Order does not matter.
[in] | diquark | PDG id of diquark |
[out] | q1 | PDG id of quark 1 |
[out] | q2 | PDG id of quark 2 |
[out] | deg_spin | spin degeneracy |
Definition at line 1692 of file stringprocess.cc.
|
static |
Construct diquark from two quarks.
Order does not matter.
[in] | q1 | PDG code of quark 1 |
[in] | q2 | PDG code of quark 2 |
Definition at line 1708 of file stringprocess.cc.
|
static |
make a random selection to determine partonic contents at the string ends.
[in] | pdgcode_in | is PdgCode of hadron which transforms into a string. |
[out] | idq1 | is PDG id of quark or anti-diquark. |
[out] | idq2 | is PDG id of anti-quark or diquark. |
[in] | xi | probability to split a nucleon into the quark it has only once and a diquark of another flavour. |
Definition at line 1721 of file stringprocess.cc.
|
inlinestatic |
Easy setter of Pythia Vec4 from SMASH.
[in] | energy | time component |
[in] | mom | spatial three-vector |
Definition at line 875 of file stringprocess.h.
|
inlinestatic |
compute the four-momentum properly oriented in the lab frame.
While PYTHIA assumes that the collision axis is in z-direction, this is not necessarly the case in SMASH.
[in] | particle | particle object from PYTHIA event generation where z-axis is set to be the collision axis |
[in] | evec_basis | three basis vectors in the lab frame evec_basis[0] is unit vector in the collision axis and other two span the transverse plane |
Definition at line 890 of file stringprocess.h.
int smash::StringProcess::fragment_string | ( | int | idq1, |
int | idq2, | ||
double | mString, | ||
ThreeVector & | evecLong, | ||
bool | flip_string_ends, | ||
bool | separate_fragment_baryon, | ||
ParticleList & | intermediate_particles | ||
) |
perform string fragmentation to determine species and momenta of hadrons by exploiting PYTHIA 8.3 Andersson:1983ia [3], Sjostrand:2014zea [52], Bierlich:2022pfr [8].
[in] | idq1 | PDG id of quark or anti-diquark (carrying color index). |
[in] | idq2 | PDG id of diquark or anti-quark (carrying anti-color index). |
[in] | mString | the string mass. [GeV] |
[out] | evecLong | unit 3-vector specifying the direction of diquark or anti-diquark. |
[in] | flip_string_ends | is whether or not we randomly switch string ends. |
[in] | separate_fragment_baryon | is whether fragment leading baryon (or anti-baryon) with separate fragmentation function. |
[out] | intermediate_particles | list of fragmented particles |
std::runtime_error | if string mass is lower than threshold set by PYTHIA |
Definition at line 1769 of file stringprocess.cc.
int smash::StringProcess::fragment_off_hadron | ( | bool | from_forward, |
bool | separate_fragment_baryon, | ||
std::array< ThreeVector, 3 > & | evec_basis, | ||
double & | ppos_string, | ||
double & | pneg_string, | ||
double & | QTrx_string_pos, | ||
double & | QTrx_string_neg, | ||
double & | QTry_string_pos, | ||
double & | QTry_string_neg, | ||
Pythia8::FlavContainer & | flav_string_pos, | ||
Pythia8::FlavContainer & | flav_string_neg, | ||
std::vector< int > & | pdgid_frag, | ||
std::vector< FourVector > & | momentum_frag | ||
) |
Fragment one hadron from a given string configuration if the string mass is above threshold (given by the consituent masses).
Otherwise the entire string breaks down into (final) two hadrons.
[in] | from_forward | whether a hadron is fragmented from the forward end of the string |
[in] | separate_fragment_baryon | whether a separate fragmentation function is used for the leading baryon from the diquark end of string. |
[in] | evec_basis | three orthonormal basis vectors of which evec_basis[0] is in the longitudinal direction while evec_basis[1] and evec_basis[2] span the transverse plane. |
[out] | ppos_string | lightcone momentum p^+ of the string. This will be changed according to that of the remaining string. |
[out] | pneg_string | lightcone momentum p^- of the string. This will be changed according to that of the remaining string. |
[out] | QTrx_string_pos | transverse momentum px carried by the forward end of the string. This will be changed according to that of the remaining string. |
[out] | QTrx_string_neg | transverse momentum px carried by the backward end of the string. This will be changed according to that of the remaining string. |
[out] | QTry_string_pos | transverse momentum py carried by the forward end of the string. This will be changed according to that of the remaining string. |
[out] | QTry_string_neg | transverse momentum py carried by the backward end of the string. This will be changed according to that of the remaining string. |
[out] | flav_string_pos | constituent flavor at the forward end of the string. This will be changed according to that of the remaining string. |
[out] | flav_string_neg | constituent flavor at the backward end of the string. This will be changed according to that of the remaining string. |
[out] | pdgid_frag | PDG id of fragmented hadron(s) |
[out] | momentum_frag | four-momenta of fragmented hadrons(s) |
Definition at line 2241 of file stringprocess.cc.
int smash::StringProcess::get_hadrontype_from_quark | ( | int | idq1, |
int | idq2 | ||
) |
Determines hadron type from valence quark constituents.
First, try with PYTHIA routine. If it does not work, select a resonance with the same quantum numbers. The probability to pick each resonance in this case is proportional to spin degeneracy / mass, which is inspired by UrQMD.
[in] | idq1 | PDG id of a valence quark constituent. |
[in] | idq2 | PDG id of another valence quark constituent. |
Definition at line 2572 of file stringprocess.cc.
int smash::StringProcess::get_resonance_from_quark | ( | int | idq1, |
int | idq2, | ||
double | mass | ||
) |
[in] | idq1 | id of the valence quark (anti-diquark) |
[in] | idq2 | id of the valence anti-quark (diquark) |
[in] | mass | mass of the resonance. |
Definition at line 2660 of file stringprocess.cc.
bool smash::StringProcess::make_lightcone_final_two | ( | bool | separate_fragment_hadron, |
double | ppos_string, | ||
double | pneg_string, | ||
double | mTrn_had_forward, | ||
double | mTrn_had_backward, | ||
double & | ppos_had_forward, | ||
double & | ppos_had_backward, | ||
double & | pneg_had_forward, | ||
double & | pneg_had_backward | ||
) |
Determines lightcone momenta of two final hadrons fragmented from a string in the same way as StringFragmentation::finalTwo in StringFragmentation.cc of PYTHIA 8.
[in] | separate_fragment_hadron | whether a separate fragmentation function is used for the forward hadron |
[in] | ppos_string | lightcone momentum p^+ of the string |
[in] | pneg_string | ligntcone momentum p^- of the string |
[in] | mTrn_had_forward | transverse mass of the forward hadron |
[in] | mTrn_had_backward | transverse mass of the backward hadron |
[out] | ppos_had_forward | lightcone momentum p^+ of the forward hadron |
[out] | ppos_had_backward | lightcone momentum p^+ of the backward hadron |
[out] | pneg_had_forward | lightcone momentum p^- of the forward hadron |
[out] | pneg_had_backward | lightcone momentum p^- of the backward hadron |
Definition at line 2786 of file stringprocess.cc.
|
static |
Sample lightcone momentum fraction according to the LUND fragmentation function.
\( f(z) = \frac{1}{z} (1 - z)^a \exp{ \left(- \frac{b m_T^2}{z} \right) } \)
[in] | a | parameter for the fragmentation function |
[in] | b | parameter for the fragmentation function |
[in] | mTrn | transverse mass of the fragmented hadron |
Definition at line 2851 of file stringprocess.cc.
bool smash::StringProcess::remake_kinematics_fragments | ( | Pythia8::Event & | event_fragments, |
std::array< ThreeVector, 3 > & | evec_basis, | ||
double | ppos_string, | ||
double | pneg_string, | ||
double | QTrx_string, | ||
double | QTry_string, | ||
double | QTrx_add_pos, | ||
double | QTry_add_pos, | ||
double | QTrx_add_neg, | ||
double | QTry_add_neg | ||
) |
[out] | event_fragments | event record which contains information of particles |
[in] | evec_basis | three orthonormal basis vectors of which evec_basis[0] is in the longitudinal direction while evec_basis[1] and evec_basis[2] span the transverse plane. |
[in] | ppos_string | lightcone momentum p^+ of the string |
[in] | pneg_string | ligntcone momentum p^- of the string |
[in] | QTrx_string | transverse momentum px of the string |
[in] | QTry_string | transverse momentum py of the string |
[in] | QTrx_add_pos | transverse momentum px to be added to the most forward hadron |
[in] | QTry_add_pos | transverse momentum py to be added to the most forward hadron |
[in] | QTrx_add_neg | transverse momentum px to be added to the most backward hadron |
[in] | QTry_add_neg | transverse momentum py to be added to the most backward hadron |
Definition at line 2883 of file stringprocess.cc.
|
inline |
Shift the momentum rapidity of all particles in a given event record.
y to factor_yrapid * y + diff_yrapid
[out] | event | event record which contains information of particles |
[in] | evec_basis | three orthonormal basis vectors of which evec_basis[0] is in the longitudinal direction while evec_basis[1] and evec_basis[2] span the transverse plane. |
[in] | factor_yrapid | factor multiplied to the old rapidity |
[in] | diff_yrapid | rapidity difference added to the old one |
Definition at line 1060 of file stringprocess.h.
|
static |
Assign a cross section scaling factor to all outgoing particles.
The factor is only non-zero, when the outgoing particle carries a valence quark from the excited hadron. The assigned cross section scaling factor is equal to the number of the valence quarks from the fragmented hadron contained in the fragment divided by the total number of valence quarks of that fragment multiplied by a coherence factor
[in] | baryon_string | baryon number of the string |
[out] | outgoing_particles | list of string fragments to which scaling factors are assigned |
[in] | evecLong | direction in which the string is stretched |
[in] | suppression_factor | additional coherence factor to be multiplied with scaling factor |
Definition at line 3212 of file stringprocess.cc.
|
static |
Find the leading string fragments.
Find the first particle, which can carry nq1, and the last particle, which can carry nq2 valence quarks and return their indices in the given list.
[in] | nq1 | number of valence quarks from excited hadron at forward end of the string |
[in] | nq2 | number of valance quarks from excited hadron at backward end of the string |
[in] | list | list of string fragments |
list
Definition at line 3195 of file stringprocess.cc.
|
static |
Assign a cross section scaling factor to the given particle.
The scaling factor is the number of quarks from the excited hadron, that the fragment carries devided by the total number of quarks in this fragment multiplied by coherence factor.
[in] | nquark | number of valence quarks from the excited hadron contained in the given string fragment data |
[out] | data | particle to assign a scaling factor to |
[in] | suppression_factor | coherence factor to decrease scaling factor |
Definition at line 3180 of file stringprocess.cc.
|
static |
Take pdg code and map onto particle specie which can be handled by PYTHIA.
Positively charged baryons are mapped onto proton and other baryons are mapped onto neutrons. Same rule applies for anti-baryons. Positively (negatively) charged mesons are mapped onto pi+ (pi-). Negatively and positively charged leptons are mapped respectivly onto electron and positron. Currently, we do not have cross sections for leptons and photons with high energy, so such collisions should not happen.
[in] | pdg | PdgCode that will be mapped |
std::runtime_error | if the incoming particle is neither hadron nor lepton. |
Definition at line 3259 of file stringprocess.cc.
|
inline |
Definition at line 1171 of file stringprocess.h.
|
inline |
Definition at line 1177 of file stringprocess.h.
|
inline |
Definition at line 1183 of file stringprocess.h.
|
inline |
Definition at line 1189 of file stringprocess.h.
|
inline |
Definition at line 1195 of file stringprocess.h.
|
inline |
Definition at line 1201 of file stringprocess.h.
|
inline |
|
inline |
Definition at line 1213 of file stringprocess.h.
|
inline |
Definition at line 1219 of file stringprocess.h.
|
inline |
Definition at line 1225 of file stringprocess.h.
|
inline |
Definition at line 1231 of file stringprocess.h.
|
inline |
Definition at line 1237 of file stringprocess.h.
|
inline |
|
private |
forward lightcone momentum p^{+} of incoming particle A in CM-frame [GeV]
Definition at line 49 of file stringprocess.h.
|
private |
forward lightcone momentum p^{+} of incoming particle B in CM-frame [GeV]
Definition at line 51 of file stringprocess.h.
|
private |
backward lightcone momentum p^{-} of incoming particle A in CM-frame [GeV]
Definition at line 53 of file stringprocess.h.
|
private |
backward lightcone momentum p^{-} of incoming particle B in CM-frame [GeV]
Definition at line 55 of file stringprocess.h.
|
private |
mass of incoming particle A [GeV]
Definition at line 57 of file stringprocess.h.
|
private |
mass of incoming particle B [GeV]
Definition at line 59 of file stringprocess.h.
|
private |
sqrt of Mandelstam variable s of collision [GeV]
Definition at line 61 of file stringprocess.h.
|
private |
PdgCodes of incoming particles.
Definition at line 63 of file stringprocess.h.
|
private |
momenta of incoming particles in the lab frame [GeV]
Definition at line 65 of file stringprocess.h.
|
private |
momenta of incoming particles in the center of mass frame [GeV]
Definition at line 67 of file stringprocess.h.
|
private |
velocity four vector of the center of mass in the lab frame
Definition at line 69 of file stringprocess.h.
|
private |
velocity three vector of the center of mass in the lab frame
Definition at line 71 of file stringprocess.h.
|
private |
Orthonormal basis vectors in the center of mass frame, where the 0th one is parallel to momentum of incoming particle A.
Definition at line 76 of file stringprocess.h.
|
private |
total number of final state particles
Definition at line 78 of file stringprocess.h.
|
private |
number of particles fragmented from strings
Definition at line 80 of file stringprocess.h.
|
private |
the minimum lightcone momentum scale carried by a gluon [GeV]
Definition at line 82 of file stringprocess.h.
|
private |
parameter \(\beta\) for the gluon distribution function \( P(x) = x^{-1} (1 - x)^{1 + \beta} \)
Definition at line 87 of file stringprocess.h.
|
private |
parameter \(\alpha\) for the quark distribution function \( P(x) = x^{\alpha - 1} (1 - x)^{\beta - 1} \)
Definition at line 92 of file stringprocess.h.
|
private |
parameter \(\beta\) for the quark distribution function \( P(x) = x^{\alpha - 1} (1 - x)^{\beta - 1} \)
Definition at line 97 of file stringprocess.h.
|
private |
Transverse momentum spread of the excited strings.
[GeV] Transverse momenta of strings are sampled according to gaussian distribution with width sigma_qperp_
Definition at line 103 of file stringprocess.h.
|
private |
parameter (StringZ:aLund) for the fragmentation function of leading baryon in soft non-diffractive string processes
Definition at line 108 of file stringprocess.h.
|
private |
parameter (StringZ:bLund) for the fragmentation function of leading baryon in soft non-diffractive string processes
Definition at line 113 of file stringprocess.h.
|
private |
parameter (StringZ:aLund) for the fragmentation function of other (produced) hadrons in soft non-diffractive string processes
Definition at line 118 of file stringprocess.h.
|
private |
parameter (StringZ:bLund) for the fragmentation function of other (produced) hadrons in soft non-diffractive string processes
Definition at line 123 of file stringprocess.h.
|
private |
strange quark suppression factor
Definition at line 125 of file stringprocess.h.
|
private |
diquark suppression factor
Definition at line 127 of file stringprocess.h.
|
private |
popcorn rate
Definition at line 129 of file stringprocess.h.
|
private |
transverse momentum spread in string fragmentation
Definition at line 131 of file stringprocess.h.
|
private |
string tension [GeV/fm]
Definition at line 133 of file stringprocess.h.
|
private |
additional cross-section suppression factor to take coherence effect into account.
Definition at line 138 of file stringprocess.h.
|
private |
constant proper time in the case of constant formation time [fm]
Definition at line 140 of file stringprocess.h.
|
private |
factor to be multiplied to formation times in soft strings
Definition at line 142 of file stringprocess.h.
|
private |
time of collision in the computational frame [fm]
Definition at line 144 of file stringprocess.h.
|
private |
Whether the formation time should depend on the mass of the fragment according to Andersson:1983ia [3] eq.
2.45:
\( \tau = \sqrt{2}\frac{m}{\kappa} \)
The formation time and position is not calculated directly using the yoyo model because the spacetime rapidity where a string fragment forms is not equal to the fragment's momentum space rapidity. This cannot be easily combined with possible interactions before the formation time.
Definition at line 156 of file stringprocess.h.
|
private |
Probability of splitting a nucleon into the quark flavour it has only once and a diquark it has twice.
Definition at line 161 of file stringprocess.h.
|
private |
Whether to use a separate fragmentation function for leading baryons.
Definition at line 164 of file stringprocess.h.
|
private |
Whether to use the monash tune Skands:2014pea [53] for all string processes.
Definition at line 170 of file stringprocess.h.
|
private |
final state array which must be accessed after the collision
Definition at line 176 of file stringprocess.h.
|
private |
Map object to contain the different pythia objects.
Definition at line 187 of file stringprocess.h.
|
private |
PYTHIA object used in fragmentation.
Definition at line 190 of file stringprocess.h.
|
private |
An object to compute cross-sections.
Definition at line 193 of file stringprocess.h.
|
private |
An object for the flavor selection in string fragmentation in the case of separate fragmentation function for leading baryon.
Definition at line 199 of file stringprocess.h.
|
private |
event record for intermediate partonic state in the hard string routine
Definition at line 205 of file stringprocess.h.