]>
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); | |
33 | virtual G4VParticleChange* PostStepDoIt(const G4Track& , const G4Step&); | |
34 | ||
35 | protected: | |
36 | TG4SpecialCuts(); | |
37 | TG4SpecialCuts(const TG4SpecialCuts& right); | |
38 | ||
39 | // operators | |
40 | TG4SpecialCuts& operator = (const TG4SpecialCuts& right); | |
41 | ||
42 | private: | |
43 | // data members | |
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 | |
51 | }; | |
52 | ||
53 | #endif //TG4_SPECIAL_CUTS_H | |
54 | ||
55 | ||
56 |