582e6ac997218c916c4a22e7e6635e1d896c181d
[u/mrichter/AliRoot.git] / TGeant4 / TG4Limits.h
1 // $Id$
2 // Category: global
3 //
4 // G4UserLimits derived class extended with
5 // vectors of kinetic energy cuts and control process flags
6 // data members
7
8 #ifndef TG4_LIMITS_H
9 #define TG4_LIMITS_H
10
11 #include "TG4Globals.h"
12 #include "TG4G3Cut.h"
13 #include "TG4G3Control.h"
14
15 #include <G4UserLimits.hh>
16
17 class TG4G3CutVector;
18 class TG4G3ControlVector;
19
20 class G4VProcess;
21
22 class TG4Limits: public G4UserLimits
23 {
24   public:
25     TG4Limits();
26     TG4Limits(const TG4Limits& right);
27     virtual ~TG4Limits();
28     
29     // operators
30     TG4Limits& operator=(const TG4Limits& right);
31
32     // set methods
33     void SetG3Cut(TG4G3Cut cut, G4double cutValue);
34     void SetG3Control(TG4G3Control control, G4double controlValue);
35     void SetG3DefaultCuts();
36     void SetG3DefaultControls();
37     
38     // get methods
39     G4bool IsCut() const;
40     G4bool IsControl() const;
41     virtual G4double GetUserMinEkine(const G4Track& track);
42     G4double GetMinEkineForGamma(const G4Track& track) const;
43     G4double GetMinEkineForElectron(const G4Track& track) const;
44     G4double GetMinEkineForHadron(const G4Track& track) const;
45     G4double GetMinEkineForNeutralHadron(const G4Track& track) const;
46     G4double GetMinEkineForMuon(const G4Track& track) const;
47     G4double GetMinEkineForOther(const G4Track& track) const;
48     G4int GetControl(G4VProcess* process) const; 
49
50   private:
51     // data members
52     G4bool              fIsCut;    //true if any cut value is set
53     G4bool              fIsControl;//true if any flag value is set
54     TG4G3CutVector*     fCutVector;    //TG4CutVector
55     TG4G3ControlVector* fControlVector;//TG4ControlVector
56 };
57
58 // inline methods
59
60 inline G4bool TG4Limits::IsCut() const  { return fIsCut; }
61 inline G4bool TG4Limits::IsControl() const { return fIsControl; }
62
63 #endif //TG4_USER_LIMITS_H
64
65
66