Belle II Software  release-05-02-19
ExtMagFieldLimitProcess.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2011 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Leo Piilonen *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef EXTMAGFIELDLIMITPROCESS_H_
12 #define EXTMAGFIELDLIMITPROCESS_H_
13 
14 #include <globals.hh>
15 #include "G4VDiscreteProcess.hh"
16 
17 class G4Track;
18 class G4Field;
19 
20 namespace Belle2 {
26  namespace Simulation {
27 
29  class ExtMagFieldLimitProcess: public G4VDiscreteProcess {
30 
31  public:
32 
34  explicit ExtMagFieldLimitProcess(const G4String& processName = "ExtMagFieldLimitProcess");
35 
38 
40  G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
41 
43  G4double PostStepGetPhysicalInteractionLength(const G4Track&, G4double, G4ForceCondition*);
44 
46  G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*);
47 
49  G4double GetStepLimit() const { return m_stepLimit; }
50 
52  void SetStepLimit(G4double val) { m_stepLimit = val; }
53 
54  protected:
55 
57  const G4Field* m_field;
58 
60  G4double m_stepLimit;
61 
62  };
63 
64  } //end namespace Simulation
65 
67 } //end Belle2 namespace
68 
69 #endif /* EXTMAGFIELDLIMITPROCESS_H_ */
Belle2::Simulation::ExtMagFieldLimitProcess::ExtMagFieldLimitProcess
ExtMagFieldLimitProcess(const G4String &processName="ExtMagFieldLimitProcess")
constructor
Definition: ExtMagFieldLimitProcess.cc:25
Belle2::Simulation::ExtMagFieldLimitProcess::m_stepLimit
G4double m_stepLimit
Stores the step limit.
Definition: ExtMagFieldLimitProcess.h:60
Belle2::Simulation::ExtMagFieldLimitProcess::PostStepDoIt
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
Do nothing special after the particle has stepped.
Definition: ExtMagFieldLimitProcess.cc:73
Belle2::Simulation::ExtMagFieldLimitProcess::~ExtMagFieldLimitProcess
~ExtMagFieldLimitProcess()
destructor
Definition: ExtMagFieldLimitProcess.cc:41
Belle2::Simulation::ExtMagFieldLimitProcess::GetStepLimit
G4double GetStepLimit() const
Returns the step limit.
Definition: ExtMagFieldLimitProcess.h:49
Belle2::Simulation::ExtMagFieldLimitProcess
Defines the physics process that avoids hit invocation in sensitive volumes.
Definition: ExtMagFieldLimitProcess.h:29
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Simulation::ExtMagFieldLimitProcess::GetMeanFreePath
G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *)
Returns the mean free path (always infinity!) after each step.
Definition: ExtMagFieldLimitProcess.cc:45
Belle2::Simulation::ExtMagFieldLimitProcess::SetStepLimit
void SetStepLimit(G4double val)
Sets the step limit.
Definition: ExtMagFieldLimitProcess.h:52
Belle2::Simulation::ExtMagFieldLimitProcess::m_field
const G4Field * m_field
Stores the pointer to the magnetic field class.
Definition: ExtMagFieldLimitProcess.h:57
Belle2::Simulation::ExtMagFieldLimitProcess::PostStepGetPhysicalInteractionLength
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double, G4ForceCondition *)
Returns the step length after each step.
Definition: ExtMagFieldLimitProcess.cc:51