ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
G4Extensions
Quirks
src
HyperbolaStepper.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef HYPERBOLASTEPPER_H
6
#define HYPERBOLASTEPPER_H
7
8
#include <vector>
9
#include "G4LorentzVector.hh"
10
#include "G4MagIntegratorStepper.hh"
11
#include "G4FieldTrack.hh"
12
#include "
InfracolorForce.h
"
13
#include "
HyperbolaStep.h
"
14
15
class
G4Track;
16
class
G4Field;
17
18
class
HyperbolaStepper
:
public
G4MagIntegratorStepper {
19
public
:
20
HyperbolaStepper
(
21
InfracolorForce
&
string
,
22
const
G4Track& track,
23
const
G4Field* field = 0
24
);
25
virtual
~HyperbolaStepper
();
26
27
virtual
void
Stepper
(
28
const
G4double
y
[],
29
const
G4double[],
//dydx
30
G4double
h
,
31
G4double yout[],
32
G4double yerr[]
33
);
34
virtual
G4double
DistChord
()
const
;
35
virtual
void
ComputeRightHandSide
(
const
G4double[], G4double[]) {}
36
virtual
G4int
IntegratorOrder
()
const
{
return
1;}
37
38
G4double
GetForce
()
const
;
39
const
G4Field*
GetField
()
const
;
40
G4double
GetMass
()
const
;
41
G4double
GetCharge
()
const
;
42
const
G4LorentzVector&
GetStartMomentum
()
const
;
43
G4double
GetMaxExpRapidity
()
const
;
44
45
G4double
GetMaxLength
()
const
;
46
void
Update
(G4FieldTrack& fieldTrack, G4bool forceStep);
47
48
void
SetDebug
(G4bool
debug
);
49
50
private
:
51
static
const
G4int
m_NUM_VARS
= 9;
52
53
InfracolorForce
&
m_string
;
54
const
G4Field*
const
m_field
;
55
const
G4double
m_mass
;
56
const
G4double
m_charge
;
57
const
G4LorentzVector
m_startMomentum
;
58
const
G4double
m_maxExpRapidity
;
59
60
std::vector<HyperbolaStep>
m_steps
;
61
HyperbolaStep
m_currStep
;
62
std::vector<HyperbolaStep>::size_type
m_nPrevSteps
;
63
64
G4bool
m_debug
;
65
66
void
SetCurrStep
(G4double
length
);
67
};
68
69
inline
G4double
HyperbolaStepper::GetForce
()
const
{
return
m_string
.GetStringForce();}
70
inline
const
G4Field*
HyperbolaStepper::GetField
()
const
{
return
m_field
;}
71
inline
G4double
HyperbolaStepper::GetMass
()
const
{
return
m_mass
;}
72
inline
G4double
HyperbolaStepper::GetCharge
()
const
{
return
m_charge
;}
73
inline
const
G4LorentzVector&
HyperbolaStepper::GetStartMomentum
()
const
{
return
m_startMomentum
;}
74
inline
G4double
HyperbolaStepper::GetMaxExpRapidity
()
const
{
return
m_maxExpRapidity
;}
75
76
inline
G4double
HyperbolaStepper::GetMaxLength
()
const
{
return
m_steps
.back().GetMaxLength();}
77
78
inline
void
HyperbolaStepper::SetDebug
(G4bool
debug
) {
m_debug
=
debug
;}
79
80
#endif
length
double length(const pvec &v)
Definition
FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
HyperbolaStep.h
InfracolorForce.h
debug
const bool debug
Definition
MakeUncertaintyPlots.cxx:53
y
#define y
h
Header file for AthHistogramAlgorithm.
HyperbolaStep
Definition
HyperbolaStep.h:17
HyperbolaStepper::m_charge
const G4double m_charge
Definition
HyperbolaStepper.h:56
HyperbolaStepper::GetMass
G4double GetMass() const
Definition
HyperbolaStepper.h:71
HyperbolaStepper::HyperbolaStepper
HyperbolaStepper(InfracolorForce &string, const G4Track &track, const G4Field *field=0)
Definition
HyperbolaStepper.cxx:12
HyperbolaStepper::GetForce
G4double GetForce() const
Definition
HyperbolaStepper.h:69
HyperbolaStepper::DistChord
virtual G4double DistChord() const
Definition
HyperbolaStepper.cxx:84
HyperbolaStepper::ComputeRightHandSide
virtual void ComputeRightHandSide(const G4double[], G4double[])
Definition
HyperbolaStepper.h:35
HyperbolaStepper::SetCurrStep
void SetCurrStep(G4double length)
Definition
HyperbolaStepper.cxx:53
HyperbolaStepper::GetCharge
G4double GetCharge() const
Definition
HyperbolaStepper.h:72
HyperbolaStepper::m_string
InfracolorForce & m_string
Definition
HyperbolaStepper.h:53
HyperbolaStepper::m_maxExpRapidity
const G4double m_maxExpRapidity
Definition
HyperbolaStepper.h:58
HyperbolaStepper::SetDebug
void SetDebug(G4bool debug)
Definition
HyperbolaStepper.h:78
HyperbolaStepper::Stepper
virtual void Stepper(const G4double y[], const G4double[], G4double h, G4double yout[], G4double yerr[])
Definition
HyperbolaStepper.cxx:62
HyperbolaStepper::m_mass
const G4double m_mass
Definition
HyperbolaStepper.h:55
HyperbolaStepper::GetMaxExpRapidity
G4double GetMaxExpRapidity() const
Definition
HyperbolaStepper.h:74
HyperbolaStepper::IntegratorOrder
virtual G4int IntegratorOrder() const
Definition
HyperbolaStepper.h:36
HyperbolaStepper::GetField
const G4Field * GetField() const
Definition
HyperbolaStepper.h:70
HyperbolaStepper::m_NUM_VARS
static const G4int m_NUM_VARS
Definition
HyperbolaStepper.h:51
HyperbolaStepper::~HyperbolaStepper
virtual ~HyperbolaStepper()
Definition
HyperbolaStepper.cxx:49
HyperbolaStepper::m_debug
G4bool m_debug
Definition
HyperbolaStepper.h:64
HyperbolaStepper::m_field
const G4Field *const m_field
Definition
HyperbolaStepper.h:54
HyperbolaStepper::Update
void Update(G4FieldTrack &fieldTrack, G4bool forceStep)
Definition
HyperbolaStepper.cxx:89
HyperbolaStepper::GetStartMomentum
const G4LorentzVector & GetStartMomentum() const
Definition
HyperbolaStepper.h:73
HyperbolaStepper::m_nPrevSteps
std::vector< HyperbolaStep >::size_type m_nPrevSteps
Definition
HyperbolaStepper.h:62
HyperbolaStepper::m_steps
std::vector< HyperbolaStep > m_steps
Definition
HyperbolaStepper.h:60
HyperbolaStepper::GetMaxLength
G4double GetMaxLength() const
Definition
HyperbolaStepper.h:76
HyperbolaStepper::m_currStep
HyperbolaStep m_currStep
Definition
HyperbolaStepper.h:61
HyperbolaStepper::m_startMomentum
const G4LorentzVector m_startMomentum
Definition
HyperbolaStepper.h:57
InfracolorForce
Definition
InfracolorForce.h:14
Generated on
for ATLAS Offline Software by
1.17.0