12 #ifndef Pythia8_ThermalFragmentation_H 13 #define Pythia8_ThermalFragmentation_H 15 #include "Pythia8/FragmentationModel.h" 16 #include "Pythia8/MiniStringFragmentation.h" 17 #include "Pythia8/StringFragmentation.h" 31 nNewQuark(), mesMixRate1(), mesMixRate2(), mesMixRate3(),
44 double pT,
double kappaModifier,
bool allowPop)
override;
51 ((hadronMassWin < 0.0) ?
particleDataPtr->mSel(idHad) : hadronMassWin); }
56 double pT,
double kappaModifier);
60 double kappaModifier = -1.0,
bool finalTwo =
false)
override {
67 int qID,
int diqID,
int hadronID) {
69 for (
int iCombi = 0; iCombi < int(quarkCombis.size()); iCombi++)
70 if ( (qID == quarkCombis[iCombi].first ) &&
71 (diqID == quarkCombis[iCombi].second) ) allowed =
false;
72 if (allowed) quarkCombis.push_back( (hadronID > 0) ?
73 make_pair( qID, diqID) : make_pair(-qID, -diqID) ); }
79 double temperature, tempPreFactor;
81 double mesMixRate1[2][6], mesMixRate2[2][6], mesMixRate3[2][6];
82 double baryonOctWeight[6][6][6][2], baryonDecWeight[6][6][6][2];
93 map< pair<int,int>, vector<double> > possibleRatePrefacsLast;
116 void init()
override;
119 pair<double, double> pxy(
int idIn = 0,
double kappaModifier = -1.0)
override;
123 return exp(-sqrt(pT2)/temperature); }
133 double BesselK14(
double x);
155 FragModPtr fragModPtrIn =
nullptr)
override;
159 bool isDiff =
false,
bool systemRecoil =
true)
override;
174 bool tryMiniAfterFailedFrag{};
virtual int combine(FlavContainer &flav1, FlavContainer &flav2)
Combine two flavours (including diquarks) to produce a hadron.
Definition: FragmentationFlavZpT.cc:300
double suppressPT2(double pT2) override
Exponential suppression of given pT2; used in MiniStringFragmentation.
Definition: ThermalFragmentation.h:122
The Event class holds all info on the generated event.
Definition: Event.h:408
void addQuarkDiquark(vector< pair< int, int > > &quarkCombis, int qID, int diqID, int hadronID)
Check if quark-diquark combination should be added. If so add.
Definition: ThermalFragmentation.h:66
map< int, vector< pair< int, int > > > possibleHadrons
Definition: ThermalFragmentation.h:88
map< int, vector< pair< int, int > > > hadronConstIDs
Key = hadron id, value = list of constituent ids.
Definition: ThermalFragmentation.h:85
The StringPT class is used to select select transverse momenta.
Definition: FragmentationFlavZpT.h:284
Definition: StringFragmentation.h:106
~ThermalStringPT()
Destructor.
Definition: ThermalFragmentation.h:113
void init() override
Initialize data members.
Definition: ThermalFragmentation.cc:21
int hadronIDwin
Selection in thermal model.
Definition: ThermalFragmentation.h:96
~ThermalStringFlav()
Destructor.
Definition: ThermalFragmentation.h:37
ParticleData * particleDataPtr
Pointer to the particle data table.
Definition: PhysicsBase.h:88
double temperature
Initialization data, to be read from Settings.
Definition: ThermalFragmentation.h:128
The StringZ class is used to sample the fragmentation function f(z).
Definition: FragmentationFlavZpT.h:219
FlavContainer pick(FlavContainer &flavOld, double pT, double kappaModifier, bool allowPop) override
Pick a new flavour (including diquarks) given an incoming one.
Definition: ThermalFragmentation.cc:562
virtual int getHadronIDwin()
Return chosen hadron in case of thermal model.
Definition: ThermalFragmentation.h:47
int getHadronID(FlavContainer &flav1, FlavContainer &flav2, double pT=-1.0, double kappaModifier=-1.0, bool finalTwo=false) override
Return already set hadron id or combination of the two flavours.
Definition: ThermalFragmentation.h:59
The ThermalStringPT class is used to select transverse momenta.
Definition: ThermalFragmentation.h:105
int combineLastThermal(FlavContainer &flav1, FlavContainer &flav2, double pT, double kappaModifier)
Definition: ThermalFragmentation.cc:673
The ColConfig class describes the colour configuration of the whole event.
Definition: FragmentationSystems.h:60
Definition: FragmentationFlavZpT.h:33
FragmentationModel is the base class for handling fragmentation algorithms.
Definition: FragmentationModel.h:28
ThermalStringPT()
Constructor.
Definition: ThermalFragmentation.h:110
ThermalStringFlav()
Constructor.
Definition: ThermalFragmentation.h:30
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
bool mesonNonetL1
Settings for thermal model.
Definition: ThermalFragmentation.h:78
The StringFlav class is used to select quark and hadron flavours.
Definition: FragmentationFlavZpT.h:76
map< pair< int, int >, vector< pair< int, int > > > possibleHadronsLast
Similar, but for combining the last two (di)quarks. Key = (di)quark pair.
Definition: ThermalFragmentation.h:92
double getHadronMassWin(int idHad) override
Return hadron mass. Used one if present, pick otherwise.
Definition: ThermalFragmentation.h:50
The ThermalStringFlav class is used to select quark and hadron flavours.
Definition: ThermalFragmentation.h:25
Definition: ThermalFragmentation.h:142
Definition: MiniStringFragmentation.h:22
map< int, vector< double > > possibleRatePrefacs
Key = initial (di)quark id, value = prefactor to multiply rate.
Definition: ThermalFragmentation.h:90