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

#include <HIUserHooks.h>

Inheritance diagram for SubCollisionModel:
BlackSubCollisionModel DoubleStrikman MultiRadial NaiveSubCollisionModel

Classes

struct  SigEst
 Internal class to report cross section estimates. More...
 

Public Member Functions

 SubCollisionModel ()
 The default constructor is empty.
 
virtual ~SubCollisionModel ()
 Virtual destructor,.
 
virtual bool init ()
 Virtual init method. More...
 
void initPtr (NucleusModel &projIn, NucleusModel &targIn, SigmaTotal &sigTotIn, Settings &settingsIn, Info &infoIn, Rndm &rndIn)
 
virtual multiset< SubCollisiongetCollisions (vector< Nucleon > &proj, vector< Nucleon > &targ, const Vec4 &bvec, double &T)=0
 
double sigTot () const
 The total cross section. More...
 
double sigEl () const
 The total cross section.
 
double sigCDE () const
 The central diffractive excitation cross section.
 
double sigSDE () const
 The single diffractive excitation cross section (both sides summed).
 
double sigSDEP () const
 The single diffractive excitation cross section (excited projectile).
 
double sigSDET () const
 The single diffractive excitation cross section (excited target).
 
double sigDDE () const
 The double diffractive excitation cross section.
 
double sigND () const
 The non-diffractive (absorptive) cross section.
 
double bSlope () const
 The elastic b-slope parameter.
 
virtual SigEst getSig () const
 Calculate the cross sections for the given set of parameters.
 
double avNDB () const
 Return the average non-diffractive impact parameter.
 
double Chi2 (const SigEst &sigs, int npar) const
 Calculate the Chi2 for the given cross section estimates. More...
 
virtual bool evolve ()
 Use a simlified genetic algorithm to fit the parameters. More...
 
virtual void setParm (const vector< double > &)
 Set the parameters of this model.
 
virtual vector< double > getParm () const
 
virtual vector< double > minParm () const
 
virtual vector< double > maxParm () const
 

Protected Attributes

int NInt
 
int NGen
 
int NPop
 
double sigFuzz
 
bool fitPrint
 
double avNDb
 
NucleusModelprojPtr
 Info from the controlling HeavyIons object.
 
NucleusModeltargPtr
 
SigmaTotalsigTotPtr
 
SettingssettingsPtr
 
InfoinfoPtr
 
RndmrndPtr
 

Detailed Description

The SubCollisionModel is is able to model the collision between two nucleons to tell which type of collision has occurred. The model may manipulate the corresponing state of the nucleons.

Member Function Documentation

double Chi2 ( const SigEst se,
int  npar 
) const

Calculate the Chi2 for the given cross section estimates.

Calculate the Chi^2 for the cross section that model in a subclass tries to mdoel.

bool evolve ( )
virtual

Use a simlified genetic algorithm to fit the parameters.

A simple genetic algorithm for fitting the parameters in a subclass to reproduce desired cross sections.

We're going to use a home-made genetic algorithm. We start by creating a population of random parameter points.

Now we evolve our population for a number of generations.

Calculate Chi2 for each parameter set and order them.

Keep the best one, and move the other closer to a better one or kill them if they are too bad.

Kill this individual and create a new one.

Pick one of the better parameter sets and move this closer.

multiset< SubCollision > getCollisions ( vector< Nucleon > &  proj,
vector< Nucleon > &  targ,
const Vec4 bvec,
double &  T 
)
pure virtual

Take two vectors of Nucleons and an impact parameter vector and produce the corrsponding sub-collisions. Note that states of the nucleons may be changed. The function in this abstract base class will reset the nucleon states for convenience. The sub-collisions are ordered in the impact parameter distance between the nucleons. The T-variable will be set to the summed elastic amplityde.

For a given impact parameter and vectors of nucleons in the colliding nuclei, return a list of possible nucleon-nucleon SubCollisions ordered in nucleon-nucleon impact parameter distance. Should be called in overriding function in subclasses to reset all Nucleon objects.

Reset all states.

Empty return.

Implemented in MultiRadial, DoubleStrikman, NaiveSubCollisionModel, and BlackSubCollisionModel.

virtual vector<double> getParm ( ) const
inlinevirtual

Return the current parameters and the minimum and maximum allowed values for the parameters of this model.

Reimplemented in MultiRadial, and DoubleStrikman.

bool init ( )
virtual

Virtual init method.

The SubCollisionModel base class for modeling the collision between two nucleons to tell which type of collision has occurred. The model may manipulate the corresponing state of the nucleons. Initialize the base class. Subclasses should consider calling this in overriding functions.

preliminarily set average non-diffractive impact parameter as if black disk.

double sigTot ( ) const
inline

The total cross section.

Access the nucleon-nucleon cross sections assumed for this model.

Member Data Documentation

double avNDb
protected

The estimated average impact parameter distance (in femtometer) for absorptive collisions.

int NInt
protected

The parameters stearing the fitting of internal parameters to the different nucleon-nucleon cross sections.


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