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

#include <NucleonExcitations.h>

Inheritance diagram for NucleonExcitations:
PhysicsBase

Public Member Functions

 NucleonExcitations ()=default
 Constructor.
 
 NucleonExcitations (const NucleonExcitations &)=delete
 Objects of this class should only be passed as references.
 
 NucleonExcitations (NucleonExcitations &&)=delete
 
NucleonExcitationsoperator= (const NucleonExcitations &)=delete
 
NucleonExcitationsoperator= (NucleonExcitations &&)=delete
 
bool init (string path)
 Read in excitation data from the specified file.
 
bool init (istream &stream)
 Read in excitation data from the specified stream. More...
 
bool check ()
 Validate that the loaded data makes sense. More...
 
vector< int > getExcitationMasks () const
 Get all nucleon excitations from particle data. More...
 
vector< pair< int, int > > getChannels () const
 Get masks (ids without quark content) for all implemented cross sections.
 
double sigmaExTotal (double eCM) const
 Get total excitation cross sections for NN at the specified energy. More...
 
double sigmaExPartial (double eCM, int maskC, int maskD) const
 Get cross section for NN -> CD. Quark content in masks is ignored. More...
 
bool pickExcitation (int idA, int idB, double eCM, int &idCOut, double &mCOut, int &idDOut, double &mDOut)
 Pick excited particles and their masses. More...
 
double sigmaCalc (double eCM) const
 Calculate the total excitation cross section without using interpolation.
 
double sigmaCalc (double eCM, int maskC, int maskD) const
 Calculate partial excitation cross section without using interpolation. More...
 
bool parameterizeAll (int precision, double threshold=8.)
 Regenerate parameterization for all cross sections. More...
 
bool save (ostream &stream) const
 Write all cross section data to an xml file. More...
 
bool save (string file="NucleonExcitations.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 NucleonExcitations class is used to calculate cross sections for explicit nucleon excitation channels, e.g. p p -> p p(1520).

Member Function Documentation

bool check ( )

Validate that the loaded data makes sense.

Check that all excitations make sense.

Check that ids actually correspond to particles.

vector< int > getExcitationMasks ( ) const

Get all nucleon excitations from particle data.

Check quark content to make sure each mask is included only once.

bool init ( istream &  stream)

Read in excitation data from the specified stream.

Lower bound, needed for total cross section parameterization.

Read header info.

Configuration to use when parameterizing total cross section.

Process each line sequentially.

Read channel data.

Update eMin if needed.

Add channel to the list.

Pre-sum sigmas to create one parameterization for the total sigma.

Done.

bool parameterizeAll ( int  precision,
double  threshold = 8. 
)

Regenerate parameterization for all cross sections.

Calculate high energy scale factor for nucleons and Delta(1232).

Create new excitation channels.

Define helpful variables for the current excitation.

Calculate high energy scale factor.

Generate N + X cross sections.

Generate Delta(1232) + X cross sections.

Reparameterize total cross section.

Done.

bool pickExcitation ( int  idA,
int  idB,
double  eCM,
int &  idCOut,
double &  mCOut,
int &  idDOut,
double &  mDOut 
)

Pick excited particles and their masses.

Pick an excitation and mass distribution for the specified particles.

Excitations are available only for nucleons.

If antiparticles, flip signs and flip back at the end.

Pick an excitation channel.

Below threshold, use parameterization.

Above threshold, use approximation (ignoring incoming phase space).

The two nucleons have equal chance of becoming excited.

Construct ids of resonances from masks plus incoming quark content.

Pick masses.

Set output values and return.

bool save ( ostream &  stream) const

Write all cross section data to an xml file.

Write header

Write channels.

Done.

double sigmaCalc ( double  eCM,
int  maskC,
int  maskD 
) const

Calculate partial excitation cross section without using interpolation.

Convert masks to particle ids.

No cross section below threshold.

Calculate matrix element, based on method by UrQMD.

Return cross section.

double sigmaExPartial ( double  eCM,
int  maskC,
int  maskD 
) const

Get cross section for NN -> CD. Quark content in masks is ignored.

Remove quark content from masks.

Ensure ordering is ND, NX* or DX*.

Find the corresponding channel.

At low energy, use interpolation.

At high energy, use parameterization.

Cross section is zero if channel does not exist.

double sigmaExTotal ( double  eCM) const

Get total excitation cross sections for NN at the specified energy.

Below threshold, use parameterization.

Above threshold, sum approximated integrals.

Average over incoming phase space.


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