ROOT logo
#ifndef ALIDECAYERPYTHIA_H
#define ALIDECAYERPYTHIA_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

// Implementation of AliDecayer using Pythia
// Method forwarding to the AliPythia instance.
// Author: andreas.morsch@cern.ch

#include "AliDecayer.h"
class AliPythia;
class TClonesArrray;

class AliDecayerPythia :
public AliDecayer
{
 public:
    AliDecayerPythia();
    AliDecayerPythia(const AliDecayerPythia &decayer);
    //    
    virtual         ~AliDecayerPythia(){;}
    virtual void    Init();
    virtual void    Decay(Int_t idpart, TLorentzVector *p);
    virtual Int_t   ImportParticles(TClonesArray *particles);
    virtual void    SetForceDecay(Decay_t decay) {fDecay=decay;}
    virtual void    SetForceDecay(Int_t decay)
      {SetForceDecay((Decay_t) decay);}
    virtual void    ForceDecay();
    virtual void    SetPatchOmegaDalitz() {fPatchOmegaDalitz = 1;}
    virtual void    SetDecayerExodus()    {fDecayerExodus = 1;}
    virtual void    HeavyFlavourOff() {fHeavyFlavour = kFALSE;}
    virtual void    DecayLongLivedParticles()  {fLongLived    = kTRUE;}
    virtual Float_t GetPartialBranchingRatio(Int_t ipart);
    virtual Float_t GetLifetime(Int_t kf);
    virtual void    SwitchOffBDecay();
    virtual void    SwitchOffPi0() {fPi0 = 0;}
    virtual void    SwitchOffParticle(Int_t kf);
    virtual void    WriteDecayTable();
    virtual void    ReadDecayTable();
    
 private:
    void     DefineParticles();
    void     Lu1Ent(Int_t flag, Int_t idpart, 
		    Double_t mom, Double_t theta, Double_t phi);
    Int_t    CountProducts(Int_t channel, Int_t particle);
    void     ForceParticleDecay(Int_t particle, Int_t product, Int_t mult);
    void     ForceParticleDecay(Int_t particle, const Int_t* products, Int_t* mult, Int_t npart, Bool_t flag = 0);
    void     ForceHadronicD(Int_t optUser4Bodies=1);
    void     ForceOmega();
    void     ForceLambda();
    void     SwitchOffHeavyFlavour();
    void     ForceBeautyUpgrade();
    Float_t  GetBraPart(Int_t kf);
    void     Copy(TObject &decayer) const;

    AliDecayerPythia &operator=(const AliDecayerPythia &decayer) 
    {decayer.Copy(*this);return(*this);}
    
    
 private:
    AliPythia*  fPythia;          //! Pointer to AliPythia
    Decay_t     fDecay;           //  Forced decay mode
    Float_t     fBraPart[501];    //! Branching ratios
    Bool_t      fHeavyFlavour;    //! Flag for heavy flavors
    Bool_t      fLongLived;       //! Flag for long lived particle decay
    Bool_t      fPatchOmegaDalitz;//! Flag to patch the omega Dalitz decays 
    Bool_t      fDecayerExodus;  //! Flag for EXODUS decayer
    Bool_t      fPi0;             //! Flag for pi0 decay 
    static Bool_t fgInit;         //! initialization flag 
    
    ClassDef(AliDecayerPythia, 5) // AliDecayer implementation using Pythia  
};
#endif







 AliDecayerPythia.h:1
 AliDecayerPythia.h:2
 AliDecayerPythia.h:3
 AliDecayerPythia.h:4
 AliDecayerPythia.h:5
 AliDecayerPythia.h:6
 AliDecayerPythia.h:7
 AliDecayerPythia.h:8
 AliDecayerPythia.h:9
 AliDecayerPythia.h:10
 AliDecayerPythia.h:11
 AliDecayerPythia.h:12
 AliDecayerPythia.h:13
 AliDecayerPythia.h:14
 AliDecayerPythia.h:15
 AliDecayerPythia.h:16
 AliDecayerPythia.h:17
 AliDecayerPythia.h:18
 AliDecayerPythia.h:19
 AliDecayerPythia.h:20
 AliDecayerPythia.h:21
 AliDecayerPythia.h:22
 AliDecayerPythia.h:23
 AliDecayerPythia.h:24
 AliDecayerPythia.h:25
 AliDecayerPythia.h:26
 AliDecayerPythia.h:27
 AliDecayerPythia.h:28
 AliDecayerPythia.h:29
 AliDecayerPythia.h:30
 AliDecayerPythia.h:31
 AliDecayerPythia.h:32
 AliDecayerPythia.h:33
 AliDecayerPythia.h:34
 AliDecayerPythia.h:35
 AliDecayerPythia.h:36
 AliDecayerPythia.h:37
 AliDecayerPythia.h:38
 AliDecayerPythia.h:39
 AliDecayerPythia.h:40
 AliDecayerPythia.h:41
 AliDecayerPythia.h:42
 AliDecayerPythia.h:43
 AliDecayerPythia.h:44
 AliDecayerPythia.h:45
 AliDecayerPythia.h:46
 AliDecayerPythia.h:47
 AliDecayerPythia.h:48
 AliDecayerPythia.h:49
 AliDecayerPythia.h:50
 AliDecayerPythia.h:51
 AliDecayerPythia.h:52
 AliDecayerPythia.h:53
 AliDecayerPythia.h:54
 AliDecayerPythia.h:55
 AliDecayerPythia.h:56
 AliDecayerPythia.h:57
 AliDecayerPythia.h:58
 AliDecayerPythia.h:59
 AliDecayerPythia.h:60
 AliDecayerPythia.h:61
 AliDecayerPythia.h:62
 AliDecayerPythia.h:63
 AliDecayerPythia.h:64
 AliDecayerPythia.h:65
 AliDecayerPythia.h:66
 AliDecayerPythia.h:67
 AliDecayerPythia.h:68
 AliDecayerPythia.h:69
 AliDecayerPythia.h:70
 AliDecayerPythia.h:71
 AliDecayerPythia.h:72
 AliDecayerPythia.h:73
 AliDecayerPythia.h:74
 AliDecayerPythia.h:75
 AliDecayerPythia.h:76
 AliDecayerPythia.h:77
 AliDecayerPythia.h:78
 AliDecayerPythia.h:79
 AliDecayerPythia.h:80
 AliDecayerPythia.h:81
 AliDecayerPythia.h:82