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 */
9 #include "AliStructFuncType.h"
10 #include "PythiaProcesses.h"
13 class AliQuenchingWeights;
17 class AliPythiaBase : public AliRndm
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, Int_t tune) = 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;
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;
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;
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