CMS 3D CMS Logo

ElectronLimiter.h
Go to the documentation of this file.
1 #ifndef ElectronLimiter_h
2 #define ElectronLimiter_h 1
3 
4 // V.Ivanchenko 2013/10/19
5 // step limiter and killer for e+,e-
6 
8 
9 #include "globals.hh"
10 #include "G4VDiscreteProcess.hh"
11 #include "G4ParticleChangeForGamma.hh"
12 
13 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
14 
15 class G4VEnergyLossProcess;
16 
17 class ElectronLimiter : public G4VDiscreteProcess
18 {
19 public:
20 
22 
23  virtual ~ElectronLimiter();
24 
25  virtual void BuildPhysicsTable(const G4ParticleDefinition&);
26 
27  virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
28  G4double previousStepSize,
29  G4ForceCondition* condition);
30 
31  virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
32 
33  virtual G4double GetMeanFreePath(const G4Track&, G4double,G4ForceCondition*);
34 
35  inline void SetRangeCheckFlag(G4bool);
36 
37  inline void SetFieldCheckFlag(G4bool);
38 
39 private:
40 
41  G4ParticleChangeForGamma fParticleChange;
42  G4VEnergyLossProcess* fIonisation;
43 
44  const G4ParticleDefinition* particle;
45 
46  G4double minStepLimit;
47 
50  G4bool killTrack;
51 };
52 
54 {
56 }
57 
59 {
61 }
62 
63 #endif
64 
void SetRangeCheckFlag(G4bool)
G4VEnergyLossProcess * fIonisation
ElectronLimiter(const edm::ParameterSet &p)
void SetFieldCheckFlag(G4bool)
G4double minStepLimit
virtual G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *)
const G4ParticleDefinition * particle
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
G4ParticleChangeForGamma fParticleChange
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
virtual ~ElectronLimiter()
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)