ATLAS Offline Software
HyperbolaStep.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 HYPERBOLASTEP_H
6 #define HYPERBOLASTEP_H
7 
8 #include <deque>
9 #include "G4ThreeVector.hh"
10 #include "G4LorentzVector.hh"
11 #include "StringVector.h"
12 
13 class G4Track;
14 class HyperbolaStepper;
15 class InfracolorForce;
16 
18 public:
19  HyperbolaStep(const HyperbolaStepper* stepper, InfracolorForce& string, const G4Track& track);
21 
22  void PrepareNextStep();
23  void Step(G4double length);
24  void Dump(G4double y[]);
25 
27  std::deque<StringVector>::const_iterator GetStringPtr() const;
28  G4double GetFracLeft() const;
29  G4bool IsBoostLimited() const;
30  G4double GetMaxLength() const;
31  G4double GetLength() const;
32  const StringVector& GetStringOut() const;
33  const G4LorentzVector& GetMomentum() const;
34 
35 private:
37 
38  std::deque<StringVector>::const_iterator m_stringPtr;
39  std::deque<StringVector>::const_iterator m_stringEnd;
40  G4double m_fracLeft;
41  G4ThreeVector m_position;
42  G4double m_time;
43  G4LorentzVector m_momentum;
44 
46  G4double m_maxFracTaken;
48  G4double m_maxLength;
49  G4double m_length;
50 };
51 
52 inline std::deque<StringVector>::const_iterator HyperbolaStep::GetStringPtr() const {return m_stringPtr;}
53 inline G4double HyperbolaStep::GetFracLeft() const {return m_fracLeft;}
54 inline G4bool HyperbolaStep::IsBoostLimited() const {return m_maxFracTaken != 1.0;}
55 inline G4double HyperbolaStep::GetMaxLength() const {return m_maxLength;}
56 inline G4double HyperbolaStep::GetLength() const {return m_length;}
57 inline const StringVector& HyperbolaStep::GetStringOut() const {return m_stringOut;}
58 inline const G4LorentzVector& HyperbolaStep::GetMomentum() const {return m_momentum;}
59 
60 #endif
HyperbolaStep::GetStringOut
const StringVector & GetStringOut() const
Definition: HyperbolaStep.h:57
HyperbolaStep::~HyperbolaStep
~HyperbolaStep()
Definition: HyperbolaStep.cxx:29
HyperbolaStep::HyperbolaStep
HyperbolaStep(const HyperbolaStepper *stepper, InfracolorForce &string, const G4Track &track)
Definition: HyperbolaStep.cxx:14
HyperbolaStep::GetLength
G4double GetLength() const
Definition: HyperbolaStep.h:56
HyperbolaStep::GetStringPtr
std::deque< StringVector >::const_iterator GetStringPtr() const
Definition: HyperbolaStep.h:52
HyperbolaStep::m_stringEnd
std::deque< StringVector >::const_iterator m_stringEnd
Definition: HyperbolaStep.h:39
HyperbolaStep::GetFracLeft
G4double GetFracLeft() const
Definition: HyperbolaStep.h:53
HyperbolaStep::m_momentum
G4LorentzVector m_momentum
Definition: HyperbolaStep.h:43
HyperbolaStep::m_stringPtr
std::deque< StringVector >::const_iterator m_stringPtr
Definition: HyperbolaStep.h:38
HyperbolaStep::m_maxFracTaken
G4double m_maxFracTaken
Definition: HyperbolaStep.h:46
HyperbolaStep::m_length
G4double m_length
Definition: HyperbolaStep.h:49
HyperbolaStepper
Definition: HyperbolaStepper.h:19
HyperbolaStep::GetMaxLength
G4double GetMaxLength() const
Definition: HyperbolaStep.h:55
HyperbolaStep::GetMomentum
const G4LorentzVector & GetMomentum() const
Definition: HyperbolaStep.h:58
HyperbolaStep::m_maxLength
G4double m_maxLength
Definition: HyperbolaStep.h:48
InfracolorForce
Definition: InfracolorForce.h:14
HyperbolaStep::m_stringOut
StringVector m_stringOut
Definition: HyperbolaStep.h:47
StringVector
Definition: StringVector.h:11
HyperbolaStep::m_stepper
const HyperbolaStepper * m_stepper
Definition: HyperbolaStep.h:36
HyperbolaStep::Dump
void Dump(G4double y[])
Definition: HyperbolaStep.cxx:121
HyperbolaStep::GetPrev
HyperbolaStep * GetPrev() const
StringVector.h
y
#define y
HyperbolaStep::m_stringIn
StringVector m_stringIn
Definition: HyperbolaStep.h:45
HyperbolaStep::Step
void Step(G4double length)
Definition: HyperbolaStep.cxx:63
HyperbolaStep::m_position
G4ThreeVector m_position
Definition: HyperbolaStep.h:41
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
HyperbolaStep::IsBoostLimited
G4bool IsBoostLimited() const
Definition: HyperbolaStep.h:54
HyperbolaStep::m_time
G4double m_time
Definition: HyperbolaStep.h:42
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
HyperbolaStep::PrepareNextStep
void PrepareNextStep()
Definition: HyperbolaStep.cxx:31
HyperbolaStep
Definition: HyperbolaStep.h:17
HyperbolaStep::m_fracLeft
G4double m_fracLeft
Definition: HyperbolaStep.h:40