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
5 // Updated : 2008/08/11
7 // Virtual class for the initial state classes
8 // Include here common methods, but always declare them as virtual
10 #ifndef INITIALSTATE_H
11 #define INITIALSTATE_H
14 #include "DatabasePDG.h"
18 InitialState() : fDatabase(new DatabasePDG()) {};
19 virtual ~InitialState() {
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();}
42 virtual DatabasePDG* PDGInfo() const {return fDatabase;}
44 virtual void Initialize(List_t &source, ParticleAllocator &allocator) = 0;
45 virtual Bool_t ReadParams() = 0;
46 virtual Bool_t MultIni() = 0;
47 virtual Bool_t RunDecays() = 0;
48 virtual Int_t GetNev() = 0;
49 virtual Double_t GetWeakDecayLimit() = 0;
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);
54 DatabasePDG *fDatabase; // PDG database
56 InitialState(const InitialState&);
57 InitialState& operator=(const InitialState&);