-#ifndef _AliPythia_H
-#define _AliPythia_H
+#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 <TPythia.h>
-#include "GenTypeDefs.h"
-
-class AliPythia:public TPythia
+#include <TPythia6.h>
+#include <AliRndm.h>
+#include <AliStructFuncType.h>
+typedef enum
+{kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced,
+ kPyJpsi, kPyJpsiChi, kPyMb, kPyMbNonDiffr, kPyJets, kPyDirectGamma,
+ kPyCharmPbMNR, kPyD0PbMNR, kPyBeautyPbMNR}
+Process_t;
+/*
+typedef enum
{
- protected:
- Process_t fProcess;
- Decay_t fDecay;
- Float_t fEcms;
- StrucFunc_t fStrucFunc;
- Int_t fGPCode[501][2];
- Float_t fBraPart[501];
-
+ 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 AliPythia : public TPythia6, public AliRndm
+{
+
public:
- static Int_t fgInit;
- AliPythia();
virtual ~AliPythia(){;}
// convert to compressed code and print result (for debugging only)
- virtual Int_t CheckedLuComp(Int_t kf)
- {
- Int_t kc=LuComp(kf);
- printf("\n Lucomp kf,kc %d %d",kf,kc);
- return kc;
- }
- // entry to the corresponding lujet function
- virtual void Lu1Ent(int flag, int idpart,
- float mom, float theta,float phi);
- // Decay a Particle
- virtual void DecayParticle
- (Int_t idpart, Float_t mom, Float_t theta,Float_t phi);
- //
+ virtual Int_t CheckedLuComp(Int_t kf);
// Pythia initialisation for selected processes
virtual void ProcInit
(Process_t process, Float_t energy, StrucFunc_t strucfunc);
- //
- // Count decay products
- virtual Int_t CountProducts(Int_t channel, Int_t particle);
-
- //
- // Force decay modes
- //
- // select type and multiplicity of the decay product
- virtual void ForceParticleDecay(Int_t particle,Int_t product,Int_t mult);
- //
- // force a particular decy-type
- virtual void ForceDecay(Decay_t decay);
- // don't force any decay
- virtual void AllowAllDecays();
-
- //
- // Define heavy mesons to GEANT and make correspondance
- // GEANT - Pythia particle code
- virtual void DefineParticles();
- //
- // Convert from Pythia to Geant particle code
- virtual Int_t GetGeantCode(Int_t kf);
- //
- // Get sum of branching ratios for forced decays
- virtual Float_t GetBraPart(Int_t kf);
+ // 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 Pycell(Int_t& nclus);
+ virtual void Pyclus(Int_t& nclus);
+ // return instance of the singleton
+ static AliPythia* Instance();
+
+ 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
+ static AliPythia* fgAliPythia; // Pointer to single instance
+ private:
+ AliPythia();
+
ClassDef(AliPythia,1) //ALICE UI to PYTHIA
};