]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliPythia.h
All coding rule violations except RS3 corrected
[u/mrichter/AliRoot.git] / EVGEN / AliPythia.h
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 <TPythia.h>
9 #include "GenTypeDefs.h"
10
11 class AliPythia:public TPythia
12 {
13  public:
14     AliPythia();
15     virtual ~AliPythia(){;}
16     // convert to compressed code and print result (for debugging only)
17     virtual Int_t CheckedLuComp(Int_t kf);
18     // entry to the corresponding lujet function
19     virtual void Lu1Ent(int flag, int idpart, 
20                         float mom, float theta,float phi);
21     // Decay a Particle
22     virtual void DecayParticle
23         (Int_t idpart, Float_t mom, Float_t theta,Float_t phi);
24     //
25     // Pythia initialisation for selected processes
26     virtual void ProcInit
27         (Process_t process, Float_t energy, StrucFunc_t strucfunc);
28     //
29     // Count decay products
30     virtual Int_t CountProducts(Int_t channel, Int_t particle);
31     
32     //
33     // Force decay modes
34     //
35     // select type and multiplicity of the decay product
36     virtual void ForceParticleDecay(Int_t particle,Int_t product,Int_t mult);
37     //
38     // force a particular decy-type
39     virtual void ForceDecay(Decay_t  decay);
40     // don't force any decay
41     virtual void AllowAllDecays();
42     
43     //
44     // Define heavy mesons to GEANT and make correspondance
45     // GEANT - Pythia particle code
46     virtual void DefineParticles();
47     //
48     // Convert from Pythia to Geant particle code
49     virtual Int_t  GetGeantCode(Int_t kf);
50     //
51     // Get sum of branching ratios for forced decays
52     virtual Float_t GetBraPart(Int_t kf);
53  protected:
54     Process_t     fProcess;         // Process type
55     Decay_t       fDecay;           // Decay channel 
56     Float_t       fEcms;            // Centre of mass energy
57     StrucFunc_t   fStrucFunc;       // Structure function
58     Int_t         fGPCode[501][2];  // Particle codes
59     Float_t       fBraPart[501];    // Branching ratios
60     static        Int_t fgInit;     // Make sure that only one object of type
61                                     // AliPythia is ceated
62
63     ClassDef(AliPythia,1) //ALICE UI to PYTHIA
64 };
65
66 #endif
67
68
69