Decayer with alice decay options using Pythia8
[u/mrichter/AliRoot.git] / PYTHIA8 / AliDecayerPythia8.h
1 #ifndef ALIDECAYERPYTHIA8_H
2 #define ALIDECAYERPYTHIA8_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 TVirtualMCDecayer using Pythia8
9 // Author: andreas.morsch@cern.ch
10
11 #include <TPythia8Decayer.h>
12 #include <ParticleData.h>
13 #include "AliDecayer.h"
14
15 class AliDecayerPythia8 : public TPythia8Decayer {
16  public:
17   AliDecayerPythia8();
18   virtual ~AliDecayerPythia8(){;}
19   virtual void    SetForceDecay(Decay_t decay) {fDecay=decay;}
20   virtual void    SetForceDecay(Int_t decay)   {SetForceDecay((Decay_t) decay);}
21   virtual void    ForceDecay();
22   virtual Float_t GetPartialBranchingRatio(Int_t ipart);
23   virtual void    HeavyFlavourOff() {fHeavyFlavour = kFALSE;}
24   virtual Float_t GetLifetime(Int_t kf);
25  private:
26   Int_t    CountProducts(Pythia8::DecayChannel& decCh, Int_t particle);
27   void     ForceParticleDecay(Int_t particle, Int_t product, Int_t mult);
28   void     ForceParticleDecay(Int_t particle, Int_t* products, Int_t* mult, Int_t npart);
29   void     SwitchOffHeavyFlavour();
30   void     ForceHadronicD(Int_t optUser4Bodies = 1);
31  protected:
32   Decay_t     fDecay;           //  Forced decay mode
33   Bool_t      fHeavyFlavour;    //! Flag for heavy flavors
34   ClassDef(AliDecayerPythia8, 1) // Particle Decayer using Pythia8
35 };
36 #endif
37
38
39
40
41
42
43