4 // G4UserLimits derived class extended with
5 // vectors of kinetic energy cuts and control process flags
11 #include "TG4Globals.h"
15 #include <G4UserLimits.hh>
22 class TG4Limits: public G4UserLimits
26 TG4Limits(const TG4Limits& right);
30 TG4Limits& operator=(const TG4Limits& right);
33 void SetG3Cut(TG3Cut g3Cut, G4double cutValue);
34 void SetG3Flag(TG3Flag g3Flag, G4double flagValue);
35 void SetG3DefaultCuts();
36 void SetG3DefaultFlags();
40 G4bool IsFlag() 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 GetFlag(G4VProcess* process) const;
52 G4bool fIsCut; //true if any cut value is set
53 G4bool fIsFlag; //true if any flag value is set
54 TG4CutVector* fCutVector; //TG4CutVector
55 TG4FlagVector* fFlagVector; //TG4FlagVector
60 inline G4bool TG4Limits::IsCut() const { return fIsCut; }
61 inline G4bool TG4Limits::IsFlag() const { return fIsFlag; }
63 #endif //TG4_USER_LIMITS_H