]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TUHKMgen/UHKM/InitialState.h
Fix for Coverity defect 14006: RESOURCE_LEAK
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / InitialState.h
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 // Virtual class for the initial state classes
8 // Include here common methods, but always declare them as virtual
9
10 #ifndef INITIALSTATE_H
11 #define INITIALSTATE_H
12
13 #include "Particle.h"
14 #include "DatabasePDG.h"
15
16 class InitialState {
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;
47   virtual Bool_t RunDecays() = 0;
48   virtual Int_t GetNev() = 0;
49   virtual Double_t GetWeakDecayLimit() = 0;
50     
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);
53  protected:
54    DatabasePDG *fDatabase;        // PDG database
55  private:
56    InitialState(const InitialState&);
57    InitialState& operator=(const InitialState&);
58 };
59
60 #endif