RWGCF converted to native cmake
[u/mrichter/AliRoot.git] / PYTHIA6 / AliPythia6 / AliDecayerPythia.h
CommitLineData
8d2cd130 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"
13class AliPythia;
14class TClonesArrray;
15
16class AliDecayerPythia :
17public AliDecayer
18{
19 public:
20 AliDecayerPythia();
e8a8adcd 21 AliDecayerPythia(const AliDecayerPythia &decayer);
22 //
8d2cd130 23 virtual ~AliDecayerPythia(){;}
8d2cd130 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();
b8f95537 31 virtual void SetPatchOmegaDalitz() {fPatchOmegaDalitz = 1;}
d7d0c637 32 virtual void SetDecayerExodus() {fDecayerExodus = 1;}
51387949 33 virtual void HeavyFlavourOff() {fHeavyFlavour = kFALSE;}
d3553100 34 virtual void DecayLongLivedParticles() {fLongLived = kTRUE;}
8d2cd130 35 virtual Float_t GetPartialBranchingRatio(Int_t ipart);
36 virtual Float_t GetLifetime(Int_t kf);
1fefb2d4 37 virtual void SwitchOffBDecay();
fcdfb7ba 38 virtual void SwitchOffPi0() {fPi0 = 0;}
8e95b775 39 virtual void SwitchOffParticle(Int_t kf);
8d2cd130 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);
5b4a0c82 49 void ForceParticleDecay(Int_t particle, const Int_t* products, Int_t* mult, Int_t npart, Bool_t flag = 0);
af33df34 50 void ForceHadronicD(Int_t optUser4Bodies=1);
51387949 51 void ForceOmega();
d3553100 52 void ForceLambda();
51387949 53 void SwitchOffHeavyFlavour();
482c0e0c 54 void ForceBeautyUpgrade();
8d2cd130 55 Float_t GetBraPart(Int_t kf);
51387949 56 void Copy(TObject &decayer) const;
043f1ca8 57
58 AliDecayerPythia &operator=(const AliDecayerPythia &decayer)
8d2cd130 59 {decayer.Copy(*this);return(*this);}
60
61
62 private:
63 AliPythia* fPythia; //! Pointer to AliPythia
51387949 64 Decay_t fDecay; // Forced decay mode
8d2cd130 65 Float_t fBraPart[501]; //! Branching ratios
51387949 66 Bool_t fHeavyFlavour; //! Flag for heavy flavors
d3553100 67 Bool_t fLongLived; //! Flag for long lived particle decay
b8f95537 68 Bool_t fPatchOmegaDalitz;//! Flag to patch the omega Dalitz decays
d7d0c637 69 Bool_t fDecayerExodus; //! Flag for EXODUS decayer
fcdfb7ba 70 Bool_t fPi0; //! Flag for pi0 decay
8d2cd130 71 static Bool_t fgInit; //! initialization flag
72
d7d0c637 73 ClassDef(AliDecayerPythia, 5) // AliDecayer implementation using Pythia
8d2cd130 74};
75#endif
76
77
78
79
80
81
82