fix for Savannah bug #80565
[u/mrichter/AliRoot.git] / PYTHIA6 / AliPythiaBase.h
1 #ifndef ALIPYTHIABASE_H
2 #define ALIPYTHIABASE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 #include "AliRndm.h"
8 #include <TObject.h>
9 #include "AliStructFuncType.h"
10 #include "PythiaProcesses.h"
11
12 class AliFastGlauber;
13 class AliQuenchingWeights;
14 class AliStack;
15 class TClonesArray;
16
17 class AliPythiaBase : public AliRndm 
18 {
19
20  public:
21     AliPythiaBase();
22     virtual ~AliPythiaBase(){;}
23     virtual Int_t Version()                                                                                         = 0;
24     // Convert to compressed code and print result (for debugging only)
25     virtual Int_t CheckedLuComp(Int_t kf)                                                                           = 0;
26     // Pythia initialisation for selected processes
27     virtual void  ProcInit (Process_t process, Float_t energy, StrucFunc_t strucfunc)                               = 0;
28     virtual void  GenerateEvent()                                                                                   = 0;
29     virtual void  GenerateMIEvent()                                                                                 = 0;
30     virtual Int_t GetNumberOfParticles()                                                                            = 0;
31     virtual void  SetNumberOfParticles(Int_t i)                                                                     = 0;
32     virtual void  EditEventList(Int_t i)                                                                            = 0;
33     virtual void  HadronizeEvent()                                                                                  = 0;
34     virtual Int_t GetParticles(TClonesArray *particles)                                                             = 0;
35     virtual void  PrintStatistics()                                                                                 = 0;
36     virtual void  EventListing()                                                                                    = 0;    
37     // Treat protons as inside nuclei
38     virtual void  SetNuclei(Int_t a1, Int_t a2)                                                                     = 0;
39     // Print particle properties
40     virtual void PrintParticles()                                                                                   = 0;
41     // Reset the decay table
42     virtual void ResetDecayTable()                                                                                  = 0;
43     //
44     // Common Physics Configuration
45     virtual void SetPtHardRange(Float_t ptmin, Float_t ptmax)                                                       = 0;
46     virtual void SetYHardRange(Float_t ymin, Float_t ymax)                                                          = 0;
47     virtual void SetFragmentation(Int_t flag)                                                                       = 0;
48     virtual void SetInitialAndFinalStateRadiation(Int_t flag1, Int_t flag2)                                         = 0;
49     virtual void SetIntrinsicKt(Float_t kt)                                                                         = 0;
50     virtual void SwitchHFOff()                                                                                      = 0;
51     virtual void SetPycellParameters(Float_t etamax, Int_t neta, Int_t nphi,
52                                      Float_t thresh, Float_t etseed, Float_t minet, Float_t r)                      = 0;
53     virtual void ModifiedSplitting()                                                                                = 0;
54     virtual void SwitchHadronisationOff()                                                                           = 0;
55     virtual void SwitchHadronisationOn()                                                                            = 0;
56     //
57     // Common Getters
58     virtual void    GetXandQ(Float_t& x1, Float_t& x2, Float_t& q)                                                  = 0;
59     virtual Float_t GetXSection()                                                                                   = 0;
60     virtual Int_t   ProcessCode()                                                                                   = 0;
61     virtual Float_t GetPtHard()                                                                                     = 0;
62     //
63     //
64     virtual void SetDecayTable()                                                                                    = 0;
65     virtual void Pycell(Int_t& nclus)                                                                               = 0;
66     virtual void Pyclus(Int_t& nclus)                                                                               = 0;
67     virtual void GetJet(Int_t i, Float_t& px, Float_t& py, Float_t& pz, Float_t& e)                                 = 0;
68     virtual void LoadEvent(AliStack* stack, Int_t flag, Int_t reHadr)                                               = 0;
69     virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax)                                                        = 0;
70     virtual void Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez) = 0;
71     virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod, Float_t zmax, Int_t ngmax)   = 0;
72     virtual void Pyquen(Double_t a, Int_t ibf, Double_t b)                                                          = 0;
73     virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4])                                  = 0;
74     // return instance of the singleton
75     virtual void Quench()                                                                                           = 0;
76     virtual void ConfigHeavyFlavor()                                                                                = 0;
77     virtual void AtlasTuning()                                                                                      = 0;
78     ClassDef(AliPythiaBase, 1) //ALICE UI to PYTHIA
79 };
80
81 #endif
82
83
84
85
86