Line data Source code
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 0 : virtual ~AliPythia6(){;}
21 0 : 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, Int_t tune);
27 0 : virtual void GenerateEvent() {Pyevnt();}
28 0 : virtual void GenerateMIEvent() {Pyevnw();}
29 0 : virtual void HadronizeEvent() {Pyexec();}
30 0 : virtual Int_t GetNumberOfParticles() {return GetN();}
31 0 : virtual void SetNumberOfParticles(Int_t i) {SetN(i);}
32 0 : virtual void EditEventList(Int_t i) {Pyedit(i);}
33 : virtual void PrintStatistics();
34 : virtual void EventListing();
35 0 : 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 : // Set colliding nuclei ("p","n",...)
39 0 : virtual void SetCollisionSystem(TString projectile, TString target) { fProjectile = projectile; fTarget = target; }
40 : // Print particle properties
41 : virtual void PrintParticles();
42 : // Reset the decay table
43 : virtual void ResetDecayTable();
44 : //
45 : // Common Physics Configuration
46 : virtual void SetWeightPower(Double_t pow); // use pT,hard dependent weight instead of p_T,hard bins
47 : virtual void SetPtHardRange(Float_t ptmin, Float_t ptmax);
48 : virtual void SetYHardRange(Float_t ymin, Float_t ymax);
49 : virtual void SetFragmentation(Int_t flag);
50 : virtual void SetInitialAndFinalStateRadiation(Int_t flag1, Int_t flag2);
51 : virtual void SetIntrinsicKt(Float_t kt);
52 : virtual void SwitchHFOff();
53 : virtual void SetPycellParameters(Float_t etamax, Int_t neta, Int_t nphi,
54 : Float_t thresh, Float_t etseed, Float_t minet, Float_t r);
55 : virtual void ModifiedSplitting();
56 : virtual void SwitchHadronisationOff();
57 : virtual void SwitchHadronisationOn();
58 : //
59 : // Common Getters
60 : virtual void GetXandQ(Float_t& x1, Float_t& x2, Float_t& q);
61 : virtual Float_t GetXSection();
62 : virtual Int_t ProcessCode();
63 : virtual Float_t GetPtHard();
64 : virtual Int_t GetNMPI();
65 : //
66 : //
67 : virtual void SetDecayTable();
68 : virtual void Pyevnw();
69 : virtual void Pyjoin(Int_t& npart, Int_t* ipart);
70 : virtual void Pycell(Int_t& nclus);
71 : virtual void Pyclus(Int_t& nclus);
72 : virtual void GetJet(Int_t i, Float_t& px, Float_t& py, Float_t& pz, Float_t& e);
73 : virtual void LoadEvent(AliStack* stack, Int_t flag, Int_t reHadr);
74 : virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax);
75 : virtual void Pyshowq(Int_t ip1, Int_t ip2, Double_t qmax);
76 :
77 : virtual void Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez);
78 : virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod, Float_t zmax = 0.97, Int_t ngmax = 30);
79 : virtual void SetPyquenParameters(Double_t t0, Double_t tau0, Int_t nf, Int_t iengl, Int_t iangl);
80 : virtual void Pyquen(Double_t a, Int_t ibf, Double_t b);
81 : virtual void Qpygin0();
82 : virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]);
83 : // return instance of the singleton
84 : static AliPythia6* Instance();
85 : virtual void Quench();
86 : // Assignment Operator
87 : AliPythia6 & operator=(const AliPythia6 & rhs);
88 : void Copy(TObject&) const;
89 : protected:
90 : Process_t fProcess; // Process type
91 : Float_t fEcms; // Centre of mass energy
92 : StrucFunc_t fStrucFunc; // Structure function
93 : TString fProjectile; // Projectile
94 : TString fTarget; // Target
95 : Int_t fDefMDCY[501]; // ! Default decay switches per particle
96 : Int_t fDefMDME[2001]; // ! Default decay switches per mode
97 : Double_t fZQuench[4]; // ! Quenching fractions for this even
98 : Double_t fXJet; // ! Jet production point X
99 : Double_t fYJet; // ! Jet production point Y
100 : Int_t fNGmax; // Maximum number of radiated gluons in quenching
101 : Float_t fZmax; // Maximum energy loss in quenching
102 : AliFastGlauber* fGlauber; // ! The Glauber model
103 : AliQuenchingWeights* fQuenchingWeights; // ! The Quenching Weights model
104 : static AliPythia6* fgAliPythia; // Pointer to single instance
105 : private:
106 : AliPythia6();
107 : AliPythia6(const AliPythia6& pythia);
108 : void ConfigHeavyFlavor();
109 : void AtlasTuning();
110 : void AtlasTuningMC09();
111 2 : ClassDef(AliPythia6,1) //ALICE UI to PYTHIA
112 : };
113 :
114 : #endif
115 :
116 :
117 :
118 :
119 :
|