4 // G4UserLimits derived class extended with
5 // vectors of kinetic energy cuts and control process flags
11 #include "TG4Globals.h"
13 #include "TG4G3Control.h"
15 #include <G4UserLimits.hh>
18 class TG4G3ControlVector;
22 class TG4Limits: public G4UserLimits
26 TG4Limits(const TG4Limits& right);
30 TG4Limits& operator=(const TG4Limits& right);
33 void SetG3Cut(TG4G3Cut cut, G4double cutValue);
34 void SetG3Control(TG4G3Control control, G4double controlValue);
35 void SetG3DefaultCuts();
36 void SetG3DefaultControls();
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;
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
60 inline G4bool TG4Limits::IsCut() const { return fIsCut; }
61 inline G4bool TG4Limits::IsControl() const { return fIsControl; }
63 #endif //TG4_USER_LIMITS_H