]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA6/AliDecayerPythia.h
composition of the Alluminum alloy that constitutes the ITS-TPC support rings updated...
[u/mrichter/AliRoot.git] / PYTHIA6 / AliDecayerPythia.h
1 #ifndef ALIDECAYERPYTHIA_H
2 #define ALIDECAYERPYTHIA_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 // Implementation of AliDecayer using Pythia
9 // Method forwarding to the AliPythia instance.
10 // Author: andreas.morsch@cern.ch
11
12 #include "AliDecayer.h"
13 class AliPythia;
14 class TClonesArrray;
15
16 class AliDecayerPythia :
17 public AliDecayer
18 {
19  public:
20     AliDecayerPythia();
21     AliDecayerPythia(const AliDecayerPythia &decayer);
22     //    
23     virtual         ~AliDecayerPythia(){;}
24     virtual void    Init();
25     virtual void    Decay(Int_t idpart, TLorentzVector *p);
26     virtual Int_t   ImportParticles(TClonesArray *particles);
27     virtual void    SetForceDecay(Decay_t decay) {fDecay=decay;}
28     virtual void    SetForceDecay(Int_t decay)
29       {SetForceDecay((Decay_t) decay);}
30     virtual void    ForceDecay();
31     virtual void    SetPatchOmegaDalitz() {fPatchOmegaDalitz = 1;}
32     virtual void    SetDecayerExodus()    {fDecayerExodus = 1;}
33     virtual void    HeavyFlavourOff() {fHeavyFlavour = kFALSE;}
34     virtual void    DecayLongLivedParticles()  {fLongLived    = kTRUE;}
35     virtual Float_t GetPartialBranchingRatio(Int_t ipart);
36     virtual Float_t GetLifetime(Int_t kf);
37     virtual void    SwitchOffBDecay();
38     virtual void    SwitchOffPi0() {fPi0 = 0;}
39     virtual void    SwitchOffParticle(Int_t kf);
40     virtual void    WriteDecayTable();
41     virtual void    ReadDecayTable();
42     
43  private:
44     void     DefineParticles();
45     void     Lu1Ent(Int_t flag, Int_t idpart, 
46                     Double_t mom, Double_t theta, Double_t phi);
47     Int_t    CountProducts(Int_t channel, Int_t particle);
48     void     ForceParticleDecay(Int_t particle, Int_t product, Int_t mult);
49     void     ForceParticleDecay(Int_t particle, const Int_t* products, Int_t* mult, Int_t npart, Bool_t flag = 0);
50     void     ForceHadronicD(Int_t optUser4Bodies=1);
51     void     ForceOmega();
52     void     ForceLambda();
53     void     SwitchOffHeavyFlavour();
54     void     ForceBeautyUpgrade();
55     Float_t  GetBraPart(Int_t kf);
56     void     Copy(TObject &decayer) const;
57
58     AliDecayerPythia &operator=(const AliDecayerPythia &decayer) 
59     {decayer.Copy(*this);return(*this);}
60     
61     
62  private:
63     AliPythia*  fPythia;          //! Pointer to AliPythia
64     Decay_t     fDecay;           //  Forced decay mode
65     Float_t     fBraPart[501];    //! Branching ratios
66     Bool_t      fHeavyFlavour;    //! Flag for heavy flavors
67     Bool_t      fLongLived;       //! Flag for long lived particle decay
68     Bool_t      fPatchOmegaDalitz;//! Flag to patch the omega Dalitz decays 
69     Bool_t      fDecayerExodus;  //! Flag for EXODUS decayer
70     Bool_t      fPi0;             //! Flag for pi0 decay 
71     static Bool_t fgInit;         //! initialization flag 
72     
73     ClassDef(AliDecayerPythia, 5) // AliDecayer implementation using Pythia  
74 };
75 #endif
76
77
78
79
80
81
82