Moving required CMake version from 2.8.4 to 2.8.8
[u/mrichter/AliRoot.git] / TEvtGen / AliGenEvtGen.h
1 #ifndef ALIGENEVTGEN_H
2 #define ALIGENEVTGEN_H
3
4 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6 ///////////////////////////////////////////////////////////////////////////
7 //                                                                       //
8 //  AliGenEvtGen class to performs decays of particles generated by a    //
9 //  previous generator. It inherits from AliGenerator.                   //
10 //                                                                       //  
11 //  Origin: Giuseppe.Bruno@ba.infn.it  &  Fiorella.Fionda@ba.infn.it     //
12 ///////////////////////////////////////////////////////////////////////////
13
14 #include "AliGenerator.h"
15 #include "AliDecayerEvtGen.h"
16
17 class TParticle;
18
19 class AliGenEvtGen : public AliGenerator {
20
21   public:
22
23   typedef enum {kAllPart, kBeautyPart, kCharmPart} DecayOff_t;
24
25   AliGenEvtGen();
26  
27   ~AliGenEvtGen();
28
29   virtual void Init();
30   virtual void Generate(); 
31   AliDecayer* GetDecayer() {return fDecayer;}
32   void SetForceDecay(Decay_t decay = kAll) {fForceDecay = decay;} //set a decay mode
33   Bool_t SetUserDecayTable(Char_t *path);
34   void SetParticleSwitchedOff(DecayOff_t decay) {fSwitchOff = decay;} //set particles to be decayed by EvtGen
35   
36   protected:
37   Int_t GetFlavour(Int_t pdgCode); 
38   
39  
40   private:
41   AliStack *fStack;                //!pointer to AliStack
42   AliDecayerEvtGen  *fDecayer;     //!pointer to AliDecayerEvtGen
43   Decay_t  fForceDecay;            //!decay case
44   DecayOff_t fSwitchOff;           //!particle decay  
45   Bool_t fUserDecay;               //!TRUE if a user decay table is set 
46   Char_t    *fUserDecayTablePath;  //!pointer to path of user decay table
47
48   AliGenEvtGen(const AliGenEvtGen &EvtGen);
49   AliGenEvtGen & operator=(const AliGenEvtGen & rhs);
50   
51   
52
53   ClassDef(AliGenEvtGen,0) //AliGenerator interface to EvtGen
54 };
55
56 ////////////////////////////////////////////////////////////////////////////////////////////////
57
58 #endif