#100372: Request to port code to allow for event selection from ZDC timing info at...
[u/mrichter/AliRoot.git] / TEvtGen / AliDecayerEvtGen.h
1 #ifndef ALIDECAYEREVTGEN_H
2 #define ALIDECAYEREVTGEN_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5 ///////////////////////////////////////////////////////////////////////////
6 //  Implementation of AliDecayer using EvtGen package. It inherits       //
7 //  from AliDecayer.                                                     //
8 //                                                                       //
9 //  Contact: Giuseppe.Bruno@ba.infn.it  &  Fiorella.Fionda@ba.infn.it    //
10 ///////////////////////////////////////////////////////////////////////////
11
12
13 #include "AliDecayer.h"
14
15 class EvtGen;
16 class EvtRandomEngine;
17 class EvtStdHep;
18 class TLorentzVector;
19 class TClonesArray;
20
21 class AliDecayerEvtGen : public AliDecayer
22 {
23  public:
24   AliDecayerEvtGen();
25   AliDecayerEvtGen(const AliDecayerEvtGen &decayer);
26   virtual ~AliDecayerEvtGen();
27   virtual void  Init();
28   virtual void  Decay(Int_t ipart, TLorentzVector *p);
29   virtual Int_t ImportParticles(TClonesArray *particles);
30   virtual void    SetForceDecay(Decay_t decay) {fDecay=decay;}
31   virtual void    SetForceDecay(Int_t decay){SetForceDecay((Decay_t) decay);}
32   virtual void    ForceDecay();
33   virtual Float_t GetPartialBranchingRatio(Int_t ipart);
34   virtual Float_t GetLifetime(Int_t kf);
35   Char_t*           GetDecayTablePath() {return fDecayTablePath;} 
36   virtual void    ReadDecayTable();
37   Bool_t SetDecayTablePath(Char_t *path);
38    
39   private:
40   void  Copy(TObject &decayer) const;
41   AliDecayerEvtGen &operator=(const AliDecayerEvtGen &decayer) 
42       {decayer.Copy(*this);return(*this);}
43
44   protected:
45   EvtRandomEngine *fRandomEngine;  //!pointer to EvtRandomEngine to generate random number   
46   EvtGen *fGenerator;              //!pointer to EvtGen class interface 
47   EvtStdHep *fEvtstdhep;           //!pointer to EvtGen common block
48   Char_t *fDecayTablePath;         //!pointer to decay table path
49   Char_t *fParticleTablePath;      //!pointer to particle table path
50   Decay_t     fDecay;              // Forced decay case         
51
52   ClassDef(AliDecayerEvtGen,0)  //AliDecayer implementation using EvtGen 
53 };
54
55 //converts from mm/c to s
56 const Double_t kconv=0.001/2.999792458e8;
57
58 #endif
59
60