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 "TG3ParticleWSP.h"
15 typedef G4double(TG4CutVector::*PtrMinEkineInCutVector)(const G4Track&) const;
16 typedef G4double(TG4Limits::*PtrMinEkineInLimits)(const G4Track&) const;
18 class TG4SpecialCuts: public G4UserSpecialCuts
19 // to do: change to inheritance from G4VProcess
22 TG4SpecialCuts(TG3ParticleWSP particle, TG4CutVector* cutVector,
23 const G4String& processName ="specialCut");
26 // TG4SpecialCuts(const TG4SpecialCuts& right);
27 virtual ~TG4SpecialCuts();
30 virtual G4double PostStepGetPhysicalInteractionLength(
31 const G4Track& track, G4double previousStepSize,
32 G4ForceCondition* condition);
33 virtual G4VParticleChange* PostStepDoIt(const G4Track& track,
38 TG4SpecialCuts(const TG4SpecialCuts& right);
41 TG4SpecialCuts& operator = (const TG4SpecialCuts& right);
45 TG4CutVector* fCutVector; //TG4CutVector
46 PtrMinEkineInCutVector fPtrMinEkineInCutVector; //pointer to
47 //TG4CutVector::GetMinEKineForXX() method for
48 //the particle XX that this process is applied to
49 PtrMinEkineInLimits fPtrMinEkineInLimits; //pointer to
50 //TG4Limits::GetMinEKineForXX() method for
51 //the particle XX that this process is applied to
54 #endif //TG4_SPECIAL_CUTS_H