]>
Commit | Line | Data |
---|---|---|
b1c2e580 | 1 | /* |
2 | Ludmila Malinina malinina@lav01.sinp.msu.ru, SINP MSU/Moscow and JINR/Dubna | |
3 | Ionut Arsene i.c.arsene@fys.uio.no, Oslo University and ISS-Bucharest | |
4 | Date : 2007/05/30 | |
5 | Updated : 2008/08/11 | |
6 | */ | |
7 | ||
8 | #ifndef INITIAL_STATE | |
9 | #define INITIAL_STATE | |
10 | // Virtual class for the initial state classes | |
11 | // Include here common methods, but always declare them as virtual | |
12 | #ifndef PARTICLE_INCLUDED | |
13 | #include "Particle.h" | |
14 | #endif | |
15 | #ifndef DATABASE_PDG | |
16 | #include "DatabasePDG.h" | |
17 | #endif | |
18 | ||
19 | class InitialState { | |
b1c2e580 | 20 | public: |
21 | InitialState() : fDatabase(new DatabasePDG()) {}; | |
22 | virtual ~InitialState() { | |
23 | if(fDatabase) | |
24 | delete fDatabase; | |
25 | }; | |
26 | ||
27 | virtual void SetPDGParticleFilename(Char_t *filename) {fDatabase->SetParticleFilename(filename);} | |
28 | virtual void SetPDGDecayFilename(Char_t *filename) {fDatabase->SetDecayFilename(filename);} | |
29 | virtual void SetUseCharmParticles(Bool_t flag) {fDatabase->SetUseCharmParticles(flag);} | |
30 | virtual void SetMinimumWidth(Double_t value) {fDatabase->SetMinimumWidth(value);} | |
31 | virtual void SetMaximumWidth(Double_t value) {fDatabase->SetMaximumWidth(value);} | |
32 | virtual void SetMinimumMass(Double_t value) {fDatabase->SetMinimumMass(value);} | |
33 | virtual void SetMaximumMass(Double_t value) {fDatabase->SetMaximumMass(value);} | |
34 | virtual void SetWidthRange(Double_t min, Double_t max) {fDatabase->SetWidthRange(min, max);} | |
35 | virtual void SetMassRange(Double_t min, Double_t max) {fDatabase->SetMassRange(min, max);} | |
36 | virtual void LoadPDGInfo() {fDatabase->LoadData();} | |
37 | virtual void SetPDGParticleStable(Int_t pdg, Bool_t value) {fDatabase->SetStable(pdg, value);} | |
38 | virtual Bool_t GetPDGParticleStableStatus(Int_t pdg) {return fDatabase->GetStableStatus(pdg);} | |
39 | virtual Bool_t GetUseCharmParticles() {return fDatabase->GetUseCharmParticles();} | |
40 | virtual Double_t GetMinimumWidth() {return fDatabase->GetMinimumWidth();} | |
41 | virtual Double_t GetMaximumWidth() {return fDatabase->GetMaximumWidth();} | |
42 | virtual Double_t GetMinimumMass() {return fDatabase->GetMinimumMass();} | |
43 | virtual Double_t GetMaximumMass() {return fDatabase->GetMaximumMass();} | |
44 | ||
45 | virtual DatabasePDG* PDGInfo() const {return fDatabase;} | |
46 | ||
47 | virtual void Initialize(List_t &source, ParticleAllocator &allocator) = 0; | |
48 | virtual Bool_t ReadParams() = 0; | |
49 | virtual Bool_t MultIni() = 0; | |
50 | virtual Double_t GetTime() = 0; | |
51 | virtual Int_t GetNev() = 0; | |
52 | virtual Double_t GetWeakDecayLimit() = 0; | |
53 | ||
54 | virtual void Evolve(List_t &source, List_t &secondaries, ParticleAllocator &allocator, Double_t weakDecayLimit); | |
786056a2 | 55 | protected: |
56 | DatabasePDG *fDatabase; | |
57 | private: | |
58 | InitialState(const InitialState&); | |
59 | InitialState& operator=(const InitialState&); | |
b1c2e580 | 60 | }; |
61 | ||
62 | #endif |