Completing the setup for TTherminator model.
[u/mrichter/AliRoot.git] / TTherminator / Therminator / Event.h
CommitLineData
2e967919 1/******************************************************************************
2 * T H E R M I N A T O R *
3 * THERMal heavy-IoN generATOR *
4 * version 1.0 *
5 * *
6 * Authors of the model: Wojciech Broniowski, Wojciech.Broniowski@ifj.edu.pl, *
7 * Wojciech Florkowski, Wojciech.Florkowski@ifj.edu.pl *
8 * Authors of the code: Adam Kisiel, kisiel@if.pw.edu.pl *
9 * Tomasz Taluc, ttaluc@if.pw.edu.pl *
10 * Code designers: Adam Kisiel, Tomasz Taluc, Wojciech Broniowski, *
11 * Wojciech Florkowski *
12 * *
13 * For the detailed description of the program and furhter references *
14 * to the description of the model plesase refer to: nucl-th/0504047, *
15 * accessibile at: http://www.arxiv.org/nucl-th/0504047 *
16 * *
17 * Homepage: http://hirg.if.pw.edu.pl/en/therminator/ *
18 * *
19 * This code can be freely used and redistributed. However if you decide to *
20 * make modifications to the code, please contact the authors, especially *
21 * if you plan to publish the results obtained with such modified code. *
22 * Any publication of results obtained using this code must include the *
23 * reference to nucl-th/0504047 and the published version of it, when *
24 * available. *
25 * *
26 *****************************************************************************/
27#ifndef _BFPW_EVENT_
28#define _BFPW_EVENT_
29
30#include <vector>
31#include <list>
32#include <TRandom2.h>
33#include "THGlobal.h"
34#include "Particle.h"
35#include "ParticleDB.h"
36#include "Integrator.h"
37
38using namespace std;
39
40typedef list<Particle> ParticleList;
41typedef list<Particle>::iterator ParticleListIter;
42
43class Particle;
44
45class Event
46{
47 public:
48 Event(ParticleDB *aDB, Integrator *aInteg);
49 ~Event();
50
51 void GenerateEvent(int aSeed=0);
52 void DecayParticles();
53
54 int GetParticleCount();
55 void InitParticleScan();
56 Particle* GetNextParticle();
57 Particle* GetParticleOfCount(int aCount);
58 void WriteEvent(int nEvent=0);
59 void AddParticle(Particle* aParticle);
60 void Randomize();
61
62 private:
63 ParticleList mParticles;
64 vector<int> mMultiplicities;
65 vector<double> mAverageMultiplicities;
66 void GenerateMultiplicities();
67 void ReadMultiplicities();
68 void ReadParameters();
69 ParticleDB *mDB;
70 Integrator *mInteg;
71 TRandom2 *mRandom;
72 ParticleListIter mCurIter;
73 Int_t mNegBin;
74 Int_t mScanStarted;
ae89e57a 75 TString mFOHSlocation;
2e967919 76};
77
78
79#endif