PYTHIA
8.312
|
This class holds a map of all ParticleDataEntries. More...
#include <ParticleData.h>
Public Member Functions | |
ParticleData () | |
Constructor. | |
ParticleData (const ParticleData &oldPD) | |
Copy constructor. | |
ParticleData & | operator= (const ParticleData &oldPD) |
Assignment operator. | |
void | initPtrs (Info *infoPtrIn) |
Initialize pointers. | |
bool | init (string startFile="../share/Pythia8/xmldoc/ParticleData.xml") |
Read in database from specific file. | |
bool | init (const ParticleData &particleDataIn) |
Read in database from saved file stored in memory. | |
bool | init (istream &is) |
Read in database from an istream. | |
bool | reInit (string startFile, bool xmlFormat=true) |
Overwrite existing database by reading from specific file. | |
void | initWidths (vector< ResonanceWidthsPtr > resonancePtrs) |
Initialize pointers, normal Breit-Wigners and special resonances. More... | |
bool | readXML (string inFile, bool reset=true) |
Read and process or list whole (or part of) database from/to an XML file. More... | |
void | listXML (string outFile) |
Print out complete database in numerical order as an XML file. More... | |
bool | readXML (istream &is, bool reset=true) |
Read in database from specific XML stream (which may refer to others). More... | |
bool | copyXML (const ParticleData &particleDataIn) |
Copy and process XML information from another particleData object. More... | |
bool | loadXML (string inFile, bool reset=true) |
Auxiliary functions to readXML() and copyXML(). More... | |
bool | loadXML (istream &is, bool reset=true) |
Load a specific XML file into memory (which may refer to others). More... | |
bool | processXML (bool reset=true) |
Process XML contents stored in memory. More... | |
bool | readFF (string inFile, bool reset=true) |
Read or list whole (or part of) database from/to a free format file. More... | |
bool | readFF (istream &is, bool reset=true) |
Read in database from specific free format file. More... | |
void | listFF (string outFile) |
Print out complete database in numerical order as a free format file. More... | |
bool | readString (string lineIn, bool warn=true) |
Read in one update from a single line. More... | |
bool | readingFailed () |
Keep track whether any readings have failed, invalidating run setup. | |
void | listAll (ostream &stream) |
Print out table of whole database, or of only part of it. | |
void | listAll () |
void | listChanged (bool changedRes=false) |
void | list (ostream &stream, bool chargedOnly=false, bool changedRes=true) |
Print out complete or changed table of database in numerical order. More... | |
void | list (bool changedOnly=false, bool changedRes=true) |
void | list (int idList) |
Print out specified particles. | |
void | list (vector< int > idList) |
Print out partial table of database in input order. More... | |
vector< string > | getReadHistory (int subrun=-999) |
void | checkTable (int verbosity=1) |
Check that table makes sense, especially for decays. More... | |
void | addParticle (int idIn, string nameIn=" ", int spinTypeIn=0, int chargeTypeIn=0, int colTypeIn=0, double m0In=0., double mWidthIn=0., double mMinIn=0., double mMaxIn=0., double tau0In=0., bool varWidthIn=false) |
Add new entry. | |
void | addParticle (int idIn, string nameIn, string antiNameIn, int spinTypeIn=0, int chargeTypeIn=0, int colTypeIn=0, double m0In=0., double mWidthIn=0., double mMinIn=0., double mMaxIn=0., double tau0In=0., bool varWidthIn=false) |
void | setAll (int idIn, string nameIn, string antiNameIn, int spinTypeIn=0, int chargeTypeIn=0, int colTypeIn=0, double m0In=0., double mWidthIn=0., double mMinIn=0., double mMaxIn=0., double tau0In=0., bool varWidthIn=false) |
Reset all the properties of an entry in one go. | |
bool | isParticle (int idIn) const |
Query existence of an entry. | |
ParticleDataEntryPtr | findParticle (int idIn) |
Query existence of an entry and return an iterator. | |
const ParticleDataEntryPtr | findParticle (int idIn) const |
Query existence of an entry and return a const iterator. | |
int | nextId (int idIn) const |
Return the id of the sequentially next particle stored in table. More... | |
map< int, ParticleDataEntryPtr >::iterator | begin () |
Define iterators over entries. | |
map< int, ParticleDataEntryPtr >::iterator | end () |
void | name (int idIn, string nameIn) |
Change current values one at a time (or set if not set before). | |
void | antiName (int idIn, string antiNameIn) |
void | names (int idIn, string nameIn, string antiNameIn) |
void | spinType (int idIn, int spinTypeIn) |
void | chargeType (int idIn, int chargeTypeIn) |
void | colType (int idIn, int colTypeIn) |
void | m0 (int idIn, double m0In) |
void | mWidth (int idIn, double mWidthIn) |
void | mMin (int idIn, double mMinIn) |
void | mMax (int idIn, double mMaxIn) |
void | tau0 (int idIn, double tau0In) |
void | isResonance (int idIn, bool isResonanceIn) |
void | mayDecay (int idIn, bool mayDecayIn) |
void | tauCalc (int idIn, bool tauCalcIn) |
void | doExternalDecay (int idIn, bool doExternalDecayIn) |
void | varWidth (int idIn, bool varWidthIn) |
void | isVisible (int idIn, bool isVisibleIn) |
void | doForceWidth (int idIn, bool doForceWidthIn) |
void | hasChanged (int idIn, bool hasChangedIn) |
bool | hasAnti (int idIn) const |
Give back current values. | |
int | antiId (int idIn) const |
string | name (int idIn) const |
int | spinType (int idIn) const |
int | chargeType (int idIn) const |
double | charge (int idIn) const |
int | colType (int idIn) const |
double | m0 (int idIn) const |
double | mWidth (int idIn) const |
double | mMin (int idIn) const |
double | m0Min (int idIn) const |
double | mMax (int idIn) const |
double | m0Max (int idIn) const |
double | tau0 (int idIn) const |
bool | isResonance (int idIn) const |
bool | mayDecay (int idIn) const |
bool | tauCalc (int idIn) const |
bool | doExternalDecay (int idIn) const |
bool | isVisible (int idIn) const |
bool | doForceWidth (int idIn) const |
bool | hasChanged (int idIn) const |
bool | hasChangedMMin (int idIn) const |
bool | hasChangedMMax (int idIn) const |
bool | useBreitWigner (int idIn) const |
Give back special mass-related quantities. | |
bool | varWidth (int idIn) const |
double | constituentMass (int idIn) const |
double | mSel (int idIn) const |
double | mRun (int idIn, double mH) const |
bool | canDecay (int idIn) const |
Give back other quantities. | |
bool | isLepton (int idIn) const |
bool | isQuark (int idIn) const |
bool | isGluon (int idIn) const |
bool | isDiquark (int idIn) const |
bool | isParton (int idIn) const |
bool | isHadron (int idIn) const |
bool | isMeson (int idIn) const |
bool | isBaryon (int idIn) const |
bool | isOnium (int idIn) const |
bool | isExotic (int idIn) const |
bool | isOctetHadron (int idIn) const |
int | heaviestQuark (int idIn) const |
int | baryonNumberType (int idIn) const |
int | nQuarksInCode (int idIn, int idQIn) const |
void | rescaleBR (int idIn, double newSumBR=1.) |
Change branching ratios. | |
void | setResonancePtr (int idIn, ResonanceWidthsPtr resonancePtrIn) |
Access methods stored in ResonanceWidths. | |
void | resInit (int idIn) |
double | resWidth (int idIn, double mHat, int idInFlav=0, bool openOnly=false, bool setBR=false) |
double | resWidthOpen (int idIn, double mHat, int idInFlav=0) |
double | resWidthStore (int idIn, double mHat, int idInFlav=0) |
double | resOpenFrac (int id1In, int id2In=0, int id3In=0) |
Fractional width associated with open channels of one or two resonances. More... | |
double | resWidthRescaleFactor (int idIn) |
double | resWidthChan (int idIn, double mHat, int idAbs1=0, int idAbs2=0) |
ParticleDataEntryPtr | particleDataEntryPtr (int idIn) |
Return pointer to entry. | |
bool | getIsInit () |
Check initialisation status. | |
Friends | |
class | ParticleDataEntry |
The individual particle need access to the full database. | |
This class holds a map of all ParticleDataEntries.
void checkTable | ( | int | verbosity = 1 | ) |
Check that table makes sense, especially for decays.
Check that table makes sense: e.g. consistent names and mass ranges, that branching ratios sum to unity, that charge is conserved and that phase space is open in each channel. verbosity = 0: mimimal amount of checks, e.g. that no channels open. = 1: further warning if individual channels closed (except for resonances). = 2: also print branching-ratio-averaged threshold mass. = 11, 12: as 1, 2, but include resonances in detailed checks.
Header.
Loop through all particles.
Extract some particle properties. Set some flags.
Check that particle name consistent with charge information.
Check that antiparticle name consistent with charge information.
Check that mass, mass range and width are consistent.
Check that particle does not both have width and lifetime.
Begin study decay channels.
Loop through all decay channels.
Extract channel properties.
Sum branching ratios. Include off-channels.
Error printout when unknown decay product code.
Error printout when no decay products or 0 interspersed.
Check charge conservation and open phase space in decay channel.
Error printout when charge or baryon number not conserved.
Begin check that some matrix elements are used correctly.
Check matrix element mode 0: recommended not into partons.
Check matrix element mode 1: rho/omega -> pi+ pi- pi0.
Check matrix element mode 2: polarization in V -> PS + PS.
Check matrix element mode 11, 12 and 13: Dalitz decay with one or more particles in addition to the lepton pair, or double Dalitz decay.
Check matrix element mode 21: tau -> nu_tau hadrons.
Check matrix element mode 22, but only for semileptonic decay. For a -> b c d require types u = 2, ubar = -2, d = 1, dbar = -1.
Special case: for B_c either bbar or c decays.
Special cases.
Check for matrix element mode 31.
Check for unknown mode, or resonance-only mode.
Print if incorrect matrix element mode.
Warning printout when no phase space for decay.
End loop over decay channels.
Optional printout of threshold.
Error printout when no acceptable decay channels found.
Warning printout when branching ratios do not sum to unity.
End study of decay channels and loop over particles.
Final output. Done.
bool copyXML | ( | const ParticleData & | particleDataIn | ) |
Copy and process XML information from another particleData object.
Read in database from pre-initialised particleData object.
First Reset everything.
Process XML file (now stored in memory)
Done.
|
inline |
Retrieve readString history (e.g., for inspection). Everything (subrun=-999), up to first subrun (=-1), or subrun-specific (>=0).
void initWidths | ( | vector< ResonanceWidthsPtr > | resonancePtrs | ) |
Initialize pointers, normal Breit-Wigners and special resonances.
Initialize pointer for particles to the full database, the Breit-Wigners of normal hadrons and the ResonanceWidths of resonances. For the latter the order of initialization is essential to get secondary widths right.
Initialize some common data (but preserve history of read statements).
Pointer to database and Breit-Wigner mass initialization for each particle.
Remove any existing resonances.
Begin set up new resonance objects. Z0, W+- and top are almost always needed.
Higgs in SM.
Higgses in BSM.
A fourth generation: b', t', tau', nu'_tau.
New gauge bosons: Z', W', R.
A leptoquark.
Mediators for Dark Matter.
93 = Z0copy and 94 = W+-copy used to pick decay channels for W/Z production in parton showers.
Supersymmetry:
Sleptons and sneutrinos;
Excited quarks and leptons.
An excited graviton/gluon in extra-dimensional scenarios.
A left-right-symmetric scenario with new righthanded neutrinos, righthanded gauge bosons and doubly charged Higgses.
Attach user-defined external resonances and do basic initialization.
Set up lists to order resonances in ascending mass.
Put Z0 and W+- first, since known to be SM and often off-shell.
Loop through particle table to find resonances.
Set up a simple default object for uninitialized resonances.
Insert resonances in ascending mass, to respect decay hierarchies.
Initialize the resonances in ascending mass order. Reset mass generation.
void list | ( | ostream & | stream, |
bool | chargedOnly = false , |
||
bool | changedRes = true |
||
) |
Print out complete or changed table of database in numerical order.
Table header; output for bool as off/on.
Iterate through the particle data table. Option to skip unchanged.
Pick format for mass and width based on mass value.
Print particle properties.
Loop through the decay channel table for each particle.
End of loop over database contents.
void list | ( | vector< int > | idList | ) |
Print out partial table of database in input order.
Table header; output for bool as off/on.
Iterate through the given list of input particles.
Pick format for mass and width based on mass value.
Print particle properties.
Loop through the decay channel table for each particle.
End of loop over database contents.
void listFF | ( | string | outFile | ) |
Print out complete database in numerical order as a free format file.
Convert file name to ofstream.
Iterate through the particle data table.
Pick format for mass and width based on mass value.
Print particle properties.
Loop through the decay channel table for each particle.
void listXML | ( | string | outFile | ) |
Print out complete database in numerical order as an XML file.
Convert file name to ofstream.
Iterate through the particle data table.
Print particle properties.
Pick format for mass and width based on mass value.
Loop through the decay channel table for each particle.
Print decay channel properties.
Finish off line and loop over allowed decay channels.
Finish off existing particle.
bool loadXML | ( | string | inFile, |
bool | reset = true |
||
) |
bool loadXML | ( | istream & | is, |
bool | reset = true |
||
) |
Load a specific XML file into memory (which may refer to others).
Normally reset whole database before beginning.
Check that instream is OK.
Read in one line at a time.
Get first word of a line.
Check for occurence of a file also to be read.
Else save line to memory.
Done.
int nextId | ( | int | idIn | ) | const |
Return the id of the sequentially next particle stored in table.
Return 0 for negative or unknown codes. Return first for 0.
Find pointer to current particle and step up. Return 0 if impossible.
bool processXML | ( | bool | reset = true | ) |
Process XML contents stored in memory.
Number of lines saved.
Process each line sequentially.
Retrieve line.
Get first word of a line.
Check for occurence of a particle. Add any continuation lines.
Read in particle properties.
Erase if particle already exists.
Store new particle. Save pointer, to be used for decay channels.
Check for occurence of a decay channel. Add any continuation lines.
Read in channel properties - products so far only as a string.
Read in decay products from stream. Must have at least one.
Store new channel (if particle already known).
End of loop over lines in input file and loop over files.
All particle data at this stage defines baseline original.
Done.
bool readFF | ( | string | inFile, |
bool | reset = true |
||
) |
Read or list whole (or part of) database from/to a free format file.
Read in database from specific free format file.
bool readFF | ( | istream & | is, |
bool | reset = true |
||
) |
Read in database from specific free format file.
Normally reset whole database before beginning.
Read in one line at a time.
Empty lines begins new particle.
Prepare to use standard read from line.
Read in a line with particle information.
Properties to be read.
Do the reading.
Error printout if something went wrong.
Erase if particle already exists.
Store new particle. Save pointer, to be used for decay channels.
Read in a line with decay channel information.
Properties to be read.
Read in data from stream. Need at least one decay product.
Store new channel.
End of while loop over lines in the file.
Done.
bool readString | ( | string | lineIn, |
bool | warn = true |
||
) |
Read in one update from a single line.
Read in updates from a character string, like a line of a file. Is used by readString (and readFile) in Pythia.
If empty line then done.
Take copy that will be modified.
If first character is not a digit then taken to be a comment.
Replace colons and equal signs by blanks to make parsing simpler.
Get particle id and property name.
Check that valid particle.
Store history of readString statements.
Identify particle property and read + set its value, case by case.
Addition or complete replacement of a particle.
Default values for properties to be read.
Read in data from stream.
To keep existing decay channels, only overwrite particle data.
Else start over completely from scratch.
Set onMode of all decay channels in one go.
For onMode allow the optional possibility of Bool input.
Selective search for matching decay channels.
Read in particles to match.
Loop over all decay channels.
Look for any match at all.
Look for match of all products provided.
Rescale all branching ratios by common factor.
Reset decay table in preparation for new input.
Add or change a decay channel: get channel number and new property.
Check that channel exists.
Find decay channel property and value, case by case. At same time also do case where all should be replaced.
For onMode allow the optional possibility of Bool input.
Scan for products until end of line.
Rescale an existing branching ratio.
Return false if failed to recognize property.
bool readXML | ( | string | inFile, |
bool | reset = true |
||
) |
Read and process or list whole (or part of) database from/to an XML file.
Read in database from specific XML file (which may refer to others).
Load XML file into memory
Process XML file (now stored in memory)
Done.
bool readXML | ( | istream & | is, |
bool | reset = true |
||
) |
Read in database from specific XML stream (which may refer to others).
Load XML file into memory
Process XML file (now stored in memory)
Done.
double resOpenFrac | ( | int | id1In, |
int | id2In = 0 , |
||
int | id3In = 0 |
||
) |
Fractional width associated with open channels of one or two resonances.
Default value.
First resonance.
Possibly second resonance.
Possibly third resonance.
Done.