]>
Commit | Line | Data |
---|---|---|
2817d3e2 | 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" | |
6eb43d7c | 12 | #include "TG4G3Cut.h" |
13 | #include "TG4G3Control.h" | |
2817d3e2 | 14 | |
15 | #include <G4UserLimits.hh> | |
16 | ||
6eb43d7c | 17 | class TG4G3CutVector; |
18 | class TG4G3ControlVector; | |
2817d3e2 | 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 | |
6eb43d7c | 33 | void SetG3Cut(TG4G3Cut cut, G4double cutValue); |
34 | void SetG3Control(TG4G3Control control, G4double controlValue); | |
2817d3e2 | 35 | void SetG3DefaultCuts(); |
6eb43d7c | 36 | void SetG3DefaultControls(); |
2817d3e2 | 37 | |
38 | // get methods | |
39 | G4bool IsCut() const; | |
6eb43d7c | 40 | G4bool IsControl() const; |
2817d3e2 | 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; | |
6eb43d7c | 48 | G4int GetControl(G4VProcess* process) const; |
2817d3e2 | 49 | |
50 | private: | |
015b87e4 | 51 | // static data members |
98c988ce | 52 | static const G4double fgkDefaultMaxStep; // default max step value |
015b87e4 | 53 | |
2817d3e2 | 54 | // data members |
98c988ce | 55 | G4bool fIsCut; //true if any cut value is set |
56 | G4bool fIsControl; //true if any flag value is set | |
6eb43d7c | 57 | TG4G3CutVector* fCutVector; //TG4CutVector |
58 | TG4G3ControlVector* fControlVector;//TG4ControlVector | |
2817d3e2 | 59 | }; |
60 | ||
61 | // inline methods | |
62 | ||
63 | inline G4bool TG4Limits::IsCut() const { return fIsCut; } | |
6eb43d7c | 64 | inline G4bool TG4Limits::IsControl() const { return fIsControl; } |
2817d3e2 | 65 | |
66 | #endif //TG4_USER_LIMITS_H | |
67 | ||
68 | ||
69 |