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.), mc2(0.), mb2(0.), mt2(0.), lastCallToFull(false),
32 valueRef(0.), valueNow(0.), scale2Now(0.) {}
33 AlphaStrong(
double valueIn,
int orderIn = 1) {
34 init( valueIn, orderIn) ;}
37 virtual ~AlphaStrong() {}
40 virtual void init(
double valueIn = 0.12,
int orderIn = 1,
int nfmaxIn = 6,
41 bool useCMWIn =
false);
44 double alphaS(
double scale2);
45 double alphaS1Ord(
double scale2);
46 double alphaS2OrdCorr(
double scale2);
47 double Lambda3()
const {
return Lambda3Save; }
48 double Lambda4()
const {
return Lambda4Save; }
49 double Lambda5()
const {
return Lambda5Save; }
50 double Lambda6()
const {
return (nfmax >= 6) ? Lambda6Save : Lambda5Save; }
53 double muThres(
int idQ);
54 double muThres2(
int idQ);
57 double facCMW(
int nFin);
69 double Lambda3Save, Lambda4Save, Lambda5Save, Lambda6Save;
70 double Lambda3Save2, Lambda4Save2, Lambda5Save2, Lambda6Save2;
76 static const double MC, MB, MZ, MT;
81 static const double FACCMW3, FACCMW4, FACCMW5, FACCMW6;
84 static const double SAFETYMARGIN1, SAFETYMARGIN2;
90 static const int NITER;
94 double valueRef, valueNow, scale2Now;
111 void init(
int orderIn, Settings* settingsPtr);
114 double alphaEM(
double scale2);
119 static const double MZ, Q2STEP[5], BRUNDEF[5];
123 double alpEM0, alpEMmZ, mZ2, bRun[5], alpEMstep[5];
140 void init(Settings& settings, Rndm* rndmPtrIn);
143 double alphaS(
double scale2) {
return alphaSlocal.alphaS(scale2);}
144 double alphaS1Ord(
double scale2) {
return alphaSlocal.alphaS1Ord(scale2);}
145 double alphaS2OrdCorr(
double scale2) {
146 return alphaSlocal.alphaS2OrdCorr(scale2);}
147 double Lambda3()
const {
return alphaSlocal.Lambda3();}
148 double Lambda4()
const {
return alphaSlocal.Lambda4();}
149 double Lambda5()
const {
return alphaSlocal.Lambda5();}
152 double alphaEM(
double scale2) {
return alphaEMlocal.alphaEM(scale2);}
155 double sin2thetaW() {
return s2tW;}
156 double cos2thetaW() {
return c2tW;}
157 double sin2thetaWbar() {
return s2tWbar;}
158 double GF() {
return GFermi;}
161 double ef(
int idAbs) {
return efSave[idAbs];}
162 double vf(
int idAbs) {
return vfSave[idAbs];}
163 double af(
int idAbs) {
return afSave[idAbs];}
164 double t3f(
int idAbs) {
return 0.5*afSave[idAbs];}
165 double lf(
int idAbs) {
return lfSave[idAbs];}
166 double rf(
int idAbs) {
return rfSave[idAbs];}
169 double ef2(
int idAbs) {
return ef2Save[idAbs];}
170 double vf2(
int idAbs) {
return vf2Save[idAbs];}
171 double af2(
int idAbs) {
return af2Save[idAbs];}
172 double efvf(
int idAbs) {
return efvfSave[idAbs];}
173 double vf2af2(
int idAbs) {
return vf2af2Save[idAbs];}
177 double VCKMgen(
int genU,
int genD) {
return VCKMsave[genU][genD];}
178 double V2CKMgen(
int genU,
int genD) {
return V2CKMsave[genU][genD];}
181 double VCKMid(
int id1,
int id2);
182 double V2CKMid(
int id1,
int id2);
185 double V2CKMsum(
int id) {
return V2CKMout[abs(
id)];}
186 int V2CKMpick(
int id);
191 static const double efSave[20], afSave[20];
194 double s2tW, c2tW, s2tWbar, GFermi, vfSave[20], lfSave[20], rfSave[20],
195 ef2Save[20], vf2Save[20], af2Save[20], efvfSave[20],
196 vf2af2Save[20], VCKMsave[5][5], V2CKMsave[5][5], V2CKMout[20];
202 AlphaStrong alphaSlocal;
205 AlphaEM alphaEMlocal;
213 class Couplings :
public CoupSM {
217 Couplings() : isSUSY(false) {}
226 #endif // Pythia8_StandardModel_H