#include <HyperbolaStepper.h>
Definition at line 19 of file HyperbolaStepper.h.
◆ HyperbolaStepper()
| HyperbolaStepper::HyperbolaStepper |
( |
InfracolorForce & | string, |
|
|
const G4Track & | track, |
|
|
const G4Field * | field = 0 ) |
Definition at line 12 of file HyperbolaStepper.cxx.
16 :
17
18
19 G4MagIntegratorStepper(
new DummyEquation(),
m_NUM_VARS),
21 m_field(
dynamic_cast<const G4ElectroMagneticField*
>(field)),
30{
31 if (field != 0 &&
m_field == 0) {
32 G4Exception("HyperbolaStepper::HyperbolaStepper", "QuirkNonEM", FatalErrorInArgument, "Non-EM fields not supported");
33 }
34
35
39 while (
m_currStep.GetStringPtr() !=
string.GetStringVectors().end()) {
41 next.PrepareNextStep();
42 if (
next.IsBoostLimited())
break;
46 }
48}
InfracolorForce & m_string
const G4double m_maxExpRapidity
const G4ElectroMagneticField *const m_field
G4double GetMaxExpRapidity() const
static const G4int m_NUM_VARS
std::vector< HyperbolaStep >::size_type m_nPrevSteps
std::vector< HyperbolaStep > m_steps
const G4LorentzVector m_startMomentum
◆ ~HyperbolaStepper()
| HyperbolaStepper::~HyperbolaStepper |
( |
| ) |
|
|
virtual |
◆ ComputeRightHandSide()
| virtual void HyperbolaStepper::ComputeRightHandSide |
( |
const G4double | [], |
|
|
G4double | [] ) |
|
inlinevirtual |
◆ DistChord()
| G4double HyperbolaStepper::DistChord |
( |
| ) |
const |
|
virtual |
◆ GetCharge()
| G4double HyperbolaStepper::GetCharge |
( |
| ) |
const |
|
inline |
◆ GetField()
| const G4ElectroMagneticField * HyperbolaStepper::GetField |
( |
| ) |
const |
|
inline |
◆ GetForce()
| G4double HyperbolaStepper::GetForce |
( |
| ) |
const |
|
inline |
◆ GetMass()
| G4double HyperbolaStepper::GetMass |
( |
| ) |
const |
|
inline |
◆ GetMaxExpRapidity()
| G4double HyperbolaStepper::GetMaxExpRapidity |
( |
| ) |
const |
|
inline |
◆ GetMaxLength()
| G4double HyperbolaStepper::GetMaxLength |
( |
| ) |
const |
|
inline |
◆ GetStartMomentum()
| const G4LorentzVector & HyperbolaStepper::GetStartMomentum |
( |
| ) |
const |
|
inline |
◆ IntegratorOrder()
| virtual G4int HyperbolaStepper::IntegratorOrder |
( |
| ) |
const |
|
inlinevirtual |
◆ SetCurrStep()
| void HyperbolaStepper::SetCurrStep |
( |
G4double | length | ) |
|
|
private |
◆ SetDebug()
| void HyperbolaStepper::SetDebug |
( |
G4bool | debug | ) |
|
|
inline |
◆ Stepper()
| void HyperbolaStepper::Stepper |
( |
const G4double | y[], |
|
|
const G4double | [], |
|
|
G4double | h, |
|
|
G4double | yout[], |
|
|
G4double | yerr[] ) |
|
virtual |
Definition at line 63 of file HyperbolaStepper.cxx.
69 {
70 G4int maxvar = GetNumberOfStateVariables();
71 for (G4int i = 0;
i < maxvar;
i++) yout[i] =
y[i];
72
73 if (
m_debug) G4cout <<
"HyperbolaStepper: asked to move " <<
h << G4endl;
74 if (
m_debug) G4cout <<
"HyperbolaStepper: start = " <<
y[0] <<
", " <<
y[1] <<
", " <<
y[2] <<
" [" <<
y[8] <<
"]" << G4endl;
75
78
79 if (
m_debug) G4cout <<
"HyperbolaStepper: end = " << yout[0] <<
", " << yout[1] <<
", " << yout[2] <<
" [" << yout[8] <<
"]" << G4endl;
80
81
83}
void SetCurrStep(G4double length)
◆ Update()
| void HyperbolaStepper::Update |
( |
G4FieldTrack & | fieldTrack, |
|
|
G4bool | forceStep ) |
Definition at line 90 of file HyperbolaStepper.cxx.
90 {
91 if (forceStep) {
92
93
98 fieldTrack.UpdateFourMomentum(
p.t() -
m_mass,
p.vect().unit());
99 } else {
101 }
102
103
105 for (std::vector<HyperbolaStep>::size_type i = 0;
i <
m_nPrevSteps;
i++) {
106 if (
m_debug) G4cout <<
"HyperbolaStepper: pushing vector " <<
m_steps[
i].GetStringOut().lv() << G4endl;
107 m_string.GetReactionForce()->PushStringVector(
m_steps[i].GetStringOut());
108 }
109 if (
m_debug) G4cout <<
"HyperbolaStepper: pushing vector " <<
m_currStep.GetStringOut().lv() << G4endl;
111}
◆ m_charge
| const G4double HyperbolaStepper::m_charge |
|
private |
◆ m_currStep
◆ m_debug
| G4bool HyperbolaStepper::m_debug |
|
private |
◆ m_field
| const G4ElectroMagneticField* const HyperbolaStepper::m_field |
|
private |
◆ m_mass
| const G4double HyperbolaStepper::m_mass |
|
private |
◆ m_maxExpRapidity
| const G4double HyperbolaStepper::m_maxExpRapidity |
|
private |
◆ m_nPrevSteps
| std::vector<HyperbolaStep>::size_type HyperbolaStepper::m_nPrevSteps |
|
private |
◆ m_NUM_VARS
| const G4int HyperbolaStepper::m_NUM_VARS = 9 |
|
staticprivate |
◆ m_startMomentum
| const G4LorentzVector HyperbolaStepper::m_startMomentum |
|
private |
◆ m_steps
◆ m_string
The documentation for this class was generated from the following files: