PYTHIA  8.303
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
DoubleStrikman Class Reference

#include <HIUserHooks.h>

Inheritance diagram for DoubleStrikman:

Public Member Functions

 DoubleStrikman (int modein=0)
virtual ~DoubleStrikman ()
 Virtual destructor,.
virtual multiset< SubCollisiongetCollisions (vector< Nucleon > &proj, vector< Nucleon > &targ, const Vec4 &bvec, double &T)
 Main function returning the possible sub-collisions. More...
double gamma () const
 Generate a random number according to a Gamma-distribution. More...
double opacity (double sig) const
 The opacity of the collision at a given sigma. More...
double Tpt (const Nucleon::State &p, const Nucleon::State &t, double b) const
SigEst getSig () const
 Calculate the cross sections for the given set of parameters. More...
virtual void setParm (const vector< double > &)
 Set the parameters of this model. More...
virtual vector< double > getParm () const
virtual vector< double > minParm () const
virtual vector< double > maxParm () const
- Public Member Functions inherited from SubCollisionModel
 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)
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.
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...

Static Public Member Functions

static void shuffle (double PND1, double PND2, double &PW1, double &PW2)
 Helper functions. More...
static void shuffel (double &PEL11, double P11, double P12, double P21, double P22)
static double PNW (double PWp, double PWt, double PND)

Protected Attributes

double r0
 The average radius of the nucleon.
double k0
 The power in the Gamma distribution.
double sigd
 Saturation scale of the nucleus.
double alpha
 Power of the saturation scale.
int opacityMode
 Optional mode for opacity.
- Protected Attributes inherited from SubCollisionModel
int NInt
int NGen
int NPop
double sigFuzz
bool fitPrint
double avNDb
 Info from the controlling HeavyIons object.

Detailed Description

A more complicated model where each nucleon has a fluctuating "radius" according to a Strikman-inspired distribution.

Constructor & Destructor Documentation

DoubleStrikman ( int  modein = 0)

The default constructor simply lists the nucleon-nucleon cross sections.

Member Function Documentation

double gamma ( ) const

Generate a random number according to a Gamma-distribution.

Generate the radii in DoubleStrikman according to a gamma distribution.

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

Main function returning the possible sub-collisions.

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.

Always call base class to reset nucleons and shift them into position.

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.

vector< double > getParm ( ) const

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

Reimplemented from SubCollisionModel.

SubCollisionModel::SigEst getSig ( ) const

Calculate the cross sections for the given set of parameters.

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

Reimplemented from SubCollisionModel.

double opacity ( double  sig) const

The opacity of the collision at a given sigma.

*** THINK *** maybe sig/sigd?

void setParm ( const vector< double > &  p)

Set the parameters of this model.

Access funtions to parameters in the DoubleStrikman model.

Reimplemented from SubCollisionModel.

void shuffle ( double  PND1,
double  PND2,
double &  PW1,
double &  PW2 

Helper functions.

Helper functions to get the correct average elastic and wounded cross sections.

double Tpt ( const Nucleon::State p,
const Nucleon::State t,
double  b 
) const

Return the elastic amplitude for a projectile and target state and the impact parameter between the corresponding nucleons.

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