]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/AliPythia8.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PYTHIA8 / AliPythia8.h
1 #ifndef ALIPYTHIA8_H
2 #define ALIPYTHIA8_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 "Analysis.h"
9 #include "AliPythiaBase.h"
10 #include "AliTPythia8.h"
11
12 class AliStack;
13 class AliPythia8 :public AliTPythia8, public AliPythiaBase
14 {
15
16  public:
17     AliPythia8();
18     AliPythia8(const AliPythia8& pythia);
19     virtual ~AliPythia8() {;}
20     virtual Int_t Version() {return (8);}
21     // convert to compressed code and print result (for debugging only)
22     virtual Int_t CheckedLuComp(Int_t /*kf*/) {return -1;}
23     // Pythia initialisation for selected processes
24     virtual void  ProcInit (Process_t process, Float_t energy, StrucFunc_t strucfunc, Int_t tune);
25     virtual void  SetSeed(UInt_t seed);
26     virtual void  GenerateEvent();
27     virtual void  GenerateMIEvent();
28     virtual void  HadronizeEvent();
29     virtual Int_t GetNumberOfParticles() {return GetN();}
30     virtual void  SetNumberOfParticles(Int_t i);
31     virtual void  EditEventList(Int_t i);
32     virtual void  PrintStatistics();
33     virtual void  EventListing();    
34     virtual Int_t GetParticles(TClonesArray *particles) {return ImportParticles(particles, "All");}
35     // Treat protons as inside nuclei
36     virtual void  SetNuclei(Int_t a1, Int_t a2);
37     // Print particle properties
38     virtual void PrintParticles();
39     // Reset the decay table
40     virtual void ResetDecayTable();
41     //
42     // Common Physics Configuration
43     virtual void SetPtHardRange(Float_t ptmin, Float_t ptmax);
44     virtual void SetYHardRange(Float_t ymin, Float_t ymax);
45     virtual void SetFragmentation(Int_t flag);
46     virtual void SetInitialAndFinalStateRadiation(Int_t flag1, Int_t flag2);
47     virtual void SetIntrinsicKt(Float_t kt);
48     virtual void SwitchHFOff();
49     virtual void SetPycellParameters(Float_t etamax, Int_t neta, Int_t nphi,
50                                      Float_t thresh, Float_t etseed, Float_t minet, Float_t r);
51     virtual void GetJet(Int_t i, Float_t& px, Float_t& py, Float_t& pz, Float_t& e);
52     virtual void ModifiedSplitting();
53     virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k,
54                                Int_t iECMethod, Float_t zmax = 0.97,
55                                Int_t ngmax = 30);
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 Float_t GetPtHard();
63     Int_t GetNMPI() {return (Pythia8()->info.nMPI());}
64
65     //
66     //
67     virtual void  SetDecayTable();
68     virtual void  Pystat(Int_t /*i*/){;}
69     virtual void  Pylist(Int_t /*i*/){;}
70     virtual Int_t ProcessCode();
71     virtual void  Pycell(Int_t& nclus);
72     virtual void  Pyclus(Int_t& nclus);
73     virtual void  Pyshow(Int_t /*ip1*/, Int_t /*ip2*/, Double_t /*qmax*/) {;}
74     virtual void  Pyrobo(Int_t /*imi*/, Int_t /*ima*/, Double_t /*the*/,
75                          Double_t /*phi*/, Double_t /*bex*/, Double_t /*bey*/, Double_t /*bez*/) {;}
76     static  AliPythia8* Instance();
77     virtual void Quench() {;}
78     // Assignment Operator
79     AliPythia8 & operator=(const AliPythia8 & rhs);
80     void Copy(TObject&) const;
81     //
82     // Not yet implemented
83     //
84     virtual void Pyquen(Double_t, Int_t, Double_t);
85     virtual void Pyexec() {;}
86     virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]);
87     virtual void LoadEvent(AliStack* stack, Int_t flag, Int_t reHadr);
88     virtual void ConfigHeavyFlavor();
89     virtual void AtlasTuning();
90  protected:
91     Process_t             fProcess;           // Process type
92     Float_t               fEcms;              // Centre of mass energy
93     StrucFunc_t           fStrucFunc;         // Structure function
94     Int_t                 fDefMDCY[501];      //  ! Default decay switches per particle
95     Int_t                 fDefMDME[2001];     //  ! Default decay switches per mode
96     Double_t              fZQuench[4];        //  ! Quenching fractions for this even
97     Pythia8::CellJet      fCellJet;           //  ! Cell jet object
98     Float_t               fEtSeed;            //  ! Et seed for cell jets 
99     Float_t               fMinEtJet;          //  ! Min jet et 
100     Float_t               fRJet;              //  ! Radius for cell jets
101     Pythia8::ClusterJet   fClusterJet;        //  ! Cluster jet object
102     Float_t               fYScale;            //  ! cut-off joining scale
103     Float_t               fPtScale;           //  ! cut-off joining scale
104     Int_t                 fNJetMin;           //  ! min. number of jets
105     Int_t                 fNJetMax;           //  ! max. number of jets
106     static AliPythia8*    fgAliPythia8;       //    Pointer to single instance
107
108     ClassDef(AliPythia8, 1) //ALICE UI to PYTHIA8
109 };
110
111 #endif
112
113
114
115
116