PYTHIA  8.311
Public Member Functions | Protected Member Functions | List of all members
FluctuatingSubCollisionModel Class Referenceabstract

#include <HISubCollisionModel.h>

Inheritance diagram for FluctuatingSubCollisionModel:
SubCollisionModel DoubleStrikmanSubCollisionModel LogNormalSubCollisionModel

Public Member Functions

 FluctuatingSubCollisionModel (int nParmIn, int modein)
 The default constructor simply lists the nucleon-nucleon cross sections.
 
virtual ~FluctuatingSubCollisionModel () override
 Virtual destructor.
 
virtual SubCollisionSet getCollisions (Nucleus &proj, Nucleus &targ) override
 Main function returning the possible sub-collisions. More...
 
virtual SigEst getSig () const override
 Calculate the cross sections for the given set of parameters. More...
 
- Public Member Functions inherited from SubCollisionModel
 SubCollisionModel (int nParm)
 The default constructor is empty.
 
virtual ~SubCollisionModel ()
 Virtual destructor.
 
virtual bool init (int idAIn, int idBIn, double eCMIn)
 Virtual init method. More...
 
void initPtr (NucleusModel &projIn, NucleusModel &targIn, SigmaTotal &sigTotIn, Settings &settingsIn, Info &infoIn, Rndm &rndmIn)
 Initialize the pointers.
 
double sigTot () const
 The target total nucleon-nucleon cross section. More...
 
double sigEl () const
 The target elastic cross section.
 
double sigCDE () const
 The target central diffractive excitation cross section.
 
double sigSDE () const
 The target single diffractive excitation cross section (both sides).
 
double sigSDEP () const
 The target single diffractive excitation cross section (projectile).
 
double sigSDET () const
 The target single diffractive excitation cross section (target).
 
double sigDDE () const
 The target double diffractive excitation cross section.
 
double sigND () const
 The target non-diffractive (absorptive) cross section.
 
double bSlope () const
 The target elastic b-slope parameter.
 
double avNDB () const
 Return the average non-diffractive impact parameter.
 
void updateSig ()
 Update internally stored cross sections. More...
 
double Chi2 (const SigEst &sigs, int npar) const
 Calculate the Chi2 for the given cross section estimates. More...
 
void setKinematics (double eCMIn)
 Set beam kinematics. More...
 
bool evolve (int nGenerations, double eCM)
 Use a genetic algorithm to fit the parameters. More...
 
int nParms () const
 Get the number of free parameters for the model.
 
void setParm (const vector< double > &parmIn)
 Set the parameters of this model.
 
vector< double > getParm () const
 Get the current parameters of this model.
 
virtual vector< double > minParm () const =0
 Get the minimum allowed parameter values for this model.
 
virtual vector< double > defParm () const =0
 Get the default parameter values for this model.
 
virtual vector< double > maxParm () const =0
 Get the maximum allowed parameter values for this model.
 

Protected Member Functions

virtual double pickRadiusProj () const =0
 Pick a radius for the nucleon, depending on the specific model.
 
virtual double pickRadiusTarg () const =0
 

Additional Inherited Members

- Static Public Member Functions inherited from SubCollisionModel
static shared_ptr< SubCollisionModelcreate (int model)
 Create a new SubCollisionModel of the given model. More...
 
- Protected Attributes inherited from SubCollisionModel
vector< double > parmSave
 Saved parameters.
 
int NInt
 
int NPop
 
double sigFuzz
 
double impactFudge
 
bool fitPrint
 
double avNDb
 
NucleusModelprojPtr
 Info from the controlling HeavyIons object.
 
NucleusModeltargPtr
 
SigmaTotalsigTotPtr
 
SettingssettingsPtr
 
InfoinfoPtr
 
RndmrndmPtr
 
LoggerloggerPtr
 
int idASave
 For variable energies.
 
int idBSave
 
bool doVarECM
 
double eMin {}
 
double eMax {}
 
int eCMPts
 
vector< LogInterpolatorsubCollParms
 

Detailed Description

A base class for sub-collision models where each nucleon has a fluctuating "radius". The base model has two parameters, sigd and alpha, which are used for opacity calculations. Subclasses may have additional parameters to describe the radius distributions of that specific model.

Member Function Documentation

SubCollisionSet getCollisions ( Nucleus proj,
Nucleus targ 
)
overridevirtual

Main function returning the possible sub-collisions.

Take two nuclei and pick specific states for each nucleon, then get the corresponding sub-collisions.

Assign two states to each nucleon.

The factorising S-matrix.

Go through all pairs of nucleons

First and most important, check if this is an absorptive scattering.

Now set up calculation for probability of diffractively wounded nucleons.

Finally set up calculation for elastic scattering. This can never be exact, but let's do as well as we can.

Implements SubCollisionModel.

SubCollisionModel::SigEst getSig ( ) const
overridevirtual

Calculate the cross sections for the given set of parameters.

Numerically estimate the cross sections corresponding to the current parameter setting.

Implements SubCollisionModel.


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