// $Header: /data/reve-cvs/reve/gui/GuiTrack.h,v 1.6 2005/12/07 19:53:56 mtadel Exp $ #ifndef REVEGUI_GuiTrack_H #define REVEGUI_GuiTrack_H #include #include class TPolyLine3D; namespace ReveGui { class GuiTrackRnrStyle; class GuiTrackContainer; class GuiTrack : public TObject { friend class GuiTrackContainer; protected: Reve::Vector fV; Reve::Vector fP; Double_t fBeta; Int_t fCharge; Int_t fLabel; Bool_t fRnrSelf; Int_t fCol; TPolyLine3D* fPolyLine; GuiTrackRnrStyle* fRnrStyle; TList* fDaughters; public: GuiTrack(); GuiTrack(Reve::MCTrack* t, GuiTrackRnrStyle* rs); GuiTrack(Reve::RecTrack* t, GuiTrackRnrStyle* rs); virtual ~GuiTrack(); void MakeTrack(); virtual void Draw(Option_t* opt=""); Bool_t GetRnrSelf() { return fRnrSelf; } void SetRnrSelf(Bool_t rnr); void SetRnrDaughtersRec(Bool_t rnr); void ImportDaughtersRec(); Int_t GetLabel() { return fLabel; } TList* GetDaughters() { return fDaughters; } ClassDef(GuiTrack, 1); }; // endclass GuiTrack /**************************************************************************/ // GuiTrackRnrStyle /**************************************************************************/ class GuiTrackRnrStyle : public TObject { private: void _init(); protected: Int_t fColorIdx; public: Float_t fMagField; // track limits Float_t fMaxR; Float_t fMaxZ; // helix limits Float_t fMaxOrbs; Float_t fMinAng; Float_t fDelta; GuiTrackRnrStyle(){ _init(); } void SetColorIdx(Int_t c){fColorIdx =c;} Int_t GetColorIdx(){return fColorIdx;} static Float_t sDefaultMagField; ClassDef(GuiTrackRnrStyle, 1); }; // endclass GuiTrackRnrStyle /**************************************************************************/ // GuiTrackContainer /**************************************************************************/ class GuiTrackContainer : public TObject { private: void _init(); protected: GuiTrackRnrStyle* mRnrStyle; //Int_t fColor; std::vector mTracks; Bool_t fRnrTracks; Int_t fN; public: GuiTrackContainer(){_init();} void SetRnrStyle(GuiTrackRnrStyle* rst) {mRnrStyle= rst;} GuiTrackRnrStyle* GetRnrStyle(){return mRnrStyle;} Bool_t GetRnrTracks(){return fRnrTracks;} void SetRnrTracks(Bool_t); void RemakeTracks(); void SetMaxR(Double_t x); void SetMaxZ(Double_t x); void SetMaxOrbs(Double_t x); void SetColorIdx(Int_t col); void SetColor(Pixel_t pixel); void SetColorUpdate(Pixel_t pixel); // void UpdateBounds(); void AddTrack(GuiTrack* track) { mTracks.push_back(track); fN++;} Int_t GetNTracks() { return fN; } Int_t GetColor() { return mRnrStyle ? mRnrStyle->GetColorIdx() : 0; } ClassDef(GuiTrackContainer, 1); }; } // namespace ReveGui #endif