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), nfmax(),
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.), useCMW(),
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;
111 AlphaEM() : order(), alpEM0(), alpEMmZ(), mZ2(), bRun(), alpEMstep() {}
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];
140 CoupSM() : s2tW(), c2tW(), s2tWbar(), GFermi(), vfSave(), lfSave(), rfSave(),
141 ef2Save(), vf2Save(), af2Save(), efvfSave(), vf2af2Save(), VCKMsave(),
142 V2CKMsave(), V2CKMout(), rndmPtr() {}
147 void init(Settings& settings, Rndm* rndmPtrIn);
150 double alphaS(
double scale2) {
return alphaSlocal.alphaS(scale2);}
151 double alphaS1Ord(
double scale2) {
return alphaSlocal.alphaS1Ord(scale2);}
152 double alphaS2OrdCorr(
double scale2) {
153 return alphaSlocal.alphaS2OrdCorr(scale2);}
154 double Lambda3()
const {
return alphaSlocal.Lambda3();}
155 double Lambda4()
const {
return alphaSlocal.Lambda4();}
156 double Lambda5()
const {
return alphaSlocal.Lambda5();}
159 double alphaEM(
double scale2) {
return alphaEMlocal.alphaEM(scale2);}
162 double sin2thetaW() {
return s2tW;}
163 double cos2thetaW() {
return c2tW;}
164 double sin2thetaWbar() {
return s2tWbar;}
165 double GF() {
return GFermi;}
168 double ef(
int idAbs) {
return efSave[idAbs];}
169 double vf(
int idAbs) {
return vfSave[idAbs];}
170 double af(
int idAbs) {
return afSave[idAbs];}
171 double t3f(
int idAbs) {
return 0.5*afSave[idAbs];}
172 double lf(
int idAbs) {
return lfSave[idAbs];}
173 double rf(
int idAbs) {
return rfSave[idAbs];}
176 double ef2(
int idAbs) {
return ef2Save[idAbs];}
177 double vf2(
int idAbs) {
return vf2Save[idAbs];}
178 double af2(
int idAbs) {
return af2Save[idAbs];}
179 double efvf(
int idAbs) {
return efvfSave[idAbs];}
180 double vf2af2(
int idAbs) {
return vf2af2Save[idAbs];}
184 double VCKMgen(
int genU,
int genD) {
return VCKMsave[genU][genD];}
185 double V2CKMgen(
int genU,
int genD) {
return V2CKMsave[genU][genD];}
188 double VCKMid(
int id1,
int id2);
189 double V2CKMid(
int id1,
int id2);
192 double V2CKMsum(
int id) {
return V2CKMout[abs(
id)];}
193 int V2CKMpick(
int id);
198 static const double efSave[20], afSave[20];
201 double s2tW, c2tW, s2tWbar, GFermi, vfSave[20], lfSave[20], rfSave[20],
202 ef2Save[20], vf2Save[20], af2Save[20], efvfSave[20],
203 vf2af2Save[20], VCKMsave[5][5], V2CKMsave[5][5], V2CKMout[20];
209 AlphaStrong alphaSlocal;
212 AlphaEM alphaEMlocal;
217 typedef CoupSM Couplings;
223 #endif // Pythia8_StandardModel_H