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" 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.) {}
38 virtual void init(
double valueIn = 0.12,
int orderIn = 1,
int nfmaxIn = 6,
39 bool useCMWIn =
false);
43 mt=mtIn; mb=min(mt,mbIn); mc=min(mb,mcIn);}
46 double alphaS(
double scale2);
50 double Lambda4()
const {
return Lambda4Save; }
51 double Lambda5()
const {
return Lambda5Save; }
52 double Lambda6()
const {
return (nfmax >= 6) ? Lambda6Save : Lambda5Save; }
72 double Lambda3Save2, Lambda4Save2, Lambda5Save2, Lambda6Save2;
78 static const double MZ;
84 static const double FACCMW3, FACCMW4, FACCMW5, FACCMW6;
93 static const int NITER;
97 double valueRef, valueNow, scale2Now;
111 AlphaEM() :
order(), alpEM0(), alpEMmZ(), mZ2(), bRun(), alpEMstep() {}
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() {}
150 double alphaS(
double scale2) {
return alphaSlocal.alphaS(scale2);}
151 double alphaS1Ord(
double scale2) {
return alphaSlocal.alphaS1Ord(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);}
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];
238 virtual void initAlpha(
int nCin,
int nFin,
int orderIn = 1,
239 double alphaIn = 0.12,
double scaleIn = 91.188) {
240 initColFac( nCin, nFin, orderIn);
241 findLambda(alphaIn, scaleIn); }
245 double LambdaIn = 0.2) { initColFac( nCin, nFin, orderIn);
246 LambdaSave = LambdaIn; Lambda2Save =
pow2(LambdaSave);
248 :
pow2(SAFETYMARGIN2) * Lambda2Save; }
251 double alpha(
double scale2in);
252 double alpha1Ord(
double scale2in);
253 double alpha2OrdCorr(
double scale2in);
254 double Lambda()
const {
return LambdaSave; }
259 static const int NITER;
263 void initColFac(
int nCin,
int nFin,
int orderIn);
266 void findLambda(
double alphaIn,
double scaleIn);
270 double LambdaSave, Lambda2Save,
scale2Min, b0, b1, b2;
double s2tW
Couplings and VCKM matrix (index 0 not used).
Definition: StandardModel.h:201
constexpr double pow2(const double &x)
Powers of small integers - for balance speed/code clarity.
Definition: PythiaStdlib.h:182
double ef(int idAbs)
Return electroweak couplings of quarks and leptons.
Definition: StandardModel.h:168
virtual void init(double valueIn=0.12, int orderIn=1, int nfmaxIn=6, bool useCMWIn=false)
Initialization for given value at M_Z and given order.
Definition: StandardModel.cc:42
Definition: StandardModel.h:23
int order
Running order and max number of flavours to use in running.
Definition: StandardModel.h:68
AlphaEM alphaEMlocal
An AlphaEM instance for general use (but not MPI, ISR, FSR).
Definition: StandardModel.h:212
double sin2thetaW()
Return electroweak mixing angle and Fermi constant.
Definition: StandardModel.h:162
double facCMW(int nFin)
Return the CMW factor (for nF between 3 and 6).
Definition: StandardModel.cc:344
bool useCMW
CMW rescaling factors.
Definition: StandardModel.h:83
double scale2Min
Smallest allowed renormalization scale.
Definition: StandardModel.h:75
static const double FACCMW3
CMW factor for 3, 4, 5, and 6 flavours.
Definition: StandardModel.h:84
double ef2(int idAbs)
Return some squared couplings and other combinations.
Definition: StandardModel.h:176
Definition: StandardModel.h:106
double alphaEM(double scale2)
Return alpha_EM value.
Definition: StandardModel.h:159
static const double SAFETYMARGIN1
Safety margins to avoid getting too close to LambdaQCD.
Definition: StandardModel.h:87
double VCKMgen(int genU, int genD)
Definition: StandardModel.h:184
double alphaS1Ord(double scale2)
Definition: StandardModel.cc:244
AlphaStrong()
Constructors.
Definition: StandardModel.h:28
Definition: StandardModel.h:226
double muThres(int idQ)
Info: tell which scales we use for flavour thresholds.
Definition: StandardModel.cc:320
virtual void initLambda(int nCin, int nFin, int orderIn=1, double LambdaIn=0.2)
Initialization for given value of Lambda and given order.
Definition: StandardModel.h:244
double muThres2(int idQ)
Definition: StandardModel.cc:330
CoupSM()
Constructor.
Definition: StandardModel.h:140
Definition: StandardModel.h:135
double alphaS(double scale2)
alpha_S value and Lambda values.
Definition: StandardModel.h:150
static const double MZ
Flavour thresholds.
Definition: StandardModel.h:78
AlphaSUN()
Constructors.
Definition: StandardModel.h:231
AlphaEM()
Constructors.
Definition: StandardModel.h:111
virtual ~AlphaStrong()
Destructor.
Definition: StandardModel.h:35
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
double alphaS2OrdCorr(double scale2)
Definition: StandardModel.cc:279
virtual void initAlpha(int nCin, int nFin, int orderIn=1, double alphaIn=0.12, double scaleIn=91.188)
Initialization for given value at M_Z and given order.
Definition: StandardModel.h:238
double V2CKMsum(int id)
Return CKM sum of squares for given inflavour, or random outflavour.
Definition: StandardModel.h:192
Rndm * rndmPtr
Pointer to the random number generator.
Definition: StandardModel.h:206
bool isInit
Protected data members: accessible to derived classes.
Definition: StandardModel.h:65
virtual ~AlphaSUN()
Destructor.
Definition: StandardModel.h:235
double alphaS(double scale2)
alpha_S value and Lambda values.
Definition: StandardModel.cc:177
virtual void setThresholds(double mcIn, double mbIn, double mtIn)
Set flavour threshold values: m_c, m_b, m_t.
Definition: StandardModel.h:42
CoupSM Couplings
Backwards compatability for MG5ME plugin interface with Pythia.
Definition: StandardModel.h:217
double Lambda3Save
Lambda values.
Definition: StandardModel.h:71
AlphaStrong alphaSlocal
An AlphaStrong instance for general use (but not MPI, ISR, FSR).
Definition: StandardModel.h:209
Definition: Settings.h:195