]>
Commit | Line | Data |
---|---|---|
39d810c8 | 1 | #ifndef ALIPYTHIA6_H |
2 | #define ALIPYTHIA6_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliPythia.h,v 1.22 2007/10/09 08:43:24 morsch Exp $ */ | |
7 | ||
8 | #include <TPythia6.h> | |
9 | #include "AliPythiaBase.h" | |
10 | ||
11 | ||
12 | class AliFastGlauber; | |
13 | class AliQuenchingWeights; | |
14 | class AliStack; | |
15 | ||
16 | class AliPythia6 : public TPythia6, public AliPythiaBase | |
17 | { | |
18 | ||
19 | public: | |
20 | virtual ~AliPythia6(){;} | |
21 | virtual Int_t Version() {return (6);} | |
22 | // convert to compressed code and print result (for debugging only) | |
23 | virtual Int_t CheckedLuComp(Int_t kf); | |
24 | // Pythia initialisation for selected processes | |
25 | virtual void ProcInit | |
26 | (Process_t process, Float_t energy, StrucFunc_t strucfunc); | |
27 | virtual void GenerateEvent() {Pyevnt();} | |
28 | virtual void GenerateMIEvent() {Pyevnw();} | |
29 | virtual void HadronizeEvent() {Pyexec();} | |
30 | virtual Int_t GetNumberOfParticles() {return GetN();} | |
31 | virtual void SetNumberOfParticles(Int_t i) {SetN(i);} | |
32 | virtual void EditEventList(Int_t i) {Pyedit(i);} | |
33 | virtual void PrintStatistics(); | |
34 | virtual void EventListing(); | |
35 | virtual Int_t GetParticles(TClonesArray *particles) {return ImportParticles(particles, "All");} | |
36 | // Treat protons as inside nuclei | |
37 | virtual void SetNuclei(Int_t a1, Int_t a2); | |
38 | // Print particle properties | |
39 | virtual void PrintParticles(); | |
40 | // Reset the decay table | |
41 | virtual void ResetDecayTable(); | |
42 | // | |
43 | // Common Physics Configuration | |
44 | virtual void SetPtHardRange(Float_t ptmin, Float_t ptmax); | |
45 | virtual void SetYHardRange(Float_t ymin, Float_t ymax); | |
46 | virtual void SetFragmentation(Int_t flag); | |
47 | virtual void SetInitialAndFinalStateRadiation(Int_t flag1, Int_t flag2); | |
48 | virtual void SetIntrinsicKt(Float_t kt); | |
49 | virtual void SwitchHFOff(); | |
50 | virtual void SetPycellParameters(Float_t etamax, Int_t neta, Int_t nphi, | |
51 | Float_t thresh, Float_t etseed, Float_t minet, Float_t r); | |
52 | virtual void ModifiedSplitting(); | |
53 | virtual void SwitchHadronisationOff(); | |
54 | virtual void SwitchHadronisationOn(); | |
55 | // | |
56 | // Common Getters | |
57 | virtual void GetXandQ(Float_t& x1, Float_t& x2, Float_t& q); | |
58 | virtual Float_t GetXSection(); | |
59 | virtual Int_t ProcessCode(); | |
60 | virtual Float_t GetPtHard(); | |
61 | // | |
62 | // | |
63 | virtual void SetDecayTable(); | |
64 | virtual void Pyevnw(); | |
8b9bb87a | 65 | virtual void Pyjoin(Int_t& npart, Int_t* ipart); |
39d810c8 | 66 | virtual void Pycell(Int_t& nclus); |
67 | virtual void Pyclus(Int_t& nclus); | |
68 | virtual void GetJet(Int_t i, Float_t& px, Float_t& py, Float_t& pz, Float_t& e); | |
69 | virtual void LoadEvent(AliStack* stack, Int_t flag, Int_t reHadr); | |
70 | virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax); | |
f3cbba5f | 71 | virtual void Pyshowq(Int_t ip1, Int_t ip2, Double_t qmax); |
72 | ||
39d810c8 | 73 | virtual void Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez); |
74 | virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod, Float_t zmax = 0.97, Int_t ngmax = 30); | |
75 | virtual void SetPyquenParameters(Double_t t0, Double_t tau0, Int_t nf, Int_t iengl, Int_t iangl); | |
76 | virtual void Pyquen(Double_t a, Int_t ibf, Double_t b); | |
f3cbba5f | 77 | virtual void Qpygin0(); |
39d810c8 | 78 | virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]); |
79 | // return instance of the singleton | |
80 | static AliPythia6* Instance(); | |
81 | virtual void Quench(); | |
82 | // Assignment Operator | |
83 | AliPythia6 & operator=(const AliPythia6 & rhs); | |
84 | void Copy(TObject&) const; | |
85 | protected: | |
86 | Process_t fProcess; // Process type | |
87 | Float_t fEcms; // Centre of mass energy | |
88 | StrucFunc_t fStrucFunc; // Structure function | |
89 | Int_t fDefMDCY[501]; // ! Default decay switches per particle | |
90 | Int_t fDefMDME[2001]; // ! Default decay switches per mode | |
91 | Double_t fZQuench[4]; // ! Quenching fractions for this even | |
92 | Double_t fXJet; // ! Jet production point X | |
93 | Double_t fYJet; // ! Jet production point Y | |
94 | Int_t fNGmax; // Maximum number of radiated gluons in quenching | |
95 | Float_t fZmax; // Maximum energy loss in quenching | |
96 | AliFastGlauber* fGlauber; // ! The Glauber model | |
97 | AliQuenchingWeights* fQuenchingWeights; // ! The Quenching Weights model | |
98 | static AliPythia6* fgAliPythia; // Pointer to single instance | |
99 | private: | |
100 | AliPythia6(); | |
101 | AliPythia6(const AliPythia6& pythia); | |
102 | void ConfigHeavyFlavor(); | |
103 | void AtlasTuning(); | |
67b7bb0e | 104 | void AtlasTuning_MC09(); |
39d810c8 | 105 | ClassDef(AliPythia6,1) //ALICE UI to PYTHIA |
106 | }; | |
107 | ||
108 | #endif | |
109 | ||
110 | ||
111 | ||
112 | ||
113 |