PYTHIA
8.312
|
The ResonanceWidths is the base class. Also used for generic resonaces. More...
#include <ResonanceWidths.h>
Public Member Functions | |
virtual | ~ResonanceWidths () |
Destructor. | |
void | initBasic (int idResIn, bool isGenericIn=false) |
Set up standard properties. | |
virtual bool | init (Info *infoPtrIn) |
Calculate and store partial and total widths at the nominal mass. More... | |
int | id () const |
Return identity of particle species. | |
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. More... | |
double | widthOpen (int idSgn, double mHatIn, int idIn=0) |
Special case to calculate open final-state width. | |
double | widthStore (int idSgn, double mHatIn, int idIn=0) |
Special case to store open final-state widths for channel selection. | |
double | openFrac (int idSgn) |
Return fraction of width open for particle and antiparticle. | |
double | widthRescaleFactor () |
Return forced rescaling factor of resonance width. | |
double | widthChan (double mHatIn, int idOutFlav1, int idOutFlav2) |
Protected Member Functions | |
ResonanceWidths () | |
Constructor. | |
virtual void | initConstants () |
Initialize constants. | |
virtual bool | initBSM () |
virtual bool | allowCalc () |
virtual void | calcPreFac (bool=false) |
virtual void | calcWidth (bool=false) |
double | numInt1BW (double mHatIn, double m1, double Gamma1, double mMin1, double m2, int psMode=1) |
Simple routines for matrix-element integration over Breit-Wigners. More... | |
double | numInt2BW (double mHatIn, double m1, double Gamma1, double mMin1, double m2, double Gamma2, double mMin2, int psMode=1) |
Protected Attributes | |
int | idRes |
Particle properties always present. | |
int | hasAntiRes |
bool | doForceWidth |
bool | isGeneric |
bool | allowCalcWidth |
double | minWidth |
double | minThreshold |
double | mRes |
double | GammaRes |
double | m2Res |
double | GamMRat |
double | openPos |
double | openNeg |
double | forceFactor |
int | iChannel |
Properties for currently studied decay channel(s). | |
int | onMode |
int | meMode |
int | mult |
int | id1 |
int | id2 |
int | id3 |
int | id1Abs |
int | id2Abs |
int | id3Abs |
int | idInFlav |
double | widNow |
double | mHat |
double | mf1 |
double | mf2 |
double | mf3 |
double | mr1 |
double | mr2 |
double | mr3 |
double | ps |
double | kinFac |
double | alpEM |
double | alpS |
double | colQ |
double | preFac |
weak_ptr< ParticleDataEntry > | particlePtr |
Pointer to properties of the particle species. | |
Info * | infoPtr |
Pointer to various information on the generation. | |
Settings * | settingsPtr |
Pointer to the settings database. | |
ParticleData * | particleDataPtr |
Pointer to the particle data table. | |
Logger * | loggerPtr |
Pointer to the logger. | |
CoupSM * | coupSMPtr |
Pointers to Standard Model and SUSY couplings. | |
CoupSUSY * | coupSUSYPtr |
Static Protected Attributes | |
static const int | NPOINT = 100 |
Constants: could only be changed in the code itself. More... | |
static const double | MASSMIN = 0.1 |
The mass of a resonance must not be too small. | |
static const double | MASSMARGIN = 0.1 |
The sum of product masses must not be too close to the resonance mass. | |
The ResonanceWidths is the base class. Also used for generic resonaces.
|
inlineprotectedvirtual |
Calculate various common prefactors for the current mass. Optional argument calledFromInit only used for Z0.
|
inlineprotectedvirtual |
Calculate width for currently considered channel. Optional argument calledFromInit only used for Z0.
|
virtual |
Calculate and store partial and total widths at the nominal mass.
Initialize data members. Calculate and store partial and total widths at the nominal mass.
Save pointers.
Perform any model dependent initialisations (pure dummy in base class).
Minimal decaying-resonance width. Minimal phase space for meMode = 103.
Pointer to particle species.
Generic particles should not have meMode < 100, but allow some exceptions: not used Higgses and not used Technicolor.
Resonance properties: antiparticle, mass, width
A resonance cannot be too light, in particular not = 0.
For very narrow resonances assign fictitious small width.
Secondary decay chains by default all on.
Allow option where on-shell width is forced to current value. Disable for mixes gamma
Check if we are supposed to do the width calculation (can be false e.g. if SLHA decay table should take precedence instead).
Initialize constants used for a resonance.
Calculate various common prefactors for the current mass.
Reset quantities to sum. Declare variables inside loop.
Loop over all decay channels. Basic properties of channel.
Warn if not relevant meMode.
Channels with meMode < 100 must be implemented in derived classes.
Read out information on channel: primarily use first two.
Order first two in descending order of absolute values.
Allow for third product to be treated in derived classes.
Also order third into descending order of absolute values.
Read out masses. Calculate two-body phase space.
Let derived class calculate width for channel provided.
Channels with meMode >= 100 are calculated based on stored values.
Find secondary open fractions of partial width.
Secondary widths not yet initialized for heavier states, so have to assume unit open fraction there.
Store partial widths and secondary open fractions.
Update sum over all channnels and over open channels only.
If no decay channels are open then set particle stable and done.
Set lifetime for displaced vertex calculations (convert GeV^-1 to mm). SLHA decay table should take precedence; decay length already set and potentially over-written as per users request.
Normalize branching ratios to unity.
Optionally force total width by rescaling of all partial ones.
Else update newly calculated partial width.
Updated width-to-mass ratio. Secondary widths for open.
Clip wings of Higgses.
Done.
|
inlineprotectedvirtual |
Virtual methods to handle model-specific (non-SM) part of initialization for use by derived classes that implement additional models (eg SUSY).
Reimplemented in SUSYResonanceWidths.
|
protected |
Simple routines for matrix-element integration over Breit-Wigners.
Numerical integration of matrix-element in two-body decay, where one particle is described by a Breit-Wigner mass distribution. Normalization to unit integral if matrix element is unity and there are no phase-space restrictions.
Check that phase space is open for integration.
Precalculate coefficients for Breit-Wigner selection.
Step size in atan-mapped variable.
Variables used in loop over integration points.
Loop with first-particle mass selection.
Evaluate value and add to sum. Different matrix elements.
End of loop over integration points. Overall normalization.
Done.
|
protected |
Numerical integration of matrix-element in two-body decay, where both particles are described by Breit-Wigner mass distributions. Normalization to unit integral if matrix element is unity and there are no phase-space restrictions.
Check that phase space is open for integration.
Precalculate coefficients for Breit-Wigner selection.
If on-shell decay forbidden then split integration range to ensure that low-mass region is not forgotten.
Step size in atan-mapped variable.
Variables used in loop over integration points.
Outer loop with first-particle mass selection.
Inner loop with second-particle mass selection.
Check that point is inside phase space.
Evaluate value and add to sum. Different matrix elements.
End of second and first loop over integration points.
Done.
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.
Calculate the total width and store phase-space-weighted coupling sums.
Calculate various prefactors for the current mass.
Reset quantities to sum. Declare variables inside loop.
Loop over all decay channels. Basic properties of channel.
Initially assume vanishing branching ratio.
Optionally only consider specific (two-body) decay channel. Currently only used for Higgs -> q qbar, g g or gamma gamma.
Optionally only consider open channels.
Channels with meMode < 100 must be implemented in derived classes.
Read out information on channel: primarily use first two.
Order first two in descending order of absolute values.
Allow for third product to be treated in derived classes.
Also order third into descending order of absolute values.
Read out masses. Calculate two-body phase space.
Let derived class calculate width for channel provided.
Now on to meMode >= 100. First case: no correction at all.
Correction by step at threshold.
Correction by a phase space factor for two-body decays.
Correction by simple threshold factor for multibody decay.
Optionally multiply by secondary widths.
Optionally include factor to force to fixed width.
Optionally multiply by current/nominal resonance mass??
Sum back up.
Optionally store partial widths for later decay channel choice.
Done.
|
inline |
Special case to calculate one final-state width. Currently only used for Higgs -> qqbar, g g or gamma gamma.
|
staticprotected |
Constants: could only be changed in the code itself.
Number of points in integration direction for numInt routines.
The ResonanceWidths class. Base class for the various resonances. Constants: could be changed here if desired, but normally should not. These are of technical nature, as described for each.