using option '-treename HLTesdTree' for EsdCollector, adding default parameter for...
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / include / SigmaTotal.h
CommitLineData
5ad4eb21 1// SigmaTotal.h is a part of the PYTHIA event generator.
2// Copyright (C) 2008 Torbjorn Sjostrand.
3// PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
4// Please respect the MCnet Guidelines, see GUIDELINES for details.
5
6// This file contains the class for cross section parametrizations.
7// SigmaTotal: total and partial cross section in hadron-hadron collisions.
8
9#ifndef Pythia8_SigmaTotal_H
10#define Pythia8_SigmaTotal_H
11
12#include "Info.h"
13#include "ParticleData.h"
14#include "PythiaStdlib.h"
15#include "Settings.h"
16
17namespace Pythia8 {
18
19//**************************************************************************
20
21// The SigmaTotal class contains parametrizations of total, elastic and
22// diffractive cross sections, and of the respective slope parameter.
23
24class SigmaTotal {
25
26public:
27
28 // Constructor.
29 SigmaTotal() : isCalc(false) {};
30
31 // Storee pointer to Info and initialize data members.
32 void init(Info* infoPtrIn);
33
34 // Calculate, or recalculate for new beams or new energy.
35 bool calc(int idA, int idB, double eCM);
36
37 // Confirm that initialization worked.
38 bool hasSigmaTot() const {return isCalc;}
39
40 // Read out total and partial cross sections.
41 double sigmaTot() const {return sigTot;}
42 double sigmaEl() const {return sigEl;}
43 double sigmaXB() const {return sigXB;}
44 double sigmaAX() const {return sigAX;}
45 double sigmaXX() const {return sigXX;}
46 double sigmaND() const {return sigND;}
47
48 // Read out slope b in exp(b*t) dependence.
49 double bSlopeEl() const {return bEl;}
50 double bSlopeXB(double sX) const { return 2.*bB + alP2 * log(s/sX) ;}
51 double bSlopeAX(double sX) const { return 2.*bA + alP2 * log(s/sX) ;}
52 double bSlopeXX(double sX1, double sX2) const {
53 return alP2 * log( exp(4.) + s * s0 / (sX1 * sX2) ) ;}
54
55 // Read out parameters of diffractive mass spectra.
56 double mMinXB() const {return mMinXBsave;}
57 double mMinAX() const {return mMinAXsave;}
58 double cRes() const {return CRES;}
59 double mResXB() const {return mResXBsave;}
60 double mResAX() const {return mResAXsave;}
61 double sProton() const {return SPROTON;}
62
63 // Read out parameters of trial t spectra.
64 double bMinSlopeXB() const { return max(2., 2. * bB);}
65 double bMinSlopeAX() const { return max(2., 2. * bA);}
66 double bMinSlopeXX() const { return alP2 * 4.;}
67
68private:
69
70 // Initialization data, normally only set once.
71 bool isCalc, setTotal, setElastic;
72 double sigTotOwn, sigElOwn, sigXBOwn, sigAXOwn, sigXXOwn,
73 bSlope, rho, lambda, tAbsMin, alphaEM0;
74
75 // Constants: could only be changed in the code itself.
76 static const int IHADATABLE[], IHADBTABLE[], ISDTABLE[], IDDTABLE[];
77 static const double MMIN, EPSILON, ETA, X[], Y[], BETA0[], BHAD[],
78 ALPHAPRIME, CONVERTEL, CONVERTSD, CONVERTDD, MMIN0,
79 CRES, MRES0, CSD[10][8], CDD[10][9], SPROTON;
80
81 // Pointer to various information on the generation.
82 Info* infoPtr;
83
84 // Store values found by calc.
85 double sigTot, sigEl, sigXB, sigAX, sigXX, sigND, bEl, s, bA, bB,
86 alP2, s0, exp4, mMinXBsave, mMinAXsave, mResXBsave, mResAXsave;
87
88};
89
90//**************************************************************************
91
92} // end namespace Pythia8
93
94#endif // Pythia8_SigmaTotal_H