]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliPythia.h
Common vertex related code moved to base class AliGenerator.
[u/mrichter/AliRoot.git] / EVGEN / AliPythia.h
index e0c148bb607b3178a3265f1400a794c19fef8dcb..0f3698f733a0411d4b46893d13fb84af817fced9 100644 (file)
@@ -5,60 +5,57 @@
 
 /* $Id$ */
 
-#include <TPythia.h>
-#include "GenTypeDefs.h"
+#include <TPythia6.h>
+#include <AliRndm.h>
 
-class AliPythia:public TPythia
+typedef enum
+{kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced, kPyJpsi, kPyJpsiChi, kPyMb, kPyJets, kPyDirectGamma}
+Process_t;
+
+typedef enum
+{
+    kDO_Set_1=1006,
+    kGRV_LO=5005,
+    kGRV_HO=5006,
+    kMRS_D_minus=3031,
+    kMRS_D0=3030,
+    kMRS_G=3041,
+    kCTEQ_2pM=4024,
+    kCTEQ_4M=4034,
+    kMRST_cg_LO=3072,
+    kCTEQ_5L=4046,
+    kGRV_LO_98=5012
+}
+StrucFunc_t;
+
+class AliPythia : public TPythia6, public AliRndm
 {
+
  public:
-    AliPythia();
     virtual ~AliPythia(){;}
     // convert to compressed code and print result (for debugging only)
     virtual Int_t CheckedLuComp(Int_t kf);
-    // 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);
-    //
     // 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();
+    // return instance of the singleton
+    static  AliPythia* Instance();
+
  protected:
-    Process_t     fProcess;         // Process type
-    Decay_t       fDecay;           // Decay channel 
-    Float_t       fEcms;            // Centre of mass energy
-    StrucFunc_t   fStrucFunc;       // Structure function
-    Int_t         fGPCode[501][2];  // Particle codes
-    Float_t       fBraPart[501];    // Branching ratios
-    static        Int_t fgInit;     // Make sure that only one object of type
-                                    // AliPythia is ceated
+    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[2000];     //  ! Default decay switches per mode
+    static AliPythia*    fgAliPythia; // Pointer to single instance
+ private: 
+    AliPythia();
 
     ClassDef(AliPythia,1) //ALICE UI to PYTHIA
 };