PYTHIA  8.303
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ResonanceWidths Class Reference

The ResonanceWidths is the base class. Also used for generic resonaces. More...

#include <ResonanceWidths.h>

Inheritance diagram for ResonanceWidths:
ResonanceCha ResonanceExcited ResonanceFour ResonanceGeneric ResonanceGmZ ResonanceGraviton ResonanceH ResonanceHchg ResonanceHchgchgLeft ResonanceHchgchgRight ResonanceKKgluon ResonanceLeptoquark ResonanceNuRight ResonanceRhorizontal ResonanceS ResonanceSl ResonanceTop ResonanceW ResonanceWprime ResonanceWRight ResonanceZp ResonanceZprime ResonanceZRight SUSYResonanceWidths

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
 
ParticleDataEntryparticlePtr
 Pointer to properties of the particle species.
 
InfoinfoPtr
 Pointer to various information on the generation.
 
SettingssettingsPtr
 Pointer to the settings database.
 
ParticleDataparticleDataPtr
 Pointer to the particle data table.
 
CoupSMcoupSMPtr
 Pointers to Standard Model and SUSY couplings.
 
CoupSUSYcoupSUSYPtr
 

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.
 

Detailed Description

The ResonanceWidths is the base class. Also used for generic resonaces.

Member Function Documentation

virtual void calcPreFac ( bool  = false)
inlineprotectedvirtual

Calculate various common prefactors for the current mass. Optional argument calledFromInit only used for Z0.

virtual void calcWidth ( bool  = false)
inlineprotectedvirtual

Calculate width for currently considered channel. Optional argument calledFromInit only used for Z0.

bool init ( Info infoPtrIn)
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.

virtual bool initBSM ( )
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.

double numInt1BW ( double  mHatIn,
double  m1,
double  Gamma1,
double  mMin1,
double  m2,
int  psMode = 1 
)
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.

double numInt2BW ( double  mHatIn,
double  m1,
double  Gamma1,
double  mMin1,
double  m2,
double  Gamma2,
double  mMin2,
int  psMode = 1 
)
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.

double widthChan ( double  mHatIn,
int  idOutFlav1,
int  idOutFlav2 
)
inline

Special case to calculate one final-state width. Currently only used for Higgs -> qqbar, g g or gamma gamma.

Member Data Documentation

const int NPOINT = 100
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.


The documentation for this class was generated from the following files: