9 #ifndef PNDHELIXPROPAGATOR_H_ 10 #define PNDHELIXPROPAGATOR_H_ 14 #include "FairTrackPar.h" 16 #include "FairLogger.h" 17 #include "FairField.h" 18 #include "FairLogger.h" 53 PndHelixPropagator(Double_t fieldStrength, TVector3 origin, TVector3 momentum, Double_t charge);
63 Bool_t
FindPCA(FairTrackPar* TStart);
88 Bool_t
Propagate(FairTrackPar* TStart, FairTrackPar* TEnd, Int_t charge);
130 [[gnu::unused]] FairTrackPar* par =
nullptr)
132 if (dir >= 0) fBackPropagate = kFALSE;
133 else fBackPropagate = kTRUE;
135 LOG(info) <<
"PndHelixPropagator::SetPCAPropagation: only propagation to point implemented at the moment";
150 [[gnu::unused]]
const TVector3& v1,
151 [[gnu::unused]]
const TVector3& v2)
153 LOG(info) <<
"PndHelixPropagator: Propagation to plane not implemented yet";
163 Bool_t
SetOriginPlane([[gnu::unused]]
const TVector3& v0, [[gnu::unused]]
const TVector3& v1)
165 LOG(info) <<
"PndHelixPropagator: Propagation from plane not implemented yet";
177 [[gnu::unused]] Int_t copyNo,
178 [[gnu::unused]] Int_t option)
180 LOG(info) <<
"PndHelixPropagator: Propagation to volume not implemented yet";
191 LOG(info) <<
"PndHelixPropagator: Propagation to given track length not implemented yet";
199 void Init(FairTrackPar* TStart);
Bool_t SetOriginPlane([[gnu::unused]] const TVector3 &v0, [[gnu::unused]] const TVector3 &v1)
Method to set the plane to propagate particles from.
Bool_t SetDestinationVolume([[gnu::unused]] std::string volName, [[gnu::unused]] Int_t copyNo, [[gnu::unused]] Int_t option)
Method to set the volume to propagate particles to.
TVector3 GetPoint()
Get point to which to propagate.
ClassDef(PndPropagator, 1)
Double_t fCharge
sign of charge
Double_t fDeltaPhi
propagated angle
Bool_t SetDestinationPlane([[gnu::unused]] const TVector3 &v0, [[gnu::unused]] const TVector3 &v1, [[gnu::unused]] const TVector3 &v2)
Method to set the plane to propagate particles to.
Helix propagator for PandaRoot.
FairTrackPar PropagateByAngle(Double_t step)
Calculate position and momentum at requested.
void SetFieldStrength(Double_t field_strength)
Set field strength in z-Direction.
FairTrackPar PropagateToS(Double_t arclength)
Calculate position and momentum at requested arc length.
PndHelixPropagator()
default constructor
Bool_t SetDestinationLength([[gnu::unused]] Float_t length)
Method to set the length to propagate particles to.
FairTrackPar PropagateToZ(Double_t zpos)
Calculate position and momentum at requested z-Value.
Bool_t SetPCAPropagation(Int_t pca_mode=1, Int_t dir=1, [[gnu::unused]] FairTrackPar *par=nullptr)
Set PCA propagation.
FairField * fMagneticField
magnetic field in detector
Bool_t FindPCAOnStraightLine()
Find point of closest approach on straight track.
Int_t GetPcaMode()
Get propagation mode.
virtual ~PndHelixPropagator()
Int_t fPcaMode
if 1: propagate to point, if 2: propagate to line, if 0: no pca
void SetMagneticField(FairField *field)
Set magnetic field in detector.
void Init(FairTrackPar *TStart)
Set initial position and momentum from track parameters.
TVector3 fPoint
point to which to calculate pca
FairTrackPar PropagateToXYPos(TVector2 xypos)
Propagate to closest distance to given xy position.
Double_t fFieldStrength
magentic field strength in z-Direction in Tesla
Bool_t FindPCAOnHelix()
Find point of closest approach on helix track.
Bool_t FindPCA(FairTrackPar *TStart)
default destructor
Bool_t Propagate(FairTrackPar *TStart, FairTrackPar *TEnd, Int_t charge)
Function to propagate track to point of closest approach.
Double_t Radius()
Calculate radius of track circle of charged particle.
TVector3 fInitialMomentum
initial momentum in GeV
Bool_t fBackPropagate
kTRUE if backward propagation
Propagator interface class for PandaRoot.
TVector3 FindCircleCenter()
Find position of track circle center.
Double_t GetDeltaPhi()
Get difference in phi between initial and final vector.