12#ifndef ROOT7_REveTrackPropagator 
   13#define ROOT7_REveTrackPropagator 
   24namespace Experimental {
 
   47      printf(
"v(%f, %f, %f) B(%f, %f, %f) \n", 
x, 
y, z, 
b.fX, 
b.fY, 
b.fZ);
 
 
 
   97      return b1 > b2 ? b1 : b2;
 
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
 
REvePointSet is a render-element holding a collection of 3D points with optional per-point TRef and a...
 
REveMagFieldConst Interface to constant magnetic field.
 
REveVectorD GetField(Double_t, Double_t, Double_t) const override
 
~REveMagFieldConst() override
 
REveMagFieldConst(Double_t x, Double_t y, Double_t z)
 
Double_t GetMaxFieldMag() const override
 
REveMagFieldDuo Interface to magnetic field with two different values depending on radius.
 
~REveMagFieldDuo() override
 
REveVectorD GetField(Double_t x, Double_t y, Double_t) const override
 
REveMagFieldDuo(Double_t r, Double_t bIn, Double_t bOut)
 
Double_t GetMaxFieldMag() const override
 
REveMagField Abstract interface to magnetic field.
 
virtual Double_t GetMaxFieldMag() const =0
 
REveVectorD GetField(const REveVectorD &v) const
 
virtual void PrintField(Double_t x, Double_t y, Double_t z) const
 
virtual Bool_t IsConst() const
 
virtual REveVectorD GetField(Double_t x, Double_t y, Double_t z) const =0
 
REveRefBackPtr reference-count with back pointers.
 
REveTrackPropagator Calculates path of a particle taking into account special path-marks and imposed ...
 
virtual Bool_t GoToVertex(REveVectorD &v, REveVectorD &p)
Propagate particle with momentum p to vertex v.
 
UChar_t GetProjTrackBreaking() const
 
REveTrackPropagator & operator=(const REveTrackPropagator &)=delete
 
void Update(const REveVector4D &v, const REveVectorD &p, Bool_t full_update=kFALSE, Bool_t enforce_max_step=kFALSE)
Update helix / B-field projection state.
 
Double_t GetMaxOrbs() const
 
UChar_t fProjTrackBreaking
 
void SetRnrPTBMarkers(Bool_t x)
Set projection break-point rendering and rebuild tracks.
 
REveVectorD GetMagField(Double_t x, Double_t y, Double_t z)
 
Bool_t GetRnrDecay() const
 
static Bool_t IsOutsideBounds(const REveVectorD &point, Double_t maxRsqr, Double_t maxZ)
 
void SetRnrDaughters(Bool_t x)
Set daughter rendering and rebuild tracks.
 
Bool_t GetRnrDaughters() const
 
Bool_t HelixIntersectPlane(const REveVectorD &p, const REveVectorD &point, const REveVectorD &normal, REveVectorD &itsect)
Intersect helix with a plane.
 
~REveTrackPropagator() override
Destructor.
 
void SetFitLineSegments(Bool_t x)
Set line segment fitting and rebuild tracks.
 
void SetStepper(EStepper_e s)
 
void SetRnrCluster2Ds(Bool_t x)
Set rendering of 2D-clusters and rebuild tracks.
 
Bool_t GetFitLineSegments() const
 
Bool_t LineIntersectPlane(const REveVectorD &p, const REveVectorD &point, const REveVectorD &normal, REveVectorD &itsect)
Intersect line with a plane.
 
void CheckReferenceCount(const std::string &from="<unknown>") override
Check reference count - virtual from REveElement.
 
Bool_t GetFitReferences() const
 
Double_t GetMinAng() const
Get maximum step angle.
 
void ResetTrack()
Reset cache holding particle trajectory.
 
void Step(const REveVector4D &v, const REveVectorD &p, REveVector4D &vOut, REveVectorD &pOut)
Wrapper to step helix.
 
Double_t GetTrackLength(Int_t start_point=0, Int_t end_point=-1) const
Calculate track length from start_point to end_point.
 
void InitTrack(const REveVectorD &v, Int_t charge)
Initialize internal data-members for given particle parameters.
 
void LineToBounds(REveVectorD &p)
Propagate neutral particle with momentum p to bounds.
 
void SetRnrReferences(Bool_t x)
Set track-reference rendering and rebuild tracks.
 
void ClosestPointFromVertexToLineSegment(const REveVectorD &v, const REveVectorD &s, const REveVectorD &r, Double_t rMagInv, REveVectorD &c)
Get closest point from given vertex v to line segment defined with s and r.
 
Bool_t IntersectPlane(const REveVectorD &p, const REveVectorD &point, const REveVectorD &normal, REveVectorD &itsect)
Find intersection of currently propagated track with a plane.
 
void RebuildTracks()
Rebuild all tracks using this render-style.
 
static const Double_t fgkB2C
 
void SetMaxAng(Double_t x)
Set maximum step angle and rebuild tracks.
 
Int_t GetCurrentPoint() const
Get index of current point on track.
 
static Double_t fgDefMagField
 
Bool_t PointOverVertex(const REveVector4D &v0, const REveVector4D &v, Double_t *p=nullptr)
 
Bool_t GetFitDaughters() const
 
void SetMaxZ(Double_t x)
Set maximum z and rebuild tracks.
 
void SetMaxStep(Double_t x)
Set maximum step-size and rebuild tracks.
 
void OnZeroRefCount() override
Virtual from REveRefBackPtr - track reference count has reached zero.
 
Bool_t GetRnrCluster2Ds() const
 
void SetRnrDecay(Bool_t x)
Set decay rendering and rebuild tracks.
 
std::vector< REveVector4D > fPoints
 
Bool_t GetFitDecay() const
 
void FillPointSet(REvePointSet *ps) const
Reset ps and populate it with points in propagation cache.
 
Bool_t LoopToLineSegment(const REveVectorD &s, const REveVectorD &r, REveVectorD &p)
Propagate charged particle with momentum p to line segment with point s and vector r to the second po...
 
Bool_t GetFitCluster2Ds() const
 
void DistributeOffset(const REveVectorD &off, Int_t first_point, Int_t np, REveVectorD &p)
Distribute offset between first and last point index and rotate momentum.
 
const std::vector< REveVector4D > & GetLastPoints() const
 
void SetFitDaughters(Bool_t x)
Set daughter creation point fitting and rebuild tracks.
 
void SetFitDecay(Bool_t x)
Set decay fitting and rebuild tracks.
 
Double_t GetDelta() const
 
void SetFitReferences(Bool_t x)
Set track-reference fitting and rebuild tracks.
 
void StampAllTracks()
Element-change notification.
 
REveTrackPropagator(const REveTrackPropagator &)=delete
 
void SetMaxOrbs(Double_t x)
Set maximum number of orbits and rebuild tracks.
 
void SetEditPathMarks(Bool_t x)
 
void StepRungeKutta(Double_t step, Double_t *vect, Double_t *vout)
Wrapper to step with method RungeKutta.
 
void SetProjTrackBreaking(UChar_t x)
Set projection break-point mode and rebuild tracks.
 
Bool_t ClosestPointBetweenLines(const REveVectorD &, const REveVectorD &, const REveVectorD &, const REveVectorD &, REveVectorD &out)
Get closest point on line defined with vector p0 and u.
 
void SetMagFieldObj(REveMagField *field, Bool_t own_field=kTRUE)
Set constant magnetic field and rebuild tracks.
 
Double_t GetMaxStep() const
 
void SetRnrFV(Bool_t x)
Set first-vertex rendering and rebuild tracks.
 
void LoopToBounds(REveVectorD &p)
Propagate charged particle with momentum p to bounds.
 
EStepper_e GetStepper() const
 
Bool_t GetEditPathMarks() const
 
Bool_t GetRnrPTBMarkers() const
 
void PrintMagField(Double_t x, Double_t y, Double_t z) const
 
void SetMaxR(Double_t x)
Set maximum radius and rebuild tracks.
 
virtual Bool_t GoToLineSegment(const REveVectorD &s, const REveVectorD &r, REveVectorD &p)
Propagate particle with momentum p to line with start point s and vector r to the second point.
 
static REveTrackPropagator fgDefault
 
void SetMagField(Double_t b)
 
void SetDelta(Double_t x)
Set maximum error and rebuild tracks.
 
void SetMinAng(Double_t x)
Set maximum step angle and rebuild tracks.
 
virtual void GoToBounds(REveVectorD &p)
Propagate particle to bounds.
 
Bool_t LoopToVertex(REveVectorD &v, REveVectorD &p)
Propagate charged particle with momentum p to vertex v.
 
void SetMagField(Double_t bX, Double_t bY, Double_t bZ)
Set constant magnetic field and rebuild tracks.
 
Bool_t LineToVertex(REveVectorD &v)
Propagate neutral particle to vertex v.
 
Double_t GetMaxAng() const
 
void SetFitCluster2Ds(Bool_t x)
Set 2D-cluster fitting and rebuild tracks.
 
Bool_t GetRnrReferences() const
 
REveMagField * fMagFieldObj
 
std::vector< REveVector4D > fLastPoints
 
REveVector4T A four-vector template without TObject inheritance and virtual functions.
 
TT Dot(const REveVectorT &a) const
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
 
Double_t Sqrt(Double_t x)
Returns the square root of x.
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
 
void UpdateHelix(const REveVectorD &p, const REveVectorD &b, Bool_t full_update, Bool_t enforce_max_step)
Update helix parameters.
 
void Step(const REveVector4D &v, const REveVectorD &p, REveVector4D &vOut, REveVectorD &pOut)
Step helix for given momentum p from vertex v.
 
void UpdateRK(const REveVectorD &p, const REveVectorD &b)
Update helix for stepper RungeKutta.
 
void UpdateCommon(const REveVectorD &p, const REveVectorD &b)
Common update code for helix and RK propagation.
 
Helix_t()
Default constructor.