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,
double valueMaxIn = -1.,
double renormShiftIn = 0.);
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; }
78 double Lambda3Save2, Lambda4Save2, Lambda5Save2, Lambda6Save2;
84 static const double MZ;
90 static const double FACCMW3, FACCMW4, FACCMW5, FACCMW6;
99 static const int NITER;
103 double valueRef, valueNow, scale2Now;
104 double valueMax{-1.}, renormShiftSave{0.};
118 AlphaEM() :
order(), alpEM0(), alpEMmZ(), mZ2(), bRun(), alpEMstep() {}
124 double alphaEM(
double scale2);
129 static const double MZ, Q2STEP[5], BRUNDEF[5];
133 double alpEM0, alpEMmZ, mZ2, bRun[5], alpEMstep[5];
147 CoupSM() : s2tW(), c2tW(), s2tWbar(), GFermi(), vfSave(), lfSave(), rfSave(),
148 ef2Save(), vf2Save(), af2Save(), efvfSave(), vf2af2Save(), VCKMsave(),
149 V2CKMsave(), V2CKMout(), rndmPtr() {}
157 double alphaS(
double scale2) {
return alphaSlocal.alphaS(scale2);}
158 double alphaS1Ord(
double scale2) {
return alphaSlocal.alphaS1Ord(scale2);}
160 return alphaSlocal.alphaS2OrdCorr(scale2);}
161 double Lambda3()
const {
return alphaSlocal.Lambda3();}
162 double Lambda4()
const {
return alphaSlocal.Lambda4();}
163 double Lambda5()
const {
return alphaSlocal.Lambda5();}
166 double alphaEM(
double scale2) {
return alphaEMlocal.alphaEM(scale2);}
170 double cos2thetaW() {
return c2tW;}
171 double sin2thetaWbar() {
return s2tWbar;}
172 double GF() {
return GFermi;}
175 double ef(
int idAbs) {
return efSave[idAbs];}
176 double vf(
int idAbs) {
return vfSave[idAbs];}
177 double af(
int idAbs) {
return afSave[idAbs];}
178 double t3f(
int idAbs) {
return 0.5*afSave[idAbs];}
179 double lf(
int idAbs) {
return lfSave[idAbs];}
180 double rf(
int idAbs) {
return rfSave[idAbs];}
183 double ef2(
int idAbs) {
return ef2Save[idAbs];}
184 double vf2(
int idAbs) {
return vf2Save[idAbs];}
185 double af2(
int idAbs) {
return af2Save[idAbs];}
186 double efvf(
int idAbs) {
return efvfSave[idAbs];}
187 double vf2af2(
int idAbs) {
return vf2af2Save[idAbs];}
191 double VCKMgen(
int genU,
int genD) {
return VCKMsave[genU][genD];}
192 double V2CKMgen(
int genU,
int genD) {
return V2CKMsave[genU][genD];}
195 double VCKMid(
int id1,
int id2);
196 double V2CKMid(
int id1,
int id2);
199 double V2CKMsum(
int id) {
return V2CKMout[abs(
id)];}
200 int V2CKMpick(
int id);
205 static const double efSave[20], afSave[20];
208 double s2tW, c2tW, s2tWbar, GFermi, vfSave[20], lfSave[20], rfSave[20],
209 ef2Save[20], vf2Save[20], af2Save[20], efvfSave[20],
210 vf2af2Save[20], VCKMsave[5][5], V2CKMsave[5][5], V2CKMout[20];
245 virtual void initAlpha(
int nCin,
int nFin,
int orderIn = 1,
246 double alphaIn = 0.12,
double scaleIn = 91.188) {
247 initColFac( nCin, nFin, orderIn);
248 findLambda(alphaIn, scaleIn); }
252 double LambdaIn = 0.2) { initColFac( nCin, nFin, orderIn);
253 LambdaSave = LambdaIn; Lambda2Save =
pow2(LambdaSave);
255 :
pow2(SAFETYMARGIN2) * Lambda2Save; }
258 double alpha(
double scale2in);
259 double alpha1Ord(
double scale2in);
260 double alpha2OrdCorr(
double scale2in);
261 double Lambda()
const {
return LambdaSave; }
266 static const int NITER;
270 void initColFac(
int nCin,
int nFin,
int orderIn);
273 void findLambda(
double alphaIn,
double scaleIn);
277 double LambdaSave, Lambda2Save,
scale2Min, b0, b1, b2;
double s2tW
Couplings and VCKM matrix (index 0 not used).
Definition: StandardModel.h:208
constexpr double pow2(const double &x)
Powers of small integers - for balance speed/code clarity.
Definition: PythiaStdlib.h:173
double ef(int idAbs)
Return electroweak couplings of quarks and leptons.
Definition: StandardModel.h:175
Definition: StandardModel.h:23
int order
Running order and max number of flavours to use in running.
Definition: StandardModel.h:74
AlphaEM alphaEMlocal
An AlphaEM instance for general use (but not MPI, ISR, FSR).
Definition: StandardModel.h:219
double sin2thetaW()
Return electroweak mixing angle and Fermi constant.
Definition: StandardModel.h:169
double facCMW(int nFin)
Return the CMW factor (for nF between 3 and 6).
Definition: StandardModel.cc:359
bool useCMW
CMW rescaling factors.
Definition: StandardModel.h:89
double scale2Min
Smallest allowed renormalization scale.
Definition: StandardModel.h:81
static const double FACCMW3
CMW factor for 3, 4, 5, and 6 flavours.
Definition: StandardModel.h:90
double ef2(int idAbs)
Return some squared couplings and other combinations.
Definition: StandardModel.h:183
Definition: StandardModel.h:113
double alphaEM(double scale2)
Return alpha_EM value.
Definition: StandardModel.h:166
static const double SAFETYMARGIN1
Safety margins to avoid getting too close to LambdaQCD.
Definition: StandardModel.h:93
double VCKMgen(int genU, int genD)
Definition: StandardModel.h:191
double alphaS1Ord(double scale2)
Definition: StandardModel.cc:259
AlphaStrong()
Constructors.
Definition: StandardModel.h:28
Definition: StandardModel.h:233
double muThres(int idQ)
Info: tell which scales we use for flavour thresholds.
Definition: StandardModel.cc:335
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:251
double renormShift()
Return the poleShift value.
Definition: StandardModel.h:65
double muThres2(int idQ)
Definition: StandardModel.cc:345
CoupSM()
Constructor.
Definition: StandardModel.h:147
virtual void init(double valueIn=0.12, int orderIn=1, int nfmaxIn=6, bool useCMWIn=false, double valueMaxIn=-1., double renormShiftIn=0.)
Initialization for given value at M_Z and given order.
Definition: StandardModel.cc:42
Definition: StandardModel.h:142
double alphaS(double scale2)
alpha_S value and Lambda values.
Definition: StandardModel.h:157
static const double MZ
Flavour thresholds.
Definition: StandardModel.h:84
double alphaSmax()
Return the alphaSmax value.
Definition: StandardModel.h:62
AlphaSUN()
Constructors.
Definition: StandardModel.h:238
AlphaEM()
Constructors.
Definition: StandardModel.h:118
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:294
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:245
double V2CKMsum(int id)
Return CKM sum of squares for given inflavour, or random outflavour.
Definition: StandardModel.h:199
Rndm * rndmPtr
Pointer to the random number generator.
Definition: StandardModel.h:213
bool isInit
Protected data members: accessible to derived classes.
Definition: StandardModel.h:71
virtual ~AlphaSUN()
Destructor.
Definition: StandardModel.h:242
double alphaS(double scale2)
alpha_S value and Lambda values.
Definition: StandardModel.cc:189
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:224
double Lambda3Save
Lambda values.
Definition: StandardModel.h:77
AlphaStrong alphaSlocal
An AlphaStrong instance for general use (but not MPI, ISR, FSR).
Definition: StandardModel.h:216
Definition: Settings.h:196