Updated maximum number of particles possible in HepMC
[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 #include "AliDecayer.h"
13
14 class EvtGen;
15 class EvtStdlibRandomEngine;
16 class EvtAbsRadCorr;
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   EvtStdlibRandomEngine *fRandomEngine;  //!pointer to EvtRandomEngine to generate random number   
46   EvtAbsRadCorr *fRadCorrEngine;   //!pointer to EvtGenCorrEngine
47   EvtGen *fGenerator;              //!pointer to EvtGen class interface 
48   EvtStdHep *fEvtstdhep;           //!pointer to EvtGen common block
49   Char_t *fDecayTablePath;         //!pointer to decay table path
50   Char_t *fParticleTablePath;      //!pointer to particle table path
51   Decay_t     fDecay;              // Forced decay case         
52
53   ClassDef(AliDecayerEvtGen,0)  //AliDecayer implementation using EvtGen 
54 };
55
56 //converts from mm/c to s
57 const Double_t kconv=0.001/2.999792458e8;
58
59 #endif
60
61