#ifndef ALIPYTHIA_H #define ALIPYTHIA_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /* $Id$ */ #include #include #include typedef enum {kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced, kPyJpsi, kPyJpsiChi, kPyMb, kPyMbNonDiffr, kPyJets, kPyDirectGamma, kPyCharmPbPbMNR, kPyD0PbPbMNR, kPyDPlusPbPbMNR, kPyDPlusStrangePbPbMNR, kPyBeautyPbPbMNR, kPyCharmpPbMNR, kPyD0pPbMNR, kPyDPluspPbMNR, kPyDPlusStrangepPbMNR, kPyBeautypPbMNR, kPyCharmppMNR, kPyCharmppMNRwmi, kPyD0ppMNR, kPyDPlusppMNR, kPyDPlusStrangeppMNR, kPyBeautyppMNR, kPyBeautyppMNRwmi, kPyW, kPyZ, kPyMbMSEL1, kPyOldUEQ2ordered, kPyOldUEQ2ordered2, kPyOldPopcorn} Process_t; /* typedef enum { kDOSet1 = 1006, kGRVLO = 5005, kGRVHO = 5006, kMRSDminus = 3031, kMRSD0 = 3030, kMRSG = 3041, kCTEQ2pM = 4024, kCTEQ4L = 4032, kCTEQ4M = 4034, kMRSTcgLO = 3072, kCTEQ5L = 4046, kGRVLO98 = 5012 } StrucFunc_t; */ class AliFastGlauber; class AliQuenchingWeights; class AliPythia : public TPythia6, public AliRndm { public: virtual ~AliPythia(){;} // convert to compressed code and print result (for debugging only) virtual Int_t CheckedLuComp(Int_t kf); // Pythia initialisation for selected processes virtual void ProcInit (Process_t process, Float_t energy, StrucFunc_t strucfunc); // treat protons as inside nuclei virtual void SetNuclei(Int_t a1, Int_t a2); // Print particle properties virtual void PrintParticles(); virtual void ResetDecayTable(); virtual void SetDecayTable(); virtual void Pyevnw(); virtual void Pycell(Int_t& nclus); virtual void Pyclus(Int_t& nclus); virtual void Pyshow(Int_t ip1, Int_t ip2, Double_t qmax); virtual void Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez); virtual void InitQuenching(Float_t bmin, Float_t bmax, Float_t k, Int_t iECMethod); virtual void Pyquen(Double_t a, Int_t ibf, Double_t b); virtual void GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4]); // return instance of the singleton static AliPythia* Instance(); virtual void Quench(); protected: Process_t fProcess; // Process type Float_t fEcms; // Centre of mass energy StrucFunc_t fStrucFunc; // Structure function Int_t fDefMDCY[501]; // ! Default decay switches per particle Int_t fDefMDME[2001]; // ! Default decay switches per mode Double_t fZQuench[4]; // ! Quenching fractions for this even Double_t fXJet; // ! Jet production point X Double_t fYJet; // ! Jet production point Y AliFastGlauber* fGlauber; // ! The Glauber model AliQuenchingWeights* fQuenchingWeights; // ! The Quenching Weights model static AliPythia* fgAliPythia; // Pointer to single instance private: AliPythia(); void ConfigHeavyFlavor(); void AtlasTuning(); ClassDef(AliPythia,1) //ALICE UI to PYTHIA }; #endif