effc++ changes
[u/mrichter/AliRoot.git] / PYTHIA6 / AliPythia.h
CommitLineData
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>
fa49ba58 11
8d2cd130 12typedef enum
13{kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced,
14 kPyJpsi, kPyJpsiChi, kPyMb, kPyMbNonDiffr, kPyJets, kPyDirectGamma,
e0e89f40 15 kPyCharmPbPbMNR, kPyD0PbPbMNR, kPyDPlusPbPbMNR, kPyDPlusStrangePbPbMNR, kPyBeautyPbPbMNR,
16 kPyCharmpPbMNR, kPyD0pPbMNR, kPyDPluspPbMNR, kPyDPlusStrangepPbMNR, kPyBeautypPbMNR,
17 kPyCharmppMNR, kPyCharmppMNRwmi, kPyD0ppMNR, kPyDPlusppMNR, kPyDPlusStrangeppMNR,
d7de4a67 18 kPyBeautyppMNR, kPyBeautyppMNRwmi, kPyW, kPyZ, kPyMbMSEL1,
65f2626c 19 kPyOldUEQ2ordered, kPyOldUEQ2ordered2, kPyOldPopcorn}
8d2cd130 20Process_t;
fa49ba58 21
0f482ae4 22class AliFastGlauber;
23class AliQuenchingWeights;
24
8d2cd130 25class AliPythia : public TPythia6, public AliRndm
26{
27
28 public:
29 virtual ~AliPythia(){;}
30 // convert to compressed code and print result (for debugging only)
31 virtual Int_t CheckedLuComp(Int_t kf);
32 // Pythia initialisation for selected processes
33 virtual void ProcInit
34 (Process_t process, Float_t energy, StrucFunc_t strucfunc);
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 virtual void ResetDecayTable();
40 virtual void SetDecayTable();
16a82508 41 virtual void Pyevnw();
8d2cd130 42 virtual void Pycell(Int_t& nclus);
43 virtual void Pyclus(Int_t& nclus);
452af8c7 44 virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax);
45 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 46 virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod);
992f2843 47 virtual void Pyquen(Double_t a, Int_t ibf, Double_t b);
b280c4cc 48 virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]);
8d2cd130 49 // return instance of the singleton
50 static AliPythia* Instance();
452af8c7 51 virtual void Quench();
8d2cd130 52 protected:
0f482ae4 53 Process_t fProcess; // Process type
54 Float_t fEcms; // Centre of mass energy
55 StrucFunc_t fStrucFunc; // Structure function
56 Int_t fDefMDCY[501]; // ! Default decay switches per particle
57 Int_t fDefMDME[2001]; // ! Default decay switches per mode
b280c4cc 58 Double_t fZQuench[4]; // ! Quenching fractions for this even
59 Double_t fXJet; // ! Jet production point X
60 Double_t fYJet; // ! Jet production point Y
0f482ae4 61 AliFastGlauber* fGlauber; // ! The Glauber model
62 AliQuenchingWeights* fQuenchingWeights; // ! The Quenching Weights model
63 static AliPythia* fgAliPythia; // Pointer to single instance
8d2cd130 64 private:
65 AliPythia();
3dc3ec94 66 void ConfigHeavyFlavor();
e0e89f40 67 void AtlasTuning();
8d2cd130 68 ClassDef(AliPythia,1) //ALICE UI to PYTHIA
69};
70
71#endif
72
73
74
90d7b703 75
589380c6 76