Belle II Software  release-08-01-10
ExtMagFieldLimitProcess.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #ifndef EXTMAGFIELDLIMITPROCESS_H_
10 #define EXTMAGFIELDLIMITPROCESS_H_
11 
12 #include <globals.hh>
13 #include "G4VDiscreteProcess.hh"
14 
15 class G4Track;
16 class G4Field;
17 
18 namespace Belle2 {
24  namespace Simulation {
25 
27  class ExtMagFieldLimitProcess: public G4VDiscreteProcess {
28 
29  public:
30 
32  explicit ExtMagFieldLimitProcess(const G4String& processName = "ExtMagFieldLimitProcess");
33 
36 
38  G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
39 
41  G4double PostStepGetPhysicalInteractionLength(const G4Track&, G4double, G4ForceCondition*);
42 
44  G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*);
45 
47  G4double GetStepLimit() const { return m_stepLimit; }
48 
50  void SetStepLimit(G4double val) { m_stepLimit = val; }
51 
52  protected:
53 
55  const G4Field* m_field;
56 
58  G4double m_stepLimit;
59 
60  };
61 
62  } //end namespace Simulation
63 
65 } //end Belle2 namespace
66 
67 #endif /* EXTMAGFIELDLIMITPROCESS_H_ */
Defines the physics process that avoids hit invocation in sensitive volumes.
ExtMagFieldLimitProcess(const G4String &processName="ExtMagFieldLimitProcess")
constructor
G4double GetStepLimit() const
Returns the step limit.
const G4Field * m_field
Stores the pointer to the magnetic field class.
G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *)
Returns the mean free path (always infinity!) after each step.
void SetStepLimit(G4double val)
Sets the step limit.
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double, G4ForceCondition *)
Returns the step length after each step.
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
Do nothing special after the particle has stepped.
Abstract base class for different kinds of events.