Line data Source code
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 0 : virtual ~AliDecayerPythia(){;}
24 : virtual void Init();
25 : virtual void Decay(Int_t idpart, TLorentzVector *p);
26 : virtual Int_t ImportParticles(TClonesArray *particles);
27 2 : virtual void SetForceDecay(Decay_t decay) {fDecay=decay;}
28 : virtual void SetForceDecay(Int_t decay)
29 2 : {SetForceDecay((Decay_t) decay);}
30 : virtual void ForceDecay();
31 0 : virtual void SetPatchOmegaDalitz() {fPatchOmegaDalitz = 1;}
32 0 : virtual void SetDecayerExodus() {fDecayerExodus = 1;}
33 0 : virtual void HeavyFlavourOff() {fHeavyFlavour = kFALSE;}
34 0 : 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 0 : 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 Lu1Ent(Int_t flag, Int_t idpart,
45 : Double_t mom, Double_t theta, Double_t phi);
46 : Int_t CountProducts(Int_t channel, Int_t particle);
47 : void ForceParticleDecay(Int_t particle, Int_t product, Int_t mult);
48 : void ForceParticleDecay(Int_t particle, const Int_t* products, Int_t* mult, Int_t npart, Bool_t flag = 0);
49 : void ForceHadronicD(Int_t optUse4Bodies=1, Int_t optUseDtoV0=0);
50 : void ForceOmega();
51 : void ForceLambda();
52 : void SwitchOffHeavyFlavour();
53 : void ForceBeautyUpgrade();
54 : Float_t GetBraPart(Int_t kf);
55 : void Copy(TObject &decayer) const;
56 :
57 : AliDecayerPythia &operator=(const AliDecayerPythia &decayer)
58 : {decayer.Copy(*this);return(*this);}
59 :
60 :
61 : private:
62 : AliPythia* fPythia; //! Pointer to AliPythia
63 : Decay_t fDecay; // Forced decay mode
64 : Float_t fBraPart[501]; //! Branching ratios
65 : Bool_t fHeavyFlavour; //! Flag for heavy flavors
66 : Bool_t fLongLived; //! Flag for long lived particle decay
67 : Bool_t fPatchOmegaDalitz;//! Flag to patch the omega Dalitz decays
68 : Bool_t fDecayerExodus; //! Flag for EXODUS decayer
69 : Bool_t fPi0; //! Flag for pi0 decay
70 : static Bool_t fgInit; //! initialization flag
71 :
72 2 : ClassDef(AliDecayerPythia, 5) // AliDecayer implementation using Pythia
73 : };
74 : #endif
75 :
76 :
77 :
78 :
79 :
80 :
81 :
|