ACTARSim
ACTAR TPC Simulation Reference Guide
G4StepLimiterPerRegion.hh
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * DISCLAIMER *
4 // * *
5 // * The following disclaimer summarizes all the specific disclaimers *
6 // * of contributors to this software. The specific disclaimers,which *
7 // * govern, are listed with their locations in: *
8 // * http://cern.ch/geant4/license *
9 // * *
10 // * Neither the authors of this software system, nor their employing *
11 // * institutes,nor the agencies providing financial support for this *
12 // * work make any representation or warranty, express or implied, *
13 // * regarding this software system or assume any liability for its *
14 // * use. *
15 // * *
16 // * This code implementation is the intellectual property of the *
17 // * GEANT4 collaboration. *
18 // * By copying, distributing or modifying the Program (or any work *
19 // * based on the Program) you indicate your acceptance of this *
20 // * statement, and all its terms. *
21 // ********************************************************************
22 //
23 // $Id: G4StepLimiterPerRegion.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
24 // GEANT4 tag $Name: geant4-08-00-patch-01 $
25 //
26 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
27 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
28 
29 #ifndef StepMax_h
30 #define StepMax_h 1
31 
32 #include "globals.hh"
33 #include "G4VDiscreteProcess.hh"
34 #include "G4ParticleDefinition.hh"
35 #include "G4Step.hh"
36 
38 
39 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
40 
41 class G4StepLimiterPerRegion : public G4VDiscreteProcess
42 {
43 public:
44 
45  G4StepLimiterPerRegion(const G4String& processName = "UserMaxStep");
47 
48  G4bool IsApplicable(const G4ParticleDefinition&);
49 
50  void SetMaxStep(G4double);
51 
52  G4double GetMaxStep() {return MaxChargedStep;};
53 
54  G4double PostStepGetPhysicalInteractionLength( const G4Track& track,
55  G4double previousStepSize,
56  G4ForceCondition* condition);
57 
58  G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
59 
60  G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*)
61  {return 0.;}; // it is not needed here !
62 
63 private:
64 
67 
68  G4double MaxChargedStep;
69  G4double ProposedStep;
70 
72 };
73 
74 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
75 
76 #endif
77 
G4StepLimiterPerRegion(const G4String &processName="UserMaxStep")
G4StepLimiterMessenger * pMess
G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *)
G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4bool IsApplicable(const G4ParticleDefinition &)
G4StepLimiterPerRegion & operator=(const G4StepLimiterPerRegion &right)
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)