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& , const G4Step&);
37 TG4SpecialCuts(const TG4SpecialCuts& right);
40 TG4SpecialCuts& operator = (const TG4SpecialCuts& right);
44 TG4CutVector* fCutVector; //TG4CutVector
45 PtrMinEkineInCutVector fPtrMinEkineInCutVector; //pointer to
46 //TG4CutVector::GetMinEKineForXX() method for
47 //the particle XX that this process is applied to
48 PtrMinEkineInLimits fPtrMinEkineInLimits; //pointer to
49 //TG4Limits::GetMinEKineForXX() method for
50 //the particle XX that this process is applied to
53 #endif //TG4_SPECIAL_CUTS_H