10 #ifndef Pythia8_ResonanceWidths_H 11 #define Pythia8_ResonanceWidths_H 13 #include "Pythia8/Basics.h" 14 #include "Pythia8/Info.h" 15 #include "Pythia8/PythiaStdlib.h" 16 #include "Pythia8/Settings.h" 17 #include "Pythia8/StandardModel.h" 26 class ParticleDataEntry;
42 void initBasic(
int idResIn,
bool isGenericIn =
false) {
43 idRes = idResIn; isGeneric = isGenericIn;}
52 double width(
int idSgn,
double mHatIn,
int idInFlavIn = 0,
53 bool openOnly =
false,
bool setBR =
false,
int idOutFlav1 = 0,
57 double widthOpen(
int idSgn,
double mHatIn,
int idIn = 0) {
58 return width( idSgn, mHatIn, idIn,
true,
false);}
61 double widthStore(
int idSgn,
double mHatIn,
int idIn = 0) {
62 return width( idSgn, mHatIn, idIn,
true,
true);}
65 double openFrac(
int idSgn) {
return (idSgn > 0) ? openPos : openNeg;}
72 double widthChan(
double mHatIn,
int idOutFlav1,
int idOutFlav2) {
73 return width( 1, mHatIn, 0,
false,
false, idOutFlav1, idOutFlav2);}
79 allowCalcWidth(), minWidth(), minThreshold(), mRes(), GammaRes(), m2Res(),
80 GamMRat(), openPos(), openNeg(), forceFactor(),
iChannel(), onMode(),
81 meMode(), mult(), id1(), id2(), id3(), id1Abs(), id2Abs(), id3Abs(),
82 idInFlav(), widNow(), mHat(), mf1(), mf2(), mf3(), mr1(), mr2(), mr3(),
83 ps(), kinFac(), alpEM(), alpS(), colQ(), preFac(),
particlePtr(),
93 bool doForceWidth, isGeneric, allowCalcWidth;
94 double minWidth, minThreshold, mRes, GammaRes, m2Res, GamMRat,
95 openPos, openNeg, forceFactor;
98 int iChannel, onMode, meMode, mult, id1, id2, id3, id1Abs,
99 id2Abs, id3Abs, idInFlav;
100 double widNow, mHat, mf1, mf2, mf3, mr1, mr2, mr3, ps, kinFac,
101 alpEM, alpS, colQ, preFac;
128 virtual bool allowCalc() {
return true;}
139 double numInt1BW(
double mHatIn,
double m1,
double Gamma1,
double mMin1,
140 double m2,
int psMode = 1);
141 double numInt2BW(
double mHatIn,
double m1,
double Gamma1,
double mMin1,
142 double m2,
double Gamma2,
double mMin2,
int psMode = 1);
173 ResonanceGmZ(
int idResIn) : gmZmode(), thetaWRat(), ei2(), eivi(), vi2ai2(),
174 gamNorm(), intNorm(), resNorm() {
initBasic(idResIn);}
180 double thetaWRat, ei2, eivi, vi2ai2, gamNorm, intNorm, resNorm;
186 virtual void calcPreFac(
bool =
false)
override;
189 virtual void calcWidth(
bool calledFromInit =
false)
override;
213 virtual void calcPreFac(
bool =
false)
override;
216 virtual void calcWidth(
bool =
false)
override;
235 double thetaWRat, m2W, tanBeta, tan2Beta, mbRun;
241 virtual void calcPreFac(
bool =
false)
override;
244 virtual void calcWidth(
bool =
false)
override;
262 double thetaWRat, m2W;
268 virtual void calcPreFac(
bool =
false)
override;
271 virtual void calcWidth(
bool =
false)
override;
285 ResonanceH(
int higgsTypeIn,
int idResIn) : higgsType(higgsTypeIn),
286 useCubicWidth(), useRunLoopMass(), useNLOWidths(), sin2tW(), cos2tW(),
287 mT(), mZ(), mW(), mHchg(), GammaT(), GammaZ(), GammaW(), rescAlpS(),
288 rescColQ(), coup2d(), coup2u(), coup2l(), coup2Z(), coup2W(), coup2Hchg(),
289 coup2H1H1(), coup2A3A3(), coup2H1Z(), coup2A3Z(), coup2A3H1(),
290 coup2HchgW(), mLowT(), mStepT(), mLowZ(), mStepZ(), mLowW(), mStepW(),
291 kinFacT(), kinFacZ(), kinFacW() {
initBasic(idResIn);}
296 static const double MASSMINWZ, MASSMINT, GAMMAMARGIN;
302 bool useCubicWidth, useRunLoopMass, useNLOWidths;
303 double sin2tW, cos2tW, mT, mZ, mW, mHchg, GammaT, GammaZ, GammaW,
304 rescAlpS, rescColQ, coup2d, coup2u, coup2l, coup2Z, coup2W,
305 coup2Hchg, coup2H1H1, coup2A3A3, coup2H1Z, coup2A3Z, coup2A3H1,
306 coup2HchgW, mLowT, mStepT, mLowZ, mStepZ, mLowW, mStepW,
307 kinFacT[101], kinFacZ[101], kinFacW[101];
313 virtual void calcPreFac(
bool =
false)
override;
316 virtual void calcWidth(
bool =
false)
override;
339 tan2Beta(), coup2H1W() {
initBasic(idResIn);}
345 double thetaWRat, mW, tanBeta, tan2Beta, coup2H1W;
351 virtual void calcPreFac(
bool =
false)
override;
354 virtual void calcWidth(
bool =
false)
override;
368 thetaWRat(), mZ(), GammaZ(), m2Z(), GamMRatZ(), afZp(), vfZp(), coupZpWW(),
369 ei2(), eivi(), vai2(), eivpi(), vaivapi(), vapi2(), gamNorm(), gamZNorm(),
370 ZNorm(), gamZpNorm(), ZZpNorm(), ZpNorm() {
initBasic(idResIn);}
375 int gmZmode, maxZpGen;
376 double sin2tW, cos2tW, thetaWRat, mZ, GammaZ, m2Z, GamMRatZ, afZp[20],
377 vfZp[20], coupZpWW, ei2, eivi, vai2, eivpi, vaivapi, vapi2,
378 gamNorm, gamZNorm, ZNorm, gamZpNorm, ZZpNorm, ZpNorm;
384 virtual void calcPreFac(
bool =
false)
override;
387 virtual void calcWidth(
bool calledFromInit =
false)
override;
401 aqWp(), vqWp(), alWp(), vlWp(), coupWpWZ() {
initBasic(idResIn);}
406 double thetaWRat, cos2tW, aqWp, vqWp, alWp, vlWp, coupWpWZ;
412 virtual void calcPreFac(
bool =
false)
override;
415 virtual void calcWidth(
bool =
false)
override;
439 virtual void calcPreFac(
bool =
false)
override;
442 virtual void calcWidth(
bool =
false)
override;
456 contactDec(), sin2tW(), cos2tW() {
initBasic(idResIn);}
461 double Lambda, coupF, coupFprime, coupFcol, contactDec, sin2tW, cos2tW;
467 virtual void calcPreFac(
bool =
false)
override;
470 virtual void calcWidth(
bool =
false)
override;
489 bool eDsmbulk, eDvlvl;
493 double eDcoupling[27];
499 virtual void calcPreFac(
bool =
false)
override;
502 virtual void calcWidth(
bool =
false)
override;
516 eDga(), interfMode() {
initBasic(idResIn);}
521 double normSM, normInt, normKK;
526 double eDgv[10], eDga[10];
535 virtual void calcPreFac(
bool calledFromInit =
false)
override;
538 virtual void calcWidth(
bool calledFromInit =
false)
override;
562 virtual void calcPreFac(
bool =
false)
override;
565 virtual void calcWidth(
bool =
false)
override;
583 double thetaWRat, mWR;
589 virtual void calcPreFac(
bool =
false)
override;
592 virtual void calcWidth(
bool =
false)
override;
610 double sin2tW, thetaWRat;
616 virtual void calcPreFac(
bool =
false)
override;
619 virtual void calcWidth(
bool =
false)
override;
643 virtual void calcPreFac(
bool =
false)
override;
646 virtual void calcWidth(
bool =
false)
override;
665 double yukawa[4][4], gL, vL, mW;
671 virtual void calcPreFac(
bool =
false)
override;
674 virtual void calcWidth(
bool =
false)
override;
694 double yukawa[4][4], gR;
700 virtual void calcPreFac(
bool =
false)
override;
703 virtual void calcWidth(
bool =
false)
override;
The ResonanceWidths is the base class. Also used for generic resonaces.
Definition: ResonanceWidths.h:34
The ResonanceWRight class handles the W_R+- resonance.
Definition: ResonanceWidths.h:627
double widthChan(double mHatIn, int idOutFlav1, int idOutFlav2)
Definition: ResonanceWidths.h:72
The ResonanceGmZ class handles the gamma*/Z0 resonance.
Definition: ResonanceWidths.h:168
The ResonanceHchg class handles the H+- resonance.
Definition: ResonanceWidths.h:333
double width(int idSgn, double mHatIn, int idInFlavIn=0, bool openOnly=false, bool setBR=false, int idOutFlav1=0, int idOutFlav2=0)
Calculate the total/open width for given mass, charge and instate.
Definition: ResonanceWidths.cc:269
virtual ~ResonanceWidths()
Destructor.
Definition: ResonanceWidths.h:39
The ResonanceNuRight class handles righthanded Majorana neutrinos.
Definition: ResonanceWidths.h:573
static const double MASSMARGIN
The sum of product masses must not be too close to the resonance mass.
Definition: ResonanceWidths.h:89
The ResonanceWprime class handles the W'+- resonance.
Definition: ResonanceWidths.h:395
ResonanceHchgchgRight(int idResIn)
Constructor.
Definition: ResonanceWidths.h:687
The ResonanceFour class handles fourth-generation resonances.
Definition: ResonanceWidths.h:252
ResonanceWidths()
Constructor.
Definition: ResonanceWidths.h:78
The ResonanceZprime class handles the gamma*/Z0 /Z'^0 resonance.
Definition: ResonanceWidths.h:362
ResonanceH(int higgsTypeIn, int idResIn)
Constructor.
Definition: ResonanceWidths.h:285
The ResonanceGraviton class handles the excited Graviton resonance.
Definition: ResonanceWidths.h:478
Settings * settingsPtr
Pointer to the settings database.
Definition: ResonanceWidths.h:110
virtual bool init(Info *infoPtrIn)
Calculate and store partial and total widths at the nominal mass.
Definition: ResonanceWidths.cc:39
ResonanceW(int idResIn)
Constructor.
Definition: ResonanceWidths.h:202
double numInt2BW(double mHatIn, double m1, double Gamma1, double mMin1, double m2, double Gamma2, double mMin2, int psMode=1)
Definition: ResonanceWidths.cc:470
ResonanceRhorizontal(int idResIn)
Constructor.
Definition: ResonanceWidths.h:428
virtual bool initBSM()
Definition: ResonanceWidths.h:127
static const int NPOINT
Constants: could only be changed in the code itself.
Definition: ResonanceWidths.h:88
The ResonanceLeptoquark class handles the LQ/LQbar resonance.
Definition: ResonanceWidths.h:546
The ResonanceHchgchgLeft class handles the H++/H– (left) resonance.
Definition: ResonanceWidths.h:654
ResonanceLeptoquark(int idResIn)
Constructor.
Definition: ResonanceWidths.h:551
static const double MASSMIN
The mass of a resonance must not be too small.
Definition: ResonanceWidths.h:89
int idRes
Particle properties always present.
Definition: ResonanceWidths.h:92
weak_ptr< ParticleDataEntry > particlePtr
Pointer to properties of the particle species.
Definition: ResonanceWidths.h:104
double widthRescaleFactor()
Return forced rescaling factor of resonance width.
Definition: ResonanceWidths.h:68
ResonanceHchg(int idResIn)
Constructor.
Definition: ResonanceWidths.h:338
The ResonanceTop class handles the top/antitop resonance.
Definition: ResonanceWidths.h:224
ResonanceExcited(int idResIn)
Constructor.
Definition: ResonanceWidths.h:455
double widthOpen(int idSgn, double mHatIn, int idIn=0)
Special case to calculate open final-state width.
Definition: ResonanceWidths.h:57
virtual bool allowCalc() override
By default, assume no dedicated code exists to compute width.
Definition: ResonanceWidths.h:160
virtual void calcPreFac(bool=false)
Definition: ResonanceWidths.h:132
ResonanceNuRight(int idResIn)
Constructor.
Definition: ResonanceWidths.h:578
ResonanceZRight(int idResIn)
Constructor.
Definition: ResonanceWidths.h:605
Logger * loggerPtr
Pointer to the logger.
Definition: ResonanceWidths.h:116
The ResonanceZRight class handles the Z_R^0 resonance.
Definition: ResonanceWidths.h:600
virtual void initConstants()
Initialize constants.
Definition: ResonanceWidths.h:123
ResonanceKKgluon(int idResIn)
Constructor.
Definition: ResonanceWidths.h:515
The ResonanceHchgchgRight class handles the H++/H– (right) resonance.
Definition: ResonanceWidths.h:682
ResonanceGmZ(int idResIn)
Constructor.
Definition: ResonanceWidths.h:173
The ResonanceKKgluon class handles the g^*/KK-gluon^* resonance.
Definition: ResonanceWidths.h:510
Definition: StandardModel.h:135
ResonanceFour(int idResIn)
Constructor.
Definition: ResonanceWidths.h:257
Definition: ResonanceWidths.h:280
ResonanceWprime(int idResIn)
Constructor.
Definition: ResonanceWidths.h:400
ResonanceTop(int idResIn)
Constructor.
Definition: ResonanceWidths.h:229
double m2(const Vec4 &v1)
The squared invariant mass of one or more four-vectors.
Definition: Basics.cc:605
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
The ResonanceW class handles the W+- resonance.
Definition: ResonanceWidths.h:197
double widthStore(int idSgn, double mHatIn, int idIn=0)
Special case to store open final-state widths for channel selection.
Definition: ResonanceWidths.h:61
ParticleData * particleDataPtr
Pointer to the particle data table.
Definition: ResonanceWidths.h:113
CoupSM * coupSMPtr
Pointers to Standard Model and SUSY couplings.
Definition: ResonanceWidths.h:119
ResonanceWRight(int idResIn)
Constructor.
Definition: ResonanceWidths.h:632
virtual void calcWidth(bool=false)
Definition: ResonanceWidths.h:136
ResonanceZprime(int idResIn)
Constructor.
Definition: ResonanceWidths.h:367
The ResonanceRhorizontal class handles the R^0 resonance.
Definition: ResonanceWidths.h:423
Definition: ResonanceWidths.h:152
double numInt1BW(double mHatIn, double m1, double Gamma1, double mMin1, double m2, int psMode=1)
Simple routines for matrix-element integration over Breit-Wigners.
Definition: ResonanceWidths.cc:413
double openFrac(int idSgn)
Return fraction of width open for particle and antiparticle.
Definition: ResonanceWidths.h:65
int id() const
Return identity of particle species.
Definition: ResonanceWidths.h:49
This class holds a map of all ParticleDataEntries.
Definition: ParticleData.h:422
int iChannel
Properties for currently studied decay channel(s).
Definition: ResonanceWidths.h:98
ResonanceHchgchgLeft(int idResIn)
Constructor.
Definition: ResonanceWidths.h:659
The ResonanceExcited class handles excited-fermion resonances.
Definition: ResonanceWidths.h:450
ResonanceGeneric(int idResIn)
Constructor.
Definition: ResonanceWidths.h:157
void initBasic(int idResIn, bool isGenericIn=false)
Set up standard properties.
Definition: ResonanceWidths.h:42
Definition: SusyCouplings.h:27
Info * infoPtr
Pointer to various information on the generation.
Definition: ResonanceWidths.h:107
Definition: Settings.h:195
ResonanceGraviton(int idResIn)
Constructor.
Definition: ResonanceWidths.h:483