]>
Commit | Line | Data |
---|---|---|
03896fc4 | 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 | // | |
b1c2e580 | 7 | // Virtual class for the initial state classes |
8 | // Include here common methods, but always declare them as virtual | |
03896fc4 | 9 | |
10 | #ifndef INITIALSTATE_H | |
11 | #define INITIALSTATE_H | |
12 | ||
b1c2e580 | 13 | #include "Particle.h" |
b1c2e580 | 14 | #include "DatabasePDG.h" |
b1c2e580 | 15 | |
16 | class InitialState { | |
b1c2e580 | 17 | public: |
18 | InitialState() : fDatabase(new DatabasePDG()) {}; | |
19 | virtual ~InitialState() { | |
20 | if(fDatabase) | |
21 | delete fDatabase; | |
22 | }; | |
23 | ||
24 | virtual void SetPDGParticleFilename(Char_t *filename) {fDatabase->SetParticleFilename(filename);} | |
25 | virtual void SetPDGDecayFilename(Char_t *filename) {fDatabase->SetDecayFilename(filename);} | |
26 | virtual void SetUseCharmParticles(Bool_t flag) {fDatabase->SetUseCharmParticles(flag);} | |
27 | virtual void SetMinimumWidth(Double_t value) {fDatabase->SetMinimumWidth(value);} | |
28 | virtual void SetMaximumWidth(Double_t value) {fDatabase->SetMaximumWidth(value);} | |
29 | virtual void SetMinimumMass(Double_t value) {fDatabase->SetMinimumMass(value);} | |
30 | virtual void SetMaximumMass(Double_t value) {fDatabase->SetMaximumMass(value);} | |
31 | virtual void SetWidthRange(Double_t min, Double_t max) {fDatabase->SetWidthRange(min, max);} | |
32 | virtual void SetMassRange(Double_t min, Double_t max) {fDatabase->SetMassRange(min, max);} | |
33 | virtual void LoadPDGInfo() {fDatabase->LoadData();} | |
34 | virtual void SetPDGParticleStable(Int_t pdg, Bool_t value) {fDatabase->SetStable(pdg, value);} | |
35 | virtual Bool_t GetPDGParticleStableStatus(Int_t pdg) {return fDatabase->GetStableStatus(pdg);} | |
36 | virtual Bool_t GetUseCharmParticles() {return fDatabase->GetUseCharmParticles();} | |
37 | virtual Double_t GetMinimumWidth() {return fDatabase->GetMinimumWidth();} | |
38 | virtual Double_t GetMaximumWidth() {return fDatabase->GetMaximumWidth();} | |
39 | virtual Double_t GetMinimumMass() {return fDatabase->GetMinimumMass();} | |
40 | virtual Double_t GetMaximumMass() {return fDatabase->GetMaximumMass();} | |
41 | ||
42 | virtual DatabasePDG* PDGInfo() const {return fDatabase;} | |
43 | ||
44 | virtual void Initialize(List_t &source, ParticleAllocator &allocator) = 0; | |
45 | virtual Bool_t ReadParams() = 0; | |
46 | virtual Bool_t MultIni() = 0; | |
3fa37a65 | 47 | virtual Bool_t RunDecays() = 0; |
b1c2e580 | 48 | virtual Int_t GetNev() = 0; |
49 | virtual Double_t GetWeakDecayLimit() = 0; | |
50 | ||
3fa37a65 | 51 | // virtual void Evolve(List_t &source, List_t &secondaries, ParticleAllocator &allocator, Double_t weakDecayLimit); |
52 | virtual void Evolve(List_t &secondaries, ParticleAllocator &allocator, Double_t weakDecayLimit); | |
786056a2 | 53 | protected: |
03896fc4 | 54 | DatabasePDG *fDatabase; // PDG database |
786056a2 | 55 | private: |
56 | InitialState(const InitialState&); | |
57 | InitialState& operator=(const InitialState&); | |
b1c2e580 | 58 | }; |
59 | ||
60 | #endif |