bugfix: boundery check for static hit array
[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,
0a0cbcfd 19 kPyOldUEQ2ordered, kPyOldUEQ2ordered2, kPyOldPopcorn,
f529e69b 20 kPyLhwgMb,kPyMbDefault}
8d2cd130 21Process_t;
fa49ba58 22
0f482ae4 23class AliFastGlauber;
24class AliQuenchingWeights;
25
8d2cd130 26class AliPythia : public TPythia6, public AliRndm
27{
28
29 public:
30 virtual ~AliPythia(){;}
31 // convert to compressed code and print result (for debugging only)
32 virtual Int_t CheckedLuComp(Int_t kf);
33 // Pythia initialisation for selected processes
34 virtual void ProcInit
35 (Process_t process, Float_t energy, StrucFunc_t strucfunc);
36 // treat protons as inside nuclei
37 virtual void SetNuclei(Int_t a1, Int_t a2);
38 // Print particle properties
39 virtual void PrintParticles();
40 virtual void ResetDecayTable();
41 virtual void SetDecayTable();
16a82508 42 virtual void Pyevnw();
8d2cd130 43 virtual void Pycell(Int_t& nclus);
44 virtual void Pyclus(Int_t& nclus);
452af8c7 45 virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax);
46 virtual void Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez);
32c8e463 47 virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod, Float_t zmax = 0.97, Int_t ngmax = 30);
12cb0bc0 48 virtual void SetPyquenParameters(Double_t t0, Double_t tau0, Int_t nf, Int_t iengl, Int_t iangl);
992f2843 49 virtual void Pyquen(Double_t a, Int_t ibf, Double_t b);
b280c4cc 50 virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]);
8d2cd130 51 // return instance of the singleton
52 static AliPythia* Instance();
452af8c7 53 virtual void Quench();
e8a8adcd 54 // Assignment Operator
55 AliPythia & operator=(const AliPythia & rhs);
56 void Copy(TObject&) const;
8d2cd130 57 protected:
0f482ae4 58 Process_t fProcess; // Process type
59 Float_t fEcms; // Centre of mass energy
60 StrucFunc_t fStrucFunc; // Structure function
61 Int_t fDefMDCY[501]; // ! Default decay switches per particle
62 Int_t fDefMDME[2001]; // ! Default decay switches per mode
b280c4cc 63 Double_t fZQuench[4]; // ! Quenching fractions for this even
64 Double_t fXJet; // ! Jet production point X
65 Double_t fYJet; // ! Jet production point Y
32c8e463 66 Int_t fNGmax; // Maximum number of radiated gluons in quenching
67 Float_t fZmax; // Maximum energy loss in quenching
0f482ae4 68 AliFastGlauber* fGlauber; // ! The Glauber model
69 AliQuenchingWeights* fQuenchingWeights; // ! The Quenching Weights model
70 static AliPythia* fgAliPythia; // Pointer to single instance
8d2cd130 71 private:
72 AliPythia();
e8a8adcd 73 AliPythia(const AliPythia& pythia);
3dc3ec94 74 void ConfigHeavyFlavor();
e0e89f40 75 void AtlasTuning();
8d2cd130 76 ClassDef(AliPythia,1) //ALICE UI to PYTHIA
77};
78
79#endif
80
81
82
90d7b703 83
589380c6 84