Classed imported from EVGEN.
[u/mrichter/AliRoot.git] / PYTHIA6 / AliPythia.h
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,
14  kPyCharmPbMNR, kPyD0PbMNR, kPyBeautyPbMNR}
15 Process_t;
16 /*
17 typedef enum
18 {
19     kDOSet1     = 1006,
20     kGRVLO      = 5005,
21     kGRVHO      = 5006,
22     kMRSDminus  = 3031,
23     kMRSD0      = 3030,
24     kMRSG       = 3041,
25     kCTEQ2pM    = 4024,
26     kCTEQ4L     = 4032,
27     kCTEQ4M     = 4034,
28     kMRSTcgLO   = 3072,
29     kCTEQ5L     = 4046,
30     kGRVLO98    = 5012
31 }
32 StrucFunc_t;
33 */
34 class AliPythia : public TPythia6, public AliRndm
35 {
36
37  public:
38     virtual ~AliPythia(){;}
39     // convert to compressed code and print result (for debugging only)
40     virtual Int_t CheckedLuComp(Int_t kf);
41     // Pythia initialisation for selected processes
42     virtual void ProcInit
43         (Process_t process, Float_t energy, StrucFunc_t strucfunc);
44     // treat protons as inside nuclei
45     virtual void  SetNuclei(Int_t a1, Int_t a2);
46     // Print particle properties
47     virtual void PrintParticles();
48     virtual void ResetDecayTable();
49     virtual void SetDecayTable();
50     virtual void Pycell(Int_t& nclus);
51     virtual void Pyclus(Int_t& nclus);
52     // return instance of the singleton
53     static  AliPythia* Instance();
54
55  protected:
56     Process_t     fProcess;           // Process type
57     Float_t       fEcms;              // Centre of mass energy
58     StrucFunc_t   fStrucFunc;         // Structure function
59     Int_t         fDefMDCY[501];      //  ! Default decay switches per particle
60     Int_t         fDefMDME[2001];     //  ! Default decay switches per mode
61     static AliPythia*    fgAliPythia; // Pointer to single instance
62  private: 
63     AliPythia();
64
65     ClassDef(AliPythia,1) //ALICE UI to PYTHIA
66 };
67
68 #endif
69
70
71