11 #ifndef Pythia8_FragmentationFlavZpT_H
12 #define Pythia8_FragmentationFlavZpT_H
15 #include "ParticleData.h"
16 #include "PythiaStdlib.h"
37 int idPopIn = 0,
int idVtxIn = 0) : id(idIn), rank(rankIn),
38 nPop(nPopIn), idPop(idPopIn), idVtx(idVtxIn) {}
42 id = flav.id; rank = flav.rank; nPop = flav.nPop; idPop = flav.idPop;
43 idVtx = flav.idVtx; }
return *
this; }
50 id = flav.id; rank = flav.rank; nPop = flav.nPop; idPop = flav.idPop;
51 idVtx = flav.idVtx; }
return *
this; }
53 id = -flav.id; rank = flav.rank; nPop = flav.nPop; idPop = flav.idPop;
54 idVtx = flav.idVtx; }
return *
this; }
57 bool isDiquark() {
int idAbs = abs(
id);
58 return (idAbs > 1000 && idAbs < 10000 && (idAbs/10)%10 == 0);}
61 int id, rank, nPop, idPop, idVtx;
83 int pickLightQ() {
double rndmFlav = probQandS * rndmPtr->flat();
84 if (rndmFlav < 1.)
return 1;
if (rndmFlav < 2.)
return 2;
return 3; }
96 int makeDiquark(
int id1,
int id2,
int idHad = 0);
106 static const int mesonMultipletCode[6];
107 static const double baryonCGOct[6], baryonCGDec[6];
110 bool suppressLeadingB;
111 double probQQtoQ, probStoUD, probSQtoQQ, probQQ1toQQ0, probQandQQ,
112 probQandS, probQandSinQQ, probQQ1corr, probQQ1corrInv, probQQ1norm,
113 mesonRate[4][6], mesonRateSum[4], mesonMix1[2][6], mesonMix2[2][6],
114 etaSup, etaPrimeSup, decupletSup, baryonCGSum[6], baryonCGMax[6],
115 popcornRate, popcornSpair, popcornSmeson, scbBM[3], popFrac,
116 popS[3], dWT[3][7], lightLeadingBSup, heavyLeadingBSup;
139 virtual double zFrag(
int idOld,
int idNew = 0,
double mT2 = 1.);
142 virtual double stopMass() {
return stopM;}
143 virtual double stopNewFlav() {
return stopNF;}
144 virtual double stopSmear() {
return stopS;}
147 virtual double bAreaLund() {
return bLund;}
152 static const double CFROMUNITY, AFROMZERO, AFROMC, EXPMAX;
155 bool usePetersonC, usePetersonB, usePetersonH;
156 double mc2, mb2, aLund, bLund, aExtraDiquark, rFactC, rFactB, rFactH,
157 epsilonC, epsilonB, epsilonH, stopM, stopNF, stopS;
160 double zLund(
double a,
double b,
double c = 1.);
161 double zPeterson(
double epsilon);
187 pair<double, double> pxy();
190 double suppressPT2(
double pT2) {
return exp( -pT2 / sigma2Had); }
195 static const double SIGMAMIN;
198 double sigmaQ, enhancedFraction, enhancedWidth, sigma2Had;
209 #endif // Pythia8_FragmentationFlavZpT_H