]>
Commit | Line | Data |
---|---|---|
2817d3e2 | 1 | // $Id$ |
2 | // Category: physics | |
3 | // | |
4 | // Special process that activates kinetic energy cuts | |
5 | ||
6 | #ifndef TG4_SPECIAL_CUTS_H | |
7 | #define TG4_SPECIAL_CUTS_H | |
8 | ||
9 | #include <G4UserSpecialCuts.hh> | |
10 | #include "TG3ParticleWSP.h" | |
11 | ||
12 | class TG4CutVector; | |
13 | class TG4Limits; | |
14 | ||
15 | typedef G4double(TG4CutVector::*PtrMinEkineInCutVector)(const G4Track&) const; | |
16 | typedef G4double(TG4Limits::*PtrMinEkineInLimits)(const G4Track&) const; | |
17 | ||
18 | class TG4SpecialCuts: public G4UserSpecialCuts | |
19 | // to do: change to inheritance from G4VProcess | |
20 | { | |
21 | public: | |
22 | TG4SpecialCuts(TG3ParticleWSP particle, TG4CutVector* cutVector, | |
23 | const G4String& processName ="specialCut"); | |
24 | // --> protected | |
25 | // TG4SpecialCuts(); | |
26 | // TG4SpecialCuts(const TG4SpecialCuts& right); | |
27 | virtual ~TG4SpecialCuts(); | |
28 | ||
29 | // methods | |
30 | virtual G4double PostStepGetPhysicalInteractionLength( | |
31 | const G4Track& track, G4double previousStepSize, | |
32 | G4ForceCondition* condition); | |
57f88f6f | 33 | virtual G4VParticleChange* PostStepDoIt(const G4Track& track, |
34 | const G4Step& step); | |
2817d3e2 | 35 | |
36 | protected: | |
37 | TG4SpecialCuts(); | |
38 | TG4SpecialCuts(const TG4SpecialCuts& right); | |
39 | ||
40 | // operators | |
41 | TG4SpecialCuts& operator = (const TG4SpecialCuts& right); | |
42 | ||
43 | private: | |
44 | // data members | |
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 | |
52 | }; | |
53 | ||
54 | #endif //TG4_SPECIAL_CUTS_H | |
55 | ||
56 | ||
57 |