73 fV(t->Vx(), t->Vy(), t->Vz()),
74 fP(t->Px(), t->Py(), t->Pz()),
76 fBeta(t->
P()/t->Energy()),
82 fStatus(t->GetStatusCode()),
105 fV(t->Vx(), t->Vy(), t->Vz()),
106 fP(t->Px(), t->Py(), t->Pz()),
108 fBeta(t->
P()/t->Energy()),
114 fStatus(t->GetStatusCode()),
207 fLockPoints(t.fLockPoints),
209 fLastPMIdx(t.fLastPMIdx),
248 for (
Int_t i = 0; i <
n; ++i, p += 3)
271 "pT=%.3f, pZ=%.3f\nV=(%.3f, %.3f, %.3f)",
302 std::back_insert_iterator<vPathMark_t>(
fPathMarks));
365 currP.
fX = pm->fP.fX; currP.
fY = pm->fP.fY; currP.
fZ = pm->fP.fZ;
378 currP.
fX -= pm->fP.fX; currP.
fY -= pm->fP.fY; currP.
fZ -= pm->fP.fZ;
383 if (p > dp) currP *= 1.0 - dp / p;
406 TEveVectorD vtopass = pm->fV + pm->fE*(pm->fE.Dot(delta));
416 if (p > dp) currP *= 1.0 - dp / p;
421 Warning(
"TEveTrack::MakeTrack",
"Failed to intersect plane for Cluster2D. Ignoring path-mark.");
435 if (p > dp) currP *= 1.0 - dp / p;
506 struct Cmp_pathmark_t
528 printf(
"TEveTrack '%s', number of path marks %d, label %d\n",
533 printf(
" %-9s p: %8f %8f %8f Vertex: %8e %8e %8e %g Extra:%8f %8f %8f\n",
535 pm->fP.fX, pm->fP.fY, pm->fP.fZ,
536 pm->fV.fX, pm->fV.fY, pm->fV.fZ,
537 pm->fE.fX, pm->fE.fY, pm->fE.fZ,
550 Emit(
"SecSelected(TEveTrack*)", (
Long_t)track);
575 fMinPt (0), fMaxPt (0), fLimPt (0),
576 fMinP (0), fMaxP (0), fLimP (0)
601 fMinPt (0), fMaxPt (0), fLimPt (0),
602 fMinP (0), fMaxP (0), fLimP (0)
714 using namespace TMath;
716 if (x < 1e-3)
return 1e-3;
719 return Ceil(fac*x) / fac;
727 using namespace TMath;
1002 const Double_t minptsq = min_pt*min_pt;
1003 const Double_t maxptsq = max_pt*max_pt;
1008 Bool_t on = ptsq >= minptsq && ptsq <= maxptsq;
1009 (*i)->SetRnrState(on);
1020 const Double_t minptsq = min_pt*min_pt;
1021 const Double_t maxptsq = max_pt*max_pt;
1029 Bool_t on = ptsq >= minptsq && ptsq <= maxptsq;
1047 const Double_t minpsq = min_p*min_p;
1048 const Double_t maxpsq = max_p*max_p;
1053 Bool_t on = psq >= minpsq && psq <= maxpsq;
1054 (*i)->SetRnrState(psq >= minpsq && psq <= maxpsq);
1065 const Double_t minpsq = min_p*min_p;
1066 const Double_t maxpsq = max_p*max_p;
1074 Bool_t on = psq >= minpsq && psq <= maxpsq;
1089 if (((
TEveTrack*)(*i))->GetLabel() == label)
1112 if (((
TEveTrack*)(*i))->GetIndex() == index)
virtual Style_t GetLineStyle() const
virtual void DecRefCount(TEveElement *re)
Decrease reference count and remove re from the list of back-references.
void SanitizeMinMaxCuts()
Set Min/Max cuts so that they are within detected limits.
void SetRnrPoints(Bool_t r)
Set rendering of track as points for the list and the elements.
virtual void SetTrackParams(const TEveTrack &t)
Copy track parameters from t.
Double_t Floor(Double_t x)
virtual void * GetUserData() const =0
Int_t GetCurrentPoint() const
Get index of current point on track.
virtual void SetLineColor(Color_t c)
void EditElement(TEveElement *element)
Show element in default editor.
void SetRnrPoints(Bool_t r)
Set rendering of points. Propagate to projected lines.
virtual void SetName(const char *name)
Change (i.e.
void SetRnrLine(Bool_t rnr)
Set rendering of track as line for the list and the elements.
An arbitrary polyline with fixed line and marker attributes.
virtual void SetLineWidth(Width_t w)
Set line width for the list and the elements.
TGListTree * GetListTree() const
Bool_t IntersectPlane(const TEveVectorD &p, const TEveVectorD &point, const TEveVectorD &normal, TEveVectorD &itsect)
Find intersection of currently propagated track with a plane.
virtual Int_t Size() const
virtual void CopyVizParams(const TEveElement *el)
Copy visualization parameters from element el.
static const TGPicture * fgListTreeIcons[9]
TEveTrackList(const TEveTrackList &)
Bool_t GetRnrPoints() const
virtual Bool_t SetRnrState(Bool_t rnr)
Set render state of this element and of its children to the same value.
virtual void CopyVizParams(const TEveElement *el)
Copy visualization parameters from element el.
virtual void ClonePoints(const TEvePointSet &e)
Clone points and all point-related information from point-set 'e'.
Short_t Min(Short_t a, Short_t b)
vPathMark_t & RefPathMarks()
Bool_t GetFitDaughters() const
Bool_t GetRnrLine() const
virtual void SetMarkerStyle(Style_t mstyle=1)
Set marker style, propagate to projecteds.
TEveTrackPropagator * fPropagator
Last path-mark index tried in track-propagation.
virtual void SetMarkerColor(Color_t c)
Set marker color for the list and the elements.
virtual void WriteVizParams(std::ostream &out, const TString &var)
Write visualization parameters.
static const char * ToString(Bool_t b)
Convert Bool_t to string - kTRUE or kFALSE.
virtual void SetLineStyle(Style_t lstyle)
Set line-style of the line.
virtual void SetTitle(const char *t)
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
virtual const char * GetName() const
Returns name of object.
const char * Data() const
virtual void CopyVizParams(const TEveElement *el)
Copy visualization parameters from element el.
void SelectByP(Double_t min_p, Double_t max_p)
Select visibility of tracks by momentum.
void BBoxCheckPoint(Float_t x, Float_t y, Float_t z)
Bool_t GetFitCluster2Ds() const
virtual void WriteVizParams(std::ostream &out, const TString &var)
Write visualization parameters.
virtual Bool_t GoToLineSegment(const TEveVectorD &s, const TEveVectorD &r, TEveVectorD &p)
Propagate particle with momentum p to line with start point s and vector r to the second point...
virtual void SetMarkerStyle(Style_t s)
Set marker style for the list and the elements.
virtual void SaveLineAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
Save line attributes as C++ statement(s) on output stream out.
virtual void MakeTrack(Bool_t recurse=kTRUE)
Calculate track representation based on track data and current settings of the propagator.
A list of tracks supporting change of common attributes and selection based on track parameters...
virtual void SetMainColor(Color_t c)
Set main (line) color for the list and the elements.
void SetPropagator(TEveTrackPropagator *prop)
Set track's render style.
Bool_t GetFitLineSegments() const
virtual void SaveMarkerAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1)
Save line attributes as C++ statement(s) on output stream out.
Base-class for non-linear projections.
virtual void SetMarkerSize(Size_t msize=1)
Set marker size, propagate to projecteds.
Bool_t GetRnrLine() const
void Emit(const char *signal)
Acitvate signal without args.
static Bool_t IsOutsideBounds(const TEveVectorD &point, Double_t maxRsqr, Double_t maxZ)
virtual Bool_t GoToVertex(TEveVectorD &v, TEveVectorD &p)
Propagate particle with momentum p to vertex v.
void FillPointSet(TEvePointSet *ps) const
Reset ps and populate it with points in propagation cache.
Bool_t GetFitReferences() const
TEveTrack * FindTrackByIndex(Int_t index)
Find track by index, select it and display it in the editor.
virtual Size_t GetMarkerSize() const
static TEveTrackPropagator fgDefault
virtual void SetLineColor(Color_t col)
virtual TClass * ProjectedClass(const TEveProjection *p) const
Virtual from TEveProjectable, returns TEveTrackListProjected class.
Bool_t GetFitDecay() const
R__EXTERN TEveManager * gEve
virtual void SetLineWidth(Width_t lwidth)
Set line-style of the line.
TParticlePDG * GetPDG(Int_t mode=0) const
returns a pointer to the TParticlePDG object using the pdgcode if mode == 0 (default) always get a fr...
char * Form(const char *fmt,...)
vPathMark_t::const_iterator vPathMark_ci
void BBoxZero(Float_t epsilon=0, Float_t x=0, Float_t y=0, Float_t z=0)
Create cube of volume (2*epsilon)^3 at (x,y,z).
virtual ~TEveTrackList()
Destructor.
The ROOT global object gROOT contains a list of all defined classes.
TEveTrack * FindTrackByLabel(Int_t label)
Find track by label, select it and display it in the editor.
virtual void SecSelected(TEveTrack *)
Emits "SecSelected(TEveTrack*)" signal.
Double_t GetTrackLength(Int_t start_point=0, Int_t end_point=-1) const
Calculate track length from start_point to end_point.
Holding structure for a number of track rendering parameters.
Visual representation of a track.
virtual Color_t GetLineColor() const
virtual void ComputeBBox()
Compute the bounding box of the track.
virtual void SetMainColor(Color_t color)
Set main color of the element.
void SelectByPt(Double_t min_pt, Double_t max_pt)
Select visibility of tracks by transverse momentum.
virtual void SetMarkerColor(Color_t col)
Set marker color. Propagate to projected lines.
TEveGListTreeEditorFrame * GetLTEFrame() const
void SetRnrLine(Bool_t r)
Set rendering of line. Propagate to projected lines.
TGListTreeItem * GetSelected() const
TRObject operator()(const T1 &t1) const
void ResetTrack()
Reset cache holding particle trajectory.
MyComplex< T > P(MyComplex< T > z, T c_real, T c_imag)
[MyComplex]
virtual const char * GetName() const
return particle name
virtual void SetLineStyle(Style_t s)
Set line style for the list and the elements.
virtual const char * GetName() const
Returns name of object.
virtual void SetMarkerSize(Size_t s)
Set marker size for the list and the elements.
virtual void SetPathMarks(const TEveTrack &t)
Copy path-marks from t.
virtual const TGPicture * GetListTreeIcon(Bool_t open=kFALSE)
Returns list-tree icon for TEveTrack.
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
TEveTrackPropagator * fPropagator
Double_t RoundMomentumLimit(Double_t x)
Round the momentum limit up to a nice value.
void Reset(Int_t n_points=0, Int_t n_int_ids=0)
Drop all data and set-up the data structures to recive new data.
Binding & operator=(OUT(*fun)(void))
virtual TClass * ProjectedClass(const TEveProjection *p) const
Virtual from TEveProjectable, return TEveTrackProjected class.
void SetPropagator(TEveTrackPropagator *prop)
Set default propagator for tracks.
virtual Color_t GetMarkerColor() const
Bool_t HasChildren() const
TEveTrack()
Default constructor.
Short_t Max(Short_t a, Short_t b)
virtual void WriteVizParams(std::ostream &out, const TString &var)
Write-out visual parameters for this object.
virtual void CopyVizParams(const TEveElement *el)
Copy visualization parameters from element el.
Double_t Ceil(Double_t x)
void MakeTracks(Bool_t recurse=kTRUE)
Regenerate the visual representations of tracks.
Bool_t GetRnrPoints() const
Exception class thrown by TEve classes and macros.
virtual void SetStdTitle()
Set standard track title based on most data-member values.
virtual ~TEveTrack()
Destructor.
virtual TGListTreeItem * FindListTreeItem(TGListTree *ltree)
Find any list-tree-item of this element in list-tree 'ltree'.
void SortPathMarksByTime()
Sort registered pat-marks by time.
void SetAttLineAttMarker(TEveTrackList *tl)
Set line and marker attributes from TEveTrackList.
void PrintPathMarks()
Print registered path-marks.
void HighlightItem(TGListTreeItem *item)
Highlight item.
virtual Style_t GetMarkerStyle() const
virtual void IncRefCount(TEveElement *re)
Increase reference count and add re to the list of back-references.
virtual Width_t GetLineWidth() const
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
void BBoxInit(Float_t infinity=1e6)
Dynamic Float_t[6] X(min,max), Y(min,max), Z(min,max)
vPathMark_t::iterator vPathMark_i
void InitTrack(const TEveVectorD &v, Int_t charge)
Initialize internal data-members for given particle parameters.
virtual void WriteVizParams(std::ostream &out, const TString &var)
Write visualization parameters.
virtual void GoToBounds(TEveVectorD &p)
Propagate particle to bounds.
void FindMomentumLimits(TEveElement *el, Bool_t recurse=kTRUE)
Loop over track elements of argument el and find highest pT and p.
void SetSelected(TGListTreeItem *item)
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.