#ifndef ROOT_TEveTrack
#define ROOT_TEveTrack
#include <vector>
#include "TEveVSDStructs.h"
#include "TEveElement.h"
#include "TEveLine.h"
#include "TPolyMarker3D.h"
#include "TMarker.h"
class TEveTrackPropagator;
class TEveTrackList;
class TEveTrack : public TEveLine
{
friend class TEveTrackPropagator;
friend class TEveTrackList;
friend class TEveTrackCounter;
friend class TEveTrackGL;
public:
typedef std::vector<TEvePathMark*> vpPathMark_t;
typedef std::vector<TEvePathMark*>::iterator vpPathMark_i;
protected:
TEveVector fV;
TEveVector fP;
Double_t fBeta;
Int_t fPdg;
Int_t fCharge;
Int_t fLabel;
Int_t fIndex;
vpPathMark_t fPathMarks;
TEveTrackPropagator *fPropagator;
public:
TEveTrack();
TEveTrack(TParticle* t, Int_t label, TEveTrackPropagator* rs);
TEveTrack(TEveMCTrack* t, TEveTrackPropagator* rs);
TEveTrack(TEveRecTrack* t, TEveTrackPropagator* rs);
TEveTrack(const TEveTrack& t);
virtual ~TEveTrack();
virtual void SetStdTitle();
virtual void SetTrackParams(const TEveTrack& t);
virtual void SetPathMarks (const TEveTrack& t);
virtual void MakeTrack(Bool_t recurse=kTRUE);
TEveTrackPropagator* GetPropagator() const { return fPropagator; }
void SetPropagator(TEveTrackPropagator* rs);
void SetAttLineAttMarker(TEveTrackList* tl);
Int_t GetPdg() const { return fPdg; }
void SetPdg(Int_t pdg) { fPdg = pdg; }
Int_t GetCharge() const { return fCharge; }
void SetCharge(Int_t chg) { fCharge = chg; }
Int_t GetLabel() const { return fLabel; }
void SetLabel(Int_t lbl) { fLabel = lbl; }
Int_t GetIndex() const { return fIndex; }
void SetIndex(Int_t idx) { fIndex = idx; }
void AddPathMark(TEvePathMark* pm) { fPathMarks.push_back(pm); }
vpPathMark_t& GetPathMarksRef() { return fPathMarks; }
const vpPathMark_t& GetPathMarksRef() const { return fPathMarks; }
void SortPathMarksByTime();
void ImportHits();
void ImportClusters();
void ImportClustersFromIndex();
void ImportKine();
void ImportKineWithArgs(Bool_t importMother=kTRUE, Bool_t impDaugters=kTRUE,
Bool_t colorPdg =kTRUE, Bool_t recurse =kTRUE);
void PrintKineStack();
void PrintPathMarks();
virtual void CtrlClicked(TEveTrack*);
virtual void SetLineStyle(Style_t lstyle);
virtual const TGPicture* GetListTreeIcon();
virtual TClass* ProjectedClass() const;
ClassDef(TEveTrack, 1);
};
class TEveTrackList : public TEveElementList,
public TEveProjectable,
public TAttMarker,
public TAttLine
{
friend class TEveTrackListEditor;
private:
TEveTrackList(const TEveTrackList&);
TEveTrackList& operator=(const TEveTrackList&);
Bool_t fRecurse;
protected:
TEveTrackPropagator* fPropagator;
Bool_t fRnrLine;
Bool_t fRnrPoints;
Float_t fMinPt;
Float_t fMaxPt;
Float_t fLimPt;
Float_t fMinP;
Float_t fMaxP;
Float_t fLimP;
Float_t RoundMomentumLimit(Float_t x);
public:
TEveTrackList(TEveTrackPropagator* rs=0);
TEveTrackList(const Text_t* name, TEveTrackPropagator* rs=0);
virtual ~TEveTrackList();
void MakeTracks(Bool_t recurse=kTRUE);
void FindMomentumLimits(TEveElement* el, Bool_t recurse);
void SetPropagator(TEveTrackPropagator* rs);
TEveTrackPropagator* GetPropagator(){return fPropagator;}
virtual void SetMainColor(Color_t c);
virtual void SetLineColor(Color_t c){SetMainColor(c);}
virtual void SetLineColor(Color_t c, TEveElement* el);
virtual void SetLineWidth(Width_t w);
virtual void SetLineWidth(Width_t w, TEveElement* el);
virtual void SetLineStyle(Style_t s);
virtual void SetLineStyle(Style_t s, TEveElement* el);
virtual void SetMarkerColor(Color_t c);
virtual void SetMarkerColor(Color_t c, TEveElement* el);
virtual void SetMarkerSize(Size_t s);
virtual void SetMarkerSize(Size_t s, TEveElement* el);
virtual void SetMarkerStyle(Style_t s);
virtual void SetMarkerStyle(Style_t s, TEveElement* el);
void SetRnrLine(Bool_t rnr);
void SetRnrLine(Bool_t rnr, TEveElement* el);
Bool_t GetRnrLine(){return fRnrLine;}
void SetRnrPoints(Bool_t r);
void SetRnrPoints(Bool_t r, TEveElement* el);
Bool_t GetRnrPoints(){return fRnrPoints;}
void SelectByPt(Float_t min_pt, Float_t max_pt);
void SelectByPt(Float_t min_pt, Float_t max_pt, TEveElement* el);
void SelectByP (Float_t min_p, Float_t max_p);
void SelectByP (Float_t min_p, Float_t max_p, TEveElement* el);
TEveTrack* FindTrackByLabel(Int_t label);
TEveTrack* FindTrackByIndex(Int_t index);
void ImportHits();
void ImportClusters();
virtual TClass* ProjectedClass() const;
ClassDef(TEveTrackList, 1);
};
class TEveTrackCounter : public TEveElement, public TNamed
{
friend class TEveTrackCounterEditor;
public:
enum EClickAction_e { kCA_PrintTrackInfo, kCA_ToggleTrack };
private:
TEveTrackCounter(const TEveTrackCounter&);
TEveTrackCounter& operator=(const TEveTrackCounter&);
protected:
Int_t fBadLineStyle;
Int_t fClickAction;
Int_t fEventId;
Int_t fAllTracks;
Int_t fGoodTracks;
TList fTrackLists;
public:
TEveTrackCounter(const Text_t* name="TEveTrackCounter", const Text_t* title="");
virtual ~TEveTrackCounter();
Int_t GetEventId() const { return fEventId; }
void SetEventId(Int_t id) { fEventId = id; }
void Reset();
void RegisterTracks(TEveTrackList* tlist, Bool_t goodTracks);
void DoTrackAction(TEveTrack* track);
Int_t GetClickAction() const { return fClickAction; }
void SetClickAction(Int_t a) { fClickAction = a; }
void OutputEventTracks(FILE* out=0);
static TEveTrackCounter* fgInstance;
ClassDef(TEveTrackCounter, 1);
};
#endif
Last update: Thu Jan 17 08:49:24 2008
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.