PYTHIA  8.303
Classes | Public Member Functions | List of all members
HadronWidths Class Reference

#include <HadronWidths.h>

Inheritance diagram for HadronWidths:
PhysicsBase

Public Member Functions

 HadronWidths (const HadronWidths &)=delete
 
 HadronWidths (HadronWidths &&)=delete
 
bool init (string path)
 Load hadron widths data from an xml file. More...
 
bool init (istream &stream)
 Initialize. More...
 
bool check ()
 Check whether input data is valid and matches particle data. More...
 
vector< int > getResonances () const
 Get a list of all implemented resonances.
 
bool hasResonances (int idA, int idB) const
 Get whether the specified incoming particles can form a resonance. More...
 
vector< int > possibleResonances (int idA, int idB) const
 Get resonances that can be formed by the specified incoming particles. More...
 
bool hasData (int id) const
 Returns whether the specified particle is handled by HadronWidths.
 
bool canDecay (int id, int prodA, int prodB) const
 Get whether the resonance can decay into the specified products.
 
double width (int id, double m) const
 Get the total width of the specified particle at the specified mass.
 
double partialWidth (int idR, int prodA, int prodB, double m) const
 Get the partial width for the specified decay channel of the particle.
 
double br (int idR, int prodA, int prodB, double m) const
 Get the branching ratio for the specified decay channel of the particle.
 
double mDistr (int id, double m) const
 Get the mass distribution density for the particle at the specified mass.
 
bool pickMasses (int idA, int idB, double eCM, double &mAOut, double &mBOut, int lType=1)
 Sample masses for the outgoing system with a given eCM. More...
 
bool pickDecay (int idDec, double m, int &idAOut, int &idBOut, double &mAOut, double &mBOut)
 
double widthCalc (int id, double m) const
 Calculate the total width of the particle without using interpolation. More...
 
double widthCalc (int id, int prodA, int prodB, double m) const
 Calculate partial width of the particle without using interpolation. More...
 
bool parameterize (int id, int precision)
 Regenerate parameterization for the specified particle. More...
 
void parameterizeAll (int precision)
 Regenerate parameterization for all particles. More...
 
bool save (ostream &stream) const
 Write all width data to an xml file. More...
 
bool save (string file="HadronWidths.dat") const
 
- Public Member Functions inherited from PhysicsBase
void initInfoPtr (Info &infoPtrIn)
 This function is called from above for physics objects used in a run. More...
 
virtual ~PhysicsBase ()
 Empty virtual destructor.
 
bool flag (string key) const
 Shorthand to read settings values.
 
int mode (string key) const
 
double parm (string key) const
 
string word (string key) const
 

Additional Inherited Members

- Public Types inherited from PhysicsBase
enum  Status {
  INCOMPLETE = -1, COMPLETE = 0, CONSTRUCTOR_FAILED, INIT_FAILED,
  LHEF_END, LOWENERGY_FAILED, PROCESSLEVEL_FAILED, PROCESSLEVEL_USERVETO,
  MERGING_FAILED, PARTONLEVEL_FAILED, PARTONLEVEL_USERVETO, HADRONLEVEL_FAILED,
  CHECK_FAILED, OTHER_UNPHYSICAL, HEAVYION_FAILED
}
 Enumerate the different status codes the event generation can have.
 
- Protected Member Functions inherited from PhysicsBase
 PhysicsBase ()
 Default constructor.
 
virtual void onInitInfoPtr ()
 
virtual void onBeginEvent ()
 This function is called in the very beginning of each Pythia::next call.
 
virtual void onEndEvent (Status)
 
virtual void onStat ()
 This function is called from the Pythia::stat() call.
 
void registerSubObject (PhysicsBase &pb)
 Register a sub object that should have its information in sync with this.
 
- Protected Attributes inherited from PhysicsBase
InfoinfoPtr = {}
 
SettingssettingsPtr = {}
 Pointer to the settings database.
 
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
 
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
 
RndmrndmPtr = {}
 Pointer to the random number generator.
 
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
 
CoupSUSYcoupSUSYPtr = {}
 
BeamParticlebeamAPtr = {}
 
BeamParticlebeamBPtr = {}
 
BeamParticlebeamPomAPtr = {}
 
BeamParticlebeamPomBPtr = {}
 
BeamParticlebeamGamAPtr = {}
 
BeamParticlebeamGamBPtr = {}
 
BeamParticlebeamVMDAPtr = {}
 
BeamParticlebeamVMDBPtr = {}
 
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
 
SigmaTotalsigmaTotPtr = {}
 Pointer to the total/elastic/diffractive cross sections.
 
set< PhysicsBase * > subObjects
 
UserHooksPtr userHooksPtr
 

Detailed Description

The HadronWidths class is used to compute mass-dependent widths and branching ratios of hadrons.

Member Function Documentation

bool check ( )

Check whether input data is valid and matches particle data.

Check that all resonance entries make sense.

Check that entry id actually corresponds to a particle.

Check that entry id is positive (antiparticles are handled by symmetry).

Check that entry id is hadron.

Check that mass boundaries are same in particle entry and widths entry.

Check that all decay channels make sense.

Check that decay product ids actually correspond to particles.

Check that lType makes sense.

Check that decay conserves charge.

bool hasResonances ( int  idA,
int  idB 
) const

Get whether the specified incoming particles can form a resonance.

Get signature for system and look only for resonances that matches it.

For resonances that matches signature, check that decay channel exists.

No resonances found.

bool init ( string  path)

Load hadron widths data from an xml file.

The HadronWidths class.

Initialize.

bool init ( istream &  stream)

Initialize.

Insert resonance in entries

Insert resonance in signature map

If signature has not been used yet, insert a new vector into the map

If signature has been used already, add id to the existing vector

Generate key to ensure canonical ordering of decay products.

Insert new decay channel.

Done.

bool parameterize ( int  id,
int  precision 
)

Regenerate parameterization for the specified particle.

Get particle entry and validate input.

Parameterize all channels.

Mass-dependent width is not defined for multibody channels.

Create key to put decay products in canonical order.

Calculate widths at regular mass intervals.

Get two-body angular momentum.

Add new ResonanceDecayChannel to map.

Create new or update existing HadronWidthEntry.

Done.

void parameterizeAll ( int  precision)

Regenerate parameterization for all particles.

Get all particles with varWidth from particle database.

Clear existing data and parameterize new data.

bool pickDecay ( int  idDec,
double  m,
int &  idAOut,
int &  idBOut,
double &  mAOut,
double &  mBOut 
)

Pick a decay channel for the specified particle, together with phase space configuration. Returns whether successful.

Find table entry for decaying particle.

Pick decay channel.

Select decay products. Check spin type of decay.

Select masses of decay products.

Done.

bool pickMasses ( int  idA,
int  idB,
double  eCM,
double &  mAOut,
double &  mBOut,
int  lType = 1 
)

Sample masses for the outgoing system with a given eCM.

Pick a pair of masses given pair invariant mass and angular momentum.

Minimal masses must be a possible choice.

Done if none of the daughters have a width.

Get width entries for particles with mass-depedent widths.

Parameters for mass selection.

Loop over attempts to pick the two masses simultaneously.

Simplify handling if full procedure does not seem to work.

Initially pick according to simple Breit-Wigner.

Correction given by BW(Gamma_now)/BW(Gamma_fix) for variable width. Note: width not allowed to explode at large masses.

Weight by (p/p_max)^lType.

Give warning message only for more severe cases

Last resort: pick masses within limits known to work, without weight.

Done.

vector< int > possibleResonances ( int  idA,
int  idB 
) const

Get resonances that can be formed by the specified incoming particles.

Get signature for system and look only for resonances that matches it.

For resonances that matches signature, check that decay channel exists.

For pi0pi0 and pi+pi-, add f0(500) explicitly.

Done.

bool save ( ostream &  stream) const

Write all width data to an xml file.

Write all widths data to an xml file.

Counter for number of entries on current line, maximum 8 per line.

Write total width.

Write partial widths.

Done.

double widthCalc ( int  id,
double  m 
) const

Calculate the total width of the particle without using interpolation.

Get particle entry.

Sum contributions from all channels.

double widthCalc ( int  id,
int  prodA,
int  prodB,
double  m 
) const

Calculate partial width of the particle without using interpolation.

Find particle entry.

Search for the matching decay channel.

Decay channel not found.


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