]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliPythia.h
New class used for primary vertex finding (AliITSVertexerTracks)
[u/mrichter/AliRoot.git] / EVGEN / AliPythia.h
index 90dbb69c0aabac60fb1af2ee9e9165c2c495f765..a71b7fd927f73aa6d1472d90ef33aecfefe386c0 100644 (file)
@@ -1,69 +1,67 @@
-#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
 };