8d2cd130 |
1 | #ifndef ALIPYTHIA_H |
2 | #define ALIPYTHIA_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 | |
8 | #include <TPythia6.h> |
9 | #include <AliRndm.h> |
10 | #include <AliStructFuncType.h> |
11 | typedef enum |
12 | {kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced, |
13 | kPyJpsi, kPyJpsiChi, kPyMb, kPyMbNonDiffr, kPyJets, kPyDirectGamma, |
90d7b703 |
14 | kPyCharmPbPbMNR, kPyD0PbPbMNR, kPyDPlusPbPbMNR, kPyBeautyPbPbMNR, |
15 | kPyCharmpPbMNR, kPyD0pPbMNR, kPyDPluspPbMNR, kPyBeautypPbMNR, |
16 | kPyCharmppMNR, kPyD0ppMNR, kPyDPlusppMNR, kPyBeautyppMNR} |
8d2cd130 |
17 | Process_t; |
18 | /* |
19 | typedef enum |
20 | { |
21 | kDOSet1 = 1006, |
22 | kGRVLO = 5005, |
23 | kGRVHO = 5006, |
24 | kMRSDminus = 3031, |
25 | kMRSD0 = 3030, |
26 | kMRSG = 3041, |
27 | kCTEQ2pM = 4024, |
28 | kCTEQ4L = 4032, |
29 | kCTEQ4M = 4034, |
30 | kMRSTcgLO = 3072, |
31 | kCTEQ5L = 4046, |
32 | kGRVLO98 = 5012 |
33 | } |
34 | StrucFunc_t; |
35 | */ |
0f482ae4 |
36 | class AliFastGlauber; |
37 | class AliQuenchingWeights; |
38 | |
8d2cd130 |
39 | class AliPythia : public TPythia6, public AliRndm |
40 | { |
41 | |
42 | public: |
43 | virtual ~AliPythia(){;} |
44 | // convert to compressed code and print result (for debugging only) |
45 | virtual Int_t CheckedLuComp(Int_t kf); |
46 | // Pythia initialisation for selected processes |
47 | virtual void ProcInit |
48 | (Process_t process, Float_t energy, StrucFunc_t strucfunc); |
49 | // treat protons as inside nuclei |
50 | virtual void SetNuclei(Int_t a1, Int_t a2); |
51 | // Print particle properties |
52 | virtual void PrintParticles(); |
53 | virtual void ResetDecayTable(); |
54 | virtual void SetDecayTable(); |
55 | virtual void Pycell(Int_t& nclus); |
56 | virtual void Pyclus(Int_t& nclus); |
452af8c7 |
57 | virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax); |
58 | virtual void Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez); |
86b6ad68 |
59 | virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod); |
992f2843 |
60 | virtual void Pyquen(Double_t a, Int_t ibf, Double_t b); |
b280c4cc |
61 | virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]); |
62 | |
452af8c7 |
63 | |
8d2cd130 |
64 | // return instance of the singleton |
65 | static AliPythia* Instance(); |
452af8c7 |
66 | virtual void Quench(); |
8d2cd130 |
67 | protected: |
0f482ae4 |
68 | Process_t fProcess; // Process type |
69 | Float_t fEcms; // Centre of mass energy |
70 | StrucFunc_t fStrucFunc; // Structure function |
71 | Int_t fDefMDCY[501]; // ! Default decay switches per particle |
72 | Int_t fDefMDME[2001]; // ! Default decay switches per mode |
b280c4cc |
73 | Double_t fZQuench[4]; // ! Quenching fractions for this even |
74 | Double_t fXJet; // ! Jet production point X |
75 | Double_t fYJet; // ! Jet production point Y |
0f482ae4 |
76 | AliFastGlauber* fGlauber; // ! The Glauber model |
77 | AliQuenchingWeights* fQuenchingWeights; // ! The Quenching Weights model |
78 | static AliPythia* fgAliPythia; // Pointer to single instance |
8d2cd130 |
79 | private: |
80 | AliPythia(); |
81 | |
82 | ClassDef(AliPythia,1) //ALICE UI to PYTHIA |
83 | }; |
84 | |
85 | #endif |
86 | |
87 | |
88 | |
90d7b703 |
89 | |