#include <PndHelixPropagator.h>
Definition at line 16 of file PndHelixPropagator.h.
PndHelixPropagator::PndHelixPropagator |
( |
| ) |
|
PndHelixPropagator::PndHelixPropagator |
( |
Double_t |
fieldStrength, |
|
|
TVector3 |
origin, |
|
|
TVector3 |
momentum, |
|
|
Double_t |
charge |
|
) |
| |
|
inline |
PndHelixPropagator::~PndHelixPropagator |
( |
| ) |
|
|
virtual |
FairTrackPar PndHelixPropagator::PropagateByAngle |
( |
Double_t |
step | ) |
|
Definition at line 109 of file PndHelixPropagator.cxx.
References Double_t, fCharge, fFieldStrength, fMomentum, fOrigin, Pi, and Radius().
Referenced by PndTrackDraw::PropagateTrackHelix().
112 TVector3 dirRadius =
fMomentum.Cross(magField).Unit();
120 TVector3 zeroCircle =
fOrigin - circleCenter;
122 Double_t newPhi = zeroCircle.Phi() + stepInRad;
123 TVector3 newOrigin = zeroCircle;
124 newOrigin.SetPhi(newPhi);
125 newOrigin += circleCenter;
133 newMomentum.RotateZ(stepInRad);
135 std::cout <<
"PndHelixPropagator::PropagateByAngle " << step << std::endl;
136 std::cout <<
"Origin: ";
fOrigin.Print(); std::cout << std::endl;
137 std::cout <<
"Momentum: ";
fMomentum.Print(); std::cout <<
" Ratio Pt/Pl: " << ratioPtPl <<
" Radius: " <<
Radius() <<
" "; dirRadius.Print(); std::cout << std::endl;
138 std::cout <<
"circleCenter: "; circleCenter.Print(); std::cout << std::endl;
139 std::cout <<
"zeroCircle: "; zeroCircle.Print(); std::cout << std::endl;
140 std::cout <<
"Phi: " << zeroCircle.Phi() <<
" deltaPhi: " << stepInRad <<
" newPhi: " << newPhi << std::endl;
141 std::cout <<
"NewOrigin: "; newOrigin.Print(); std::cout << std::endl;
142 std::cout <<
"NewMomentum: "; newMomentum.Print(); std::cout << std::endl;
145 FairTrackPar result(newOrigin.x(), newOrigin.y(), newOrigin.z(), newMomentum.Px(), newMomentum.Py(), newMomentum.Pz(),
fCharge);
FairTrackPar PndHelixPropagator::PropagateToS |
( |
Double_t |
arcLength | ) |
|
FairTrackPar PndHelixPropagator::PropagateToXYPos |
( |
TVector2 |
xyPos | ) |
|
Definition at line 62 of file PndHelixPropagator.cxx.
References Double_t, fCharge, fFieldStrength, fMomentum, fOrigin, and Radius().
Referenced by PndTrackDraw::PropagateTrackHelix().
66 TVector3 dirRadius =
fMomentum.Cross(magField).Unit();
72 TVector3 zeroCircle =
fOrigin - circleCenter;
74 TVector3 negCircleCenter = -circleCenter;
76 Double_t deltaPhi = negCircleCenter.DeltaPhi(zeroCircle);
78 TVector3 newOrigin = negCircleCenter.Unit() *
Radius() + circleCenter;
84 newMomentum.RotateZ(deltaPhi);
86 std::cout <<
"PndHelixPropagator::PropagateToXYPos" << std::endl;
87 std::cout <<
"Origin: ";
fOrigin.Print(); std::cout << std::endl;
88 std::cout <<
"Momentum: ";
fMomentum.Print(); std::cout <<
" Ratio Pt/Pl: " << ratioPtPl <<
" Radius: " <<
Radius() <<
" "; dirRadius.Print(); std::cout << std::endl;
89 std::cout <<
"circleCenter: "; circleCenter.Print(); std::cout <<
" " << circleCenter.Pt() << std::endl;
90 std::cout <<
"zeroCircle: "; zeroCircle.Print(); std::cout << std::endl;
91 std::cout <<
"Phi: " << zeroCircle.Phi() <<
" deltaPhi: " << deltaPhi << std::endl;
92 std::cout <<
"NewOrigin: "; newOrigin.Print(); std::cout << std::endl;
93 std::cout <<
"NewMomentum: "; newMomentum.Print(); std::cout << std::endl;
96 FairTrackPar result(newOrigin.x(), newOrigin.y(), newOrigin.z(), newMomentum.Px(), newMomentum.Py(), newMomentum.Pz(),
fCharge);
FairTrackPar PndHelixPropagator::PropagateToZ |
( |
Double_t |
zPos | ) |
|
Definition at line 24 of file PndHelixPropagator.cxx.
References Double_t, fCharge, fFieldStrength, fMomentum, fOrigin, and Radius().
27 TVector3 dirRadius =
fMomentum.Cross(magField).Unit();
32 TVector3 zeroCircle =
fOrigin - circleCenter;
35 Double_t arcLength = ratioPtPl * zLength;
37 Double_t newPhi = deltaPhi + zeroCircle.Phi();
39 TVector3 newOrigin = zeroCircle;
40 newOrigin.SetPhi(newPhi);
41 newOrigin += circleCenter;
45 newMomentum.RotateZ(deltaPhi);
47 std::cout <<
"PndHelixPropagator::PropagateToZ " << zPos << std::endl;
48 std::cout <<
"Origin: ";
fOrigin.Print(); std::cout << std::endl;
49 std::cout <<
"Momentum: ";
fMomentum.Print(); std::cout <<
" Ratio Pt/Pl: " << ratioPtPl <<
" Radius: " <<
Radius() <<
" "; dirRadius.Print(); std::cout << std::endl;
50 std::cout <<
"circleCenter: "; circleCenter.Print(); std::cout << std::endl;
51 std::cout <<
"zeroCircle: "; zeroCircle.Print(); std::cout << std::endl;
52 std::cout <<
"Phi: " << zeroCircle.Phi() <<
" deltaPhi: " << deltaPhi <<
" newPhi: " << newPhi << std::endl;
53 std::cout <<
"NewOrigin: "; newOrigin.Print(); std::cout << std::endl;
54 std::cout <<
"NewMomentum: "; newMomentum.Print(); std::cout << std::endl;
57 FairTrackPar result(newOrigin.x(), newOrigin.y(), newOrigin.z(), newMomentum.Px(), newMomentum.Py(), newMomentum.Pz(),
fCharge);
Double_t PndHelixPropagator::fFieldStrength |
|
private |
TVector3 PndHelixPropagator::fMomentum |
|
private |
TVector3 PndHelixPropagator::fOrigin |
|
private |
The documentation for this class was generated from the following files: