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  ~ElectronLimiter() override;
24 
25  void BuildPhysicsTable(const G4ParticleDefinition&) override;
26 
27  G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
28  G4double previousStepSize,
29  G4ForceCondition* condition) override;
30 
31  G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&) override;
32 
33  G4double GetMeanFreePath(const G4Track&, G4double,G4ForceCondition*) override;
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
G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *) override
G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override
ElectronLimiter(const edm::ParameterSet &p)
~ElectronLimiter() override
void SetFieldCheckFlag(G4bool)
void BuildPhysicsTable(const G4ParticleDefinition &) override
G4double minStepLimit
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &) override
const G4ParticleDefinition * particle
G4ParticleChangeForGamma fParticleChange