]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8175/include/BoseEinstein.h
- remove descriptors and classes with obsolete TRD inputs
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8175 / include / BoseEinstein.h
1 // Bose-Einstein.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2013 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 classes to handle Bose-Einstein effects.
7 // BoseEinsteinHadron: simple working container for particle momenta.
8 // BoseEinstein: main class to perform the task.
9
10 #ifndef Pythia8_BoseEinstein_H
11 #define Pythia8_BoseEinstein_H
12
13 #include "Basics.h"
14 #include "Event.h"
15 #include "ParticleData.h"
16 #include "PythiaStdlib.h"
17 #include "Settings.h"
18
19 namespace Pythia8 {
20  
21 //==========================================================================
22  
23 // The BoseEinsteinHadron class is a simple container for studied hadrons.
24
25 class BoseEinsteinHadron {
26
27 public:
28
29   // Constructors. 
30   BoseEinsteinHadron() : id(0), iPos(0), p(0.), pShift(0.), pComp(0.), 
31     m2(0.) {}
32   BoseEinsteinHadron(int idIn,  int iPosIn, Vec4 pIn, double mIn) : 
33     id(idIn), iPos(iPosIn), p(pIn), pShift(0.), pComp(0.) {m2 = mIn*mIn;}
34
35   // Information on hadron - all public.
36   int    id, iPos;
37   Vec4   p, pShift, pComp;
38   double m2;
39
40 };
41
42 //==========================================================================
43
44 // The BoseEinstein class shifts the momenta of identical particles relative 
45 // to each other, to simulate Bose-Einstein effects to some approximation.
46
47 class BoseEinstein {
48
49 public:
50
51   // Constructor. 
52   BoseEinstein() {}
53
54   // Find settings. Precalculate table used to find momentum shifts.
55   bool init(Info* infoPtrIn, Settings& settings, ParticleData& particleData);
56
57   // Perform Bose-Einstein corrections on an event.
58   bool shiftEvent( Event& event); 
59
60 private: 
61
62   // Constants: could only be changed in the code itself.
63   static const int    IDHADRON[9], ITABLE[9], NCOMPSTEP;
64   static const double STEPSIZE, Q2MIN, COMPRELERR, COMPFACMAX;
65
66   // Initialization data, read from Settings.
67   bool   doPion, doKaon, doEta;
68   double lambda, QRef;
69
70   // Pointer to various information on the generation.
71   Info* infoPtr;
72
73   // Table of momentum shifts for different hadron species.
74   int    nStep[4], nStep3[4], nStored[10];
75   double QRef2, QRef3, R2Ref, R2Ref2, R2Ref3, mHadron[9],
76          mPair[4], m2Pair[4], deltaQ[4], deltaQ3[4], maxQ[4], maxQ3[4];
77   double shift[4][200], shift3[4][200]; 
78
79   // Vector of hadrons to study.
80   vector<BoseEinsteinHadron> hadronBE;
81
82   // Calculate shift and (unnormalized) compensation for pair.
83   void shiftPair(int i1, int i2, int iHad);
84   
85 };
86  
87 //==========================================================================
88
89 } // end namespace Pythia8
90
91 #endif // Pythia8_BoseEinstein_H
92