4 // Author: I. Hrivnacova
6 // Class TG4VSpecialCuts
7 // ---------------------
8 // Abstract base class for a special process that activates
9 // kinetic energy cuts.
10 // The pure virtual functions GetMinEkine have to be implemented
11 // by derived classes specific for each particle type
12 // (see TG4G3ParticleWSP.h).
14 #ifndef TG4_V_SPECIAL_CUTS_H
15 #define TG4_V_SPECIAL_CUTS_H
17 #include <G4VProcess.hh>
24 class TG4VSpecialCuts: public G4VProcess
27 TG4VSpecialCuts(const G4String& processName);
30 virtual ~TG4VSpecialCuts();
33 virtual G4double GetMinEkine(const TG4Limits& limits,
34 const G4Track& track) const = 0;
36 virtual G4double PostStepGetPhysicalInteractionLength(
37 const G4Track& track, G4double previousStepSize,
38 G4ForceCondition* condition);
40 virtual G4VParticleChange* PostStepDoIt(const G4Track& track,
43 virtual G4double AlongStepGetPhysicalInteractionLength(
44 const G4Track&, G4double, G4double, G4double&,
48 virtual G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&)
51 virtual G4double AtRestGetPhysicalInteractionLength(const G4Track&,
55 virtual G4VParticleChange* AtRestDoIt(
56 const G4Track&, const G4Step&)
61 TG4VSpecialCuts(const TG4VSpecialCuts& right);
64 TG4VSpecialCuts& operator = (const TG4VSpecialCuts& right);
67 #endif //TG4_SPECIAL_CUTS_H