PYTHIA  8.312
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

Classes

struct  InfoGrabber
 

Public Member Functions

 HeavyIons (Pythia &mainPythiaIn)
 
virtual ~HeavyIons ()
 Destructor.
 
virtual bool init ()=0
 
virtual bool next ()=0
 
bool setHIUserHooksPtr (HIUserHooksPtr userHooksPtrIn)
 Possibility to pass in pointer for special heavy ion user hooks.
 
virtual bool setKinematics (double)
 Set beam kinematics.
 
virtual bool setKinematics (double, double)
 
virtual bool setKinematics (double, double, double, double, double, double)
 
virtual bool setKinematics (Vec4, Vec4)
 
virtual bool setBeamIDs (int, int=0)
 Set beam particles.
 
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
 
vector< bool > fvec (string key) const
 
vector< int > mvec (string key) const
 
vector< double > pvec (string key) const
 
vector< string > wvec (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 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

int idProj
 Save current beam configuration.
 
int idTarg
 
PythiamainPythiaPtr
 
SigmaTotal sigTotNN
 
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.
 
LoggerloggerPtr = {}
 Pointer to logger.
 
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
 
RndmrndmPtr = {}
 Pointer to the random number generator.
 
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
 
CoupSUSYcoupSUSYPtr = {}
 
BeamSetupbeamSetupPtr = {}
 
BeamParticlebeamAPtr = {}
 
BeamParticlebeamBPtr = {}
 
BeamParticlebeamPomAPtr = {}
 
BeamParticlebeamPomBPtr = {}
 
BeamParticlebeamGamAPtr = {}
 
BeamParticlebeamGamBPtr = {}
 
BeamParticlebeamVMDAPtr = {}
 
BeamParticlebeamVMDBPtr = {}
 
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
 
SigmaTotalsigmaTotPtr = {}
 Pointers to the total/elastic/diffractive cross sections.
 
SigmaCombinedsigmaCmbPtr = {}
 
set< PhysicsBase * > subObjects
 
UserHooksPtr userHooksPtr
 

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, HADRONLEVEL_USERVETO
}
 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)
inline

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)
static

The abstract HeavyIons class.

Static function to allow 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)
protected

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)
static

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 
)
staticprotected

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

void stat ( )
virtual

Print out statistics.

Print out statistics from a HeavyIons run.

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

Header.

Listing finished.

void updateInfo ( )
protected

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
protected

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

HIInfo hiInfo

The HIInfo object contains information about the last generated heavy ion event as well as overall statistics of the generated events.

vector<Info*> info
protected

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

Pythia* mainPythiaPtr
protected

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

vector<Pythia *> pythia
protected

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

SigmaTotal sigTotNN
protected

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: