Belle II Software development
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#pragma once
10
11#include <globals.hh>
12#include "G4VDiscreteProcess.hh"
13
14class G4Track;
15class G4Field;
16
17namespace Belle2 {
22
23 namespace Simulation {
24
26 class ExtMagFieldLimitProcess: public G4VDiscreteProcess {
27
28 public:
29
31 explicit ExtMagFieldLimitProcess(const G4String& processName = "ExtMagFieldLimitProcess");
32
35
37 G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
38
40 G4double PostStepGetPhysicalInteractionLength(const G4Track&, G4double, G4ForceCondition*);
41
43 G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*);
44
46 G4double GetStepLimit() const { return m_stepLimit; }
47
49 void SetStepLimit(G4double val) { m_stepLimit = val; }
50
51 protected:
52
54 const G4Field* m_field;
55
57 G4double m_stepLimit;
58
59 };
60
61 } //end namespace Simulation
62
64} //end Belle2 namespace
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.