4 // Special process that activates kinetic energy cuts
6 #ifndef TG4_SPECIAL_CUTS_H
7 #define TG4_SPECIAL_CUTS_H
9 #include <G4UserSpecialCuts.hh>
10 #include "TG4G3ParticleWSP.h"
15 typedef G4double(TG4G3CutVector::*PtrMinEkineInCutVector)(const G4Track&)
17 typedef G4double(TG4Limits::*PtrMinEkineInLimits)(const G4Track&) const;
19 class TG4SpecialCuts: public G4UserSpecialCuts
20 // to do: change to inheritance from G4VProcess
23 TG4SpecialCuts(TG4G3ParticleWSP particle, TG4G3CutVector* cutVector,
24 const G4String& processName ="specialCut");
27 // TG4SpecialCuts(const TG4SpecialCuts& right);
28 virtual ~TG4SpecialCuts();
31 virtual G4double PostStepGetPhysicalInteractionLength(
32 const G4Track& track, G4double previousStepSize,
33 G4ForceCondition* condition);
34 virtual G4VParticleChange* PostStepDoIt(const G4Track& track,
39 TG4SpecialCuts(const TG4SpecialCuts& right);
42 TG4SpecialCuts& operator = (const TG4SpecialCuts& right);
46 TG4G3CutVector* fCutVector; //TG4G3CutVector
47 PtrMinEkineInCutVector fPtrMinEkineInCutVector; //pointer to
48 //TG4CutVector::GetMinEKineForXX() method for
49 //the particle XX that this process is applied to
50 PtrMinEkineInLimits fPtrMinEkineInLimits; //pointer to
51 //TG4Limits::GetMinEKineForXX() method for
52 //the particle XX that this process is applied to
55 #endif //TG4_SPECIAL_CUTS_H