10 #ifndef Pythia8_ResonanceWidths_H
11 #define Pythia8_ResonanceWidths_H
15 #include "ParticleData.h"
16 #include "PythiaStdlib.h"
18 #include "StandardModel.h"
27 class ParticleDataEntry;
42 void initBasic(
int idResIn,
bool isGenericIn =
false) {
43 idRes = idResIn; isGeneric = isGenericIn;}
46 virtual bool init(
Info* infoPtrIn,
Settings* settingsPtrIn,
50 int id()
const {
return idRes;}
53 double width(
int idSgn,
double mHatIn,
int idInFlavIn = 0,
54 bool openOnly =
false,
bool setBR =
false,
int idOutFlav1 = 0,
58 double widthOpen(
int idSgn,
double mHatIn,
int idIn = 0) {
59 return width( idSgn, mHatIn, idIn,
true,
false);}
62 double widthStore(
int idSgn,
double mHatIn,
int idIn = 0) {
63 return width( idSgn, mHatIn, idIn,
true,
true);}
66 double openFrac(
int idSgn) {
return (idSgn > 0) ? openPos : openNeg;}
69 double widthRescaleFactor() {
return forceFactor;}
73 double widthChan(
double mHatIn,
int idOutFlav1,
int idOutFlav2) {
74 return width( 1, mHatIn, 0,
false,
false, idOutFlav1, idOutFlav2);}
82 static const int NPOINT;
83 static const double MASSMARGIN;
86 int idRes, hasAntiRes;
87 bool doForceWidth, isGeneric;
88 double minWidth, minThreshold, mRes, GammaRes, m2Res, GamMRat,
89 openPos, openNeg, forceFactor;
92 int iChannel, onMode, meMode, mult, id1, id2, id3, id1Abs,
93 id2Abs, id3Abs, idInFlav;
94 double widNow, mHat, mf1, mf2, mf3, mr1, mr2, mr3, ps, kinFac,
95 alpEM, alpS, colQ, preFac;
113 virtual void initConstants() {}
117 virtual void calcPreFac(
bool =
false) {}
121 virtual void calcWidth(
bool =
false) {}
124 double numInt1BW(
double mHatIn,
double m1,
double Gamma1,
double mMin1,
125 double m2,
int psMode = 1);
126 double numInt2BW(
double mHatIn,
double m1,
double Gamma1,
double mMin1,
127 double m2,
double Gamma2,
double mMin2,
int psMode = 1);
160 double thetaWRat, ei2, eivi, vi2ai2, gamNorm, intNorm, resNorm;
163 virtual void initConstants();
166 virtual void calcPreFac(
bool =
false);
169 virtual void calcWidth(
bool calledFromInit =
false);
187 double thetaWRat, alpEM;
190 virtual void initConstants();
193 virtual void calcPreFac(
bool =
false);
196 virtual void calcWidth(
bool =
false);
214 double thetaWRat, m2W;
217 virtual void initConstants();
220 virtual void calcPreFac(
bool =
false);
223 virtual void calcWidth(
bool =
false);
241 double thetaWRat, m2W;
244 virtual void initConstants();
247 virtual void calcPreFac(
bool =
false);
250 virtual void calcWidth(
bool =
false);
264 ResonanceH(
int higgsTypeIn,
int idResIn) : higgsType(higgsTypeIn)
265 {initBasic(idResIn);}
270 static const double MASSMINWZ, MASSMINT, GAMMAMARGIN;
276 bool useCubicWidth, useRunLoopMass;
277 double sin2tW, cos2tW, mT, mZ, mW, mHchg, GammaT, GammaZ, GammaW,
278 coup2d, coup2u, coup2l, coup2Z, coup2W, coup2Hchg, coup2H1H1,
279 coup2A3A3, coup2H1Z, coup2A3Z, coup2A3H1, coup2HchgW,
280 mLowT, mStepT, mLowZ, mStepZ, mLowW, mStepW,
281 kinFacT[101], kinFacZ[101], kinFacW[101];
284 virtual void initConstants();
287 virtual void calcPreFac(
bool =
false);
290 virtual void calcWidth(
bool =
false);
318 double thetaWRat, mW, tanBeta, tan2Beta, coup2H1W;
321 virtual void initConstants();
324 virtual void calcPreFac(
bool =
false);
327 virtual void calcWidth(
bool =
false);
346 double sin2tW, cos2tW, thetaWRat, mZ, GammaZ, m2Z, GamMRatZ, afZp[20],
347 vfZp[20], coupZpWW, ei2, eivi, vai2, eivpi, vaivapi, vapi2,
348 gamNorm, gamZNorm, ZNorm, gamZpNorm, ZZpNorm, ZpNorm;
351 virtual void initConstants();
354 virtual void calcPreFac(
bool =
false);
357 virtual void calcWidth(
bool calledFromInit =
false);
375 double thetaWRat, cos2tW, alpEM, aqWp, vqWp, alWp, vlWp, coupWpWZ;
378 virtual void initConstants();
381 virtual void calcPreFac(
bool =
false);
384 virtual void calcWidth(
bool =
false);
405 virtual void initConstants();
408 virtual void calcPreFac(
bool =
false);
411 virtual void calcWidth(
bool =
false);
429 double Lambda, coupF, coupFprime, coupFcol, sin2tW, cos2tW;
432 virtual void initConstants();
435 virtual void calcPreFac(
bool =
false);
438 virtual void calcWidth(
bool =
false);
456 bool eDsmbulk, eDvlvl;
460 double eDcoupling[27];
463 virtual void initConstants();
466 virtual void calcPreFac(
bool =
false);
469 virtual void calcWidth(
bool =
false);
487 double normSM, normInt, normKK;
492 double eDgv[10], eDga[10];
498 virtual void initConstants();
501 virtual void calcPreFac(
bool calledFromInit =
false);
504 virtual void calcWidth(
bool calledFromInit =
false);
525 virtual void initConstants();
528 virtual void calcPreFac(
bool =
false);
531 virtual void calcWidth(
bool =
false);
549 double thetaWRat, mWR;
552 virtual void initConstants();
555 virtual void calcPreFac(
bool =
false);
558 virtual void calcWidth(
bool =
false);
576 double sin2tW, thetaWRat;
579 virtual void initConstants();
582 virtual void calcPreFac(
bool =
false);
585 virtual void calcWidth(
bool =
false);
606 virtual void initConstants();
609 virtual void calcPreFac(
bool =
false);
612 virtual void calcWidth(
bool =
false);
630 double yukawa[4][4], gL, vL, mW;
633 virtual void initConstants();
636 virtual void calcPreFac(
bool =
false);
639 virtual void calcWidth(
bool =
false);
658 double yukawa[4][4], gR;
661 virtual void initConstants();
664 virtual void calcPreFac(
bool =
false);
667 virtual void calcWidth(
bool =
false);
675 #endif // Pythia8_ResonanceWidths_H