]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PYTHIA6/AliDecayerPythia.h
kPsiPrimeJpsiDiElectron added
[u/mrichter/AliRoot.git] / PYTHIA6 / AliDecayerPythia.h
... / ...
CommitLineData
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();
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 HeavyFlavourOff() {fHeavyFlavour = kFALSE;}
32 virtual void DecayLongLivedParticles() {fLongLived = kTRUE;}
33 virtual Float_t GetPartialBranchingRatio(Int_t ipart);
34 virtual Float_t GetLifetime(Int_t kf);
35 virtual void SwitchOffBDecay();
36 virtual void WriteDecayTable();
37 virtual void ReadDecayTable();
38
39 private:
40 void DefineParticles();
41 void Lu1Ent(Int_t flag, Int_t idpart,
42 Double_t mom, Double_t theta, Double_t phi);
43 Int_t CountProducts(Int_t channel, Int_t particle);
44 void ForceParticleDecay(Int_t particle, Int_t product, Int_t mult);
45 void ForceParticleDecay(Int_t particle, Int_t* products, Int_t* mult, Int_t npart, Bool_t flag = 0);
46 void ForceHadronicD(Int_t optUser4Bodies=1);
47 void ForceOmega();
48 void ForceLambda();
49 void SwitchOffHeavyFlavour();
50 Float_t GetBraPart(Int_t kf);
51 void Copy(TObject &decayer) const;
52
53 AliDecayerPythia &operator=(const AliDecayerPythia &decayer)
54 {decayer.Copy(*this);return(*this);}
55
56
57 private:
58 AliPythia* fPythia; //! Pointer to AliPythia
59 Decay_t fDecay; // Forced decay mode
60 Float_t fBraPart[501]; //! Branching ratios
61 Bool_t fHeavyFlavour; //! Flag for heavy flavors
62 Bool_t fLongLived; //! Flag for long lived particle decay
63 static Bool_t fgInit; //! initialization flag
64
65 ClassDef(AliDecayerPythia, 3) // AliDecayer implementation using Pythia
66};
67#endif
68
69
70
71
72
73
74