9 #ifndef Pythia8_StandardModel_H
10 #define Pythia8_StandardModel_H
12 #include "Pythia8/Basics.h"
13 #include "Pythia8/PythiaStdlib.h"
14 #include "Pythia8/Settings.h"
28 AlphaStrong() : isInit(false), order(0),
29 Lambda3Save(0.), Lambda4Save(0.), Lambda5Save(0.), Lambda6Save(0.),
30 Lambda3Save2(0.), Lambda4Save2(0.), Lambda5Save2(0.), Lambda6Save2(0.),
31 scale2Min(0.), mc(0.), mb(0.), mt(0.), mc2(0.), mb2(0.), mt2(0.),
32 lastCallToFull(false), valueRef(0.), valueNow(0.), scale2Now(0.) {}
35 virtual ~AlphaStrong() {}
38 virtual void init(
double valueIn = 0.12,
int orderIn = 1,
int nfmaxIn = 6,
39 bool useCMWIn =
false);
42 virtual void setThresholds(
double mcIn,
double mbIn,
double mtIn) {
43 mt=mtIn; mb=min(mt,mbIn); mc=min(mb,mcIn);}
46 double alphaS(
double scale2);
47 double alphaS1Ord(
double scale2);
48 double alphaS2OrdCorr(
double scale2);
49 double Lambda3()
const {
return Lambda3Save; }
50 double Lambda4()
const {
return Lambda4Save; }
51 double Lambda5()
const {
return Lambda5Save; }
52 double Lambda6()
const {
return (nfmax >= 6) ? Lambda6Save : Lambda5Save; }
55 double muThres(
int idQ);
56 double muThres2(
int idQ);
59 double facCMW(
int nFin);
71 double Lambda3Save, Lambda4Save, Lambda5Save, Lambda6Save;
72 double Lambda3Save2, Lambda4Save2, Lambda5Save2, Lambda6Save2;
78 static const double MZ;
84 static const double FACCMW3, FACCMW4, FACCMW5, FACCMW6;
87 static const double SAFETYMARGIN1, SAFETYMARGIN2;
93 static const int NITER;
97 double valueRef, valueNow, scale2Now;
114 void init(
int orderIn, Settings* settingsPtr);
117 double alphaEM(
double scale2);
122 static const double MZ, Q2STEP[5], BRUNDEF[5];
126 double alpEM0, alpEMmZ, mZ2, bRun[5], alpEMstep[5];
143 void init(Settings& settings, Rndm* rndmPtrIn);
146 double alphaS(
double scale2) {
return alphaSlocal.alphaS(scale2);}
147 double alphaS1Ord(
double scale2) {
return alphaSlocal.alphaS1Ord(scale2);}
148 double alphaS2OrdCorr(
double scale2) {
149 return alphaSlocal.alphaS2OrdCorr(scale2);}
150 double Lambda3()
const {
return alphaSlocal.Lambda3();}
151 double Lambda4()
const {
return alphaSlocal.Lambda4();}
152 double Lambda5()
const {
return alphaSlocal.Lambda5();}
155 double alphaEM(
double scale2) {
return alphaEMlocal.alphaEM(scale2);}
158 double sin2thetaW() {
return s2tW;}
159 double cos2thetaW() {
return c2tW;}
160 double sin2thetaWbar() {
return s2tWbar;}
161 double GF() {
return GFermi;}
164 double ef(
int idAbs) {
return efSave[idAbs];}
165 double vf(
int idAbs) {
return vfSave[idAbs];}
166 double af(
int idAbs) {
return afSave[idAbs];}
167 double t3f(
int idAbs) {
return 0.5*afSave[idAbs];}
168 double lf(
int idAbs) {
return lfSave[idAbs];}
169 double rf(
int idAbs) {
return rfSave[idAbs];}
172 double ef2(
int idAbs) {
return ef2Save[idAbs];}
173 double vf2(
int idAbs) {
return vf2Save[idAbs];}
174 double af2(
int idAbs) {
return af2Save[idAbs];}
175 double efvf(
int idAbs) {
return efvfSave[idAbs];}
176 double vf2af2(
int idAbs) {
return vf2af2Save[idAbs];}
180 double VCKMgen(
int genU,
int genD) {
return VCKMsave[genU][genD];}
181 double V2CKMgen(
int genU,
int genD) {
return V2CKMsave[genU][genD];}
184 double VCKMid(
int id1,
int id2);
185 double V2CKMid(
int id1,
int id2);
188 double V2CKMsum(
int id) {
return V2CKMout[abs(
id)];}
189 int V2CKMpick(
int id);
194 static const double efSave[20], afSave[20];
197 double s2tW, c2tW, s2tWbar, GFermi, vfSave[20], lfSave[20], rfSave[20],
198 ef2Save[20], vf2Save[20], af2Save[20], efvfSave[20],
199 vf2af2Save[20], VCKMsave[5][5], V2CKMsave[5][5], V2CKMout[20];
205 AlphaStrong alphaSlocal;
208 AlphaEM alphaEMlocal;
216 class Couplings :
public CoupSM {
220 Couplings(
bool isSUSYin =
false) : isSUSY(isSUSYin) {}
229 #endif // Pythia8_StandardModel_H