]>
Commit | Line | Data |
---|---|---|
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 | #include "PythiaProcesses.h" | |
12 | #include "AliOmegaDalitz.h" | |
13 | #include "AliDecayerExodus.h" | |
14 | class AliFastGlauber; | |
15 | class AliQuenchingWeights; | |
16 | ||
17 | class AliPythia : public TPythia6, public AliRndm | |
18 | { | |
19 | ||
20 | public: | |
21 | virtual ~AliPythia(){;} | |
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, Int_t itune = -1); | |
27 | // treat protons as inside nuclei | |
28 | virtual void SetNuclei(Int_t a1, Int_t a2, Int_t pdf); | |
29 | // Set colliding nuclei ("p","n",...) | |
30 | virtual void SetCollisionSystem(TString projectile, TString target) { fProjectile = projectile; fTarget = target; } | |
31 | // Print particle properties | |
32 | virtual void PrintParticles(); | |
33 | virtual void ResetDecayTable(); | |
34 | virtual void SetDecayTable(); | |
35 | virtual void SetWeightPower(Double_t pow); // use weighted cross sections | |
36 | virtual void Pyevnw(); | |
37 | virtual void Pycell(Int_t& nclus); | |
38 | virtual void Pyclus(Int_t& nclus); | |
39 | virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax); | |
40 | virtual void Pyshowq(Int_t ip1, Int_t ip2, Double_t qmax); | |
41 | virtual void Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez); | |
42 | virtual void Pytune(Int_t itune); | |
43 | virtual void Py2ent(Int_t idx, Int_t pdg1, Int_t pdg2, Double_t p); | |
44 | virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod, Float_t zmax = 0.97, Int_t ngmax = 30); | |
45 | virtual void SetPyquenParameters(Double_t t0, Double_t tau0, Int_t nf, Int_t iengl, Int_t iangl); | |
46 | virtual void Pyquen(Double_t a, Int_t ibf, Double_t b); | |
47 | virtual void Qpygin0(); | |
48 | virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]); | |
49 | // return instance of the singleton | |
50 | static AliPythia* Instance(); | |
51 | virtual void Quench(); | |
52 | void DalitzDecays(); | |
53 | // Dalitz and resonance decays from EXODUS | |
54 | void PizeroDalitz(); | |
55 | void EtaDalitz(); | |
56 | void RhoDirect(); | |
57 | void OmegaDalitz(); | |
58 | void OmegaDirect(); | |
59 | void EtaprimeDalitz(); | |
60 | void PhiDalitz(); | |
61 | void PhiDirect(); | |
62 | void JPsiDirect(); | |
63 | // Assignment Operator | |
64 | AliPythia & operator=(const AliPythia & rhs); | |
65 | void Copy(TObject&) const; | |
66 | protected: | |
67 | Process_t fProcess; // Process type | |
68 | Float_t fEcms; // Centre of mass energy | |
69 | StrucFunc_t fStrucFunc; // Structure function | |
70 | TString fProjectile; // Projectile | |
71 | TString fTarget; // Target | |
72 | Int_t fDefMDCY[501]; // ! Default decay switches per particle | |
73 | Int_t fDefMDME[2001]; // ! Default decay switches per mode | |
74 | Double_t fZQuench[4]; // ! Quenching fractions for this even | |
75 | Double_t fXJet; // ! Jet production point X | |
76 | Double_t fYJet; // ! Jet production point Y | |
77 | Int_t fNGmax; // Maximum number of radiated gluons in quenching | |
78 | Float_t fZmax; // Maximum energy loss in quenching | |
79 | AliFastGlauber* fGlauber; // ! The Glauber model | |
80 | AliQuenchingWeights* fQuenchingWeights; // ! The Quenching Weights model | |
81 | Int_t fItune; // ! Pythia tune | |
82 | AliOmegaDalitz fOmegaDalitz; // ! omega dalitz decayer | |
83 | AliDecayerExodus fExodus; // ! EXODUS decayer | |
84 | static AliPythia* fgAliPythia; // Pointer to single instance | |
85 | private: | |
86 | AliPythia(); | |
87 | AliPythia(const AliPythia& pythia); | |
88 | void ConfigHeavyFlavor(); | |
89 | void AtlasTuning(); | |
90 | void AtlasTuningMC09(); | |
91 | ClassDef(AliPythia,1) //ALICE UI to PYTHIA | |
92 | }; | |
93 | ||
94 | #endif | |
95 | ||
96 | ||
97 | ||
98 | ||
99 |