]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TGeant4/TG4ExtDecayer.h
update to geant4 4.0 (not yet released)
[u/mrichter/AliRoot.git] / TGeant4 / TG4ExtDecayer.h
1 // $Id$
2 // Category: physics
3 //
4 // Author: I. Hrivnacova
5 //
6 // Class TG4ExtDecayer
7 // -------------------
8 // TG4ExtDecayer class implements the G4VExtDecayer abstract class
9 // with the AliDecayer.
10 // In case a particle has not defined any decay channel
11 // and has not pre-assigned decay products,
12 // the external decayer is called.
13
14 #ifndef TG4_EXT_DECAYER_H
15 #define TG4_EXT_DECAYER_H
16
17 #include <G4VExtDecayer.hh>
18 #include <globals.hh>
19
20 class AliDecayer;
21 class TG4ParticlesManager;
22
23 class G4Track;
24 class G4DecayProducts;
25
26 class TClonesArray;
27
28 class TG4ExtDecayer : public G4VExtDecayer
29 {
30   public:
31     TG4ExtDecayer(AliDecayer* externalDecayer);
32     // --> protected
33     //TG4ExtDecayer(const TG4ExtDecayer& right);
34     virtual ~TG4ExtDecayer();
35
36     virtual G4DecayProducts* ImportDecayProducts(const G4Track& track);
37     
38     // set methods
39     void SetVerboseLevel(G4int verbose);
40     
41     // get methods
42     G4int GetVerboseLevel() const;
43     
44   protected:  
45     TG4ExtDecayer(const TG4ExtDecayer& right);
46
47     // operators
48     TG4ExtDecayer& operator=(const TG4ExtDecayer& right);
49
50   private:
51     TG4ParticlesManager* fParticlesManager;  //particles manager 
52     AliDecayer*          fExternalDecayer;   //the AliDecayer
53     TClonesArray*        fDecayProductsArray;//array of decay products
54     G4int                fVerboseLevel;      //verbose level         
55 };
56
57 // inline methods
58
59 inline void TG4ExtDecayer::SetVerboseLevel(G4int verbose)
60 { fVerboseLevel = verbose; }
61
62 inline G4int TG4ExtDecayer::GetVerboseLevel() const
63 { return fVerboseLevel; }
64
65 #endif //TG4_EXT_DECAYER_H