PYTHIA  8.303
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
HeavyIons Class Referenceabstract

#include <HeavyIons.h>

Inheritance diagram for HeavyIons:
PhysicsBase Angantyr


struct  InfoGrabber

Public Member Functions

 HeavyIons (Pythia &mainPythiaIn)
virtual ~HeavyIons ()
virtual bool init ()=0
virtual bool next ()=0
bool setHIUserHooksPtr (HIUserHooksPtr userHooksPtrIn)
 Possibility to pass in pointer for special heavy ion user hooks.
virtual void stat ()
 Print out statistics. More...
- 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

Static Public Member Functions

static void addSpecialSettings (Settings &settings)
 The abstract HeavyIons class. More...
static bool isHeavyIon (Settings &settings)
 Check the settings and return false of there are no heavy ion beams. More...

Public Attributes

HIInfo hiInfo

Protected Member Functions

void sumUpMessages (Info &in, string tag, const Info *other)
 Sum up info from all used Pythia objects. More...
void updateInfo ()
 Update the Info object in the main Pythia object. More...
void clearProcessLevel (Pythia &pyt)
- 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.

Static Protected Member Functions

static void setupSpecials (Settings &settings, string match)
 Duplicate setting on the form match: to settings on the form HImatch:
static void setupSpecials (Pythia &p, string match)

Protected Attributes

SigmaTotal sigtot
HIUserHooksPtr HIHooksPtr
vector< Pythia * > pythia
vector< string > pythiaNames
 The names associated with the secondary pythia objects.
vector< Info * > info
- 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

Additional Inherited Members

- Public Types inherited from PhysicsBase
enum  Status {
 Enumerate the different status codes the event generation can have.

Detailed Description

HeavyIons contains several standard Pythia objects to allow for the combination of different kinds of nucleon-nucleon events into a heavy ion collision event. The actual model for doing this must be implemented in a subclass overriding the the virtual'init()' and 'next()' functions.

Constructor & Destructor Documentation

HeavyIons ( Pythia mainPythiaIn)

The constructor needs a reference to the main Pythia object to which it will belong. A HeavyIons object cannot belong to more than one main Pythia object.

Member Function Documentation

void addSpecialSettings ( Settings settings)

The abstract HeavyIons class.

Static function to alow Pythia to duplicate some setting names to be used for secondary Pythia objects.

Before doing anything Pythia should add special heavy ion versions for some groups of settings.

void clearProcessLevel ( Pythia pyt)

If subclasses has additional Pythia objects for generating minimum bias nucleon collisions and the main Pythia object is set up to generated a hard signal process, this function can be used to clear all selected processes in a clone of the main Pythia object.

Reset all process level settings in the given Pythia object. NOTE must be expanded if new process groups are included in Pythia.

NOTE! if new processes are added in separate xml files these have to be added here.

virtual bool init ( )
pure virtual

Virtual function to be implemented in a subclass. This will be called in the beginning of the Pythia::init function if the mode HeavyIon:mode is set non zero. The return value should be true if this object is able to handle the requested collision type. If false Pythia::init will set HeavyIon:mode to zero but will try to cope anyway.

Implemented in Angantyr.

bool isHeavyIon ( Settings settings)

Check the settings and return false of there are no heavy ion beams.

Return true if the beams in the Primary Pythia object contains heavy ions.

virtual bool next ( )
pure virtual

Virtual function to be implemented in a subclass. This will be called in the beginning of the Pythia::next function if HeavyIon:mode is set non zero. After the call, Pythia::next will return immediately with the return value of this function.

Implemented in Angantyr.

void setupSpecials ( Pythia p,
string  match 

Copy settings on the form HImatch: to the corresponding match: in the given Pythia object.

void stat ( )

Print out statistics.

Print out statistics from a HeavyIons run.

bool showPaL = settings.flag("Stat:showPartonLevel");


Listing finished.

void sumUpMessages ( Info in,
string  tag,
const Info other 

Sum up info from all used Pythia objects.

Subclasses will probably use several Pythia object and this helper function will sum up all warnings and errors of these and add them to the main Pythia object, prefixing them with a tag.

void updateInfo ( )

Update the Info object in the main Pythia object.

Update the cross section in the main Pythia Info object using information in the hiInfo object.

Member Data Documentation

HIUserHooksPtr HIHooksPtr

Optional HIUserHooks object able to modify the behavior of the HeavyIon model.

HIInfo hiInfo

This is the HIInfo object containing information about the last generated heavy ion event and som statistics of all such events generated since the last call to init();

vector<Info*> info

The Info objects associated to the secondary the secondary pythia objects.

Pythia* mainPythiaPtr

This is the pointer to the main Pythia object to which this object is assigned.

vector<Pythia *> pythia

The internal Pythia objects. Index zero will always correspond to the mainPythiaPtr.

SigmaTotal sigtot

Object containing information on inclusive pp cross sections to be used in Glauber calculations in subclasses.

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