00001
00002 #ifndef BESGEOTRACK_H
00003 #define BESGEOTRACK_H
00004
00005 #include <vector>
00006 #include "TPaveText.h"
00007 #include "TGeoTrack.h"
00008
00009 #include "BesMarker2D.h"
00010 #include "BesPaveText.h"
00011
00012 class BesGeoTrack : public TGeoTrack {
00013
00014 public:
00015
00016 BesGeoTrack();
00017 BesGeoTrack(Int_t id, Int_t pdgcode, TVirtualGeoTrack *parent=0, TObject *particle=0);
00018 virtual ~BesGeoTrack();
00019
00020 virtual void Init();
00021 virtual void AddHit(TObject* obj) { fHits.Add(obj); }
00022 virtual void AddInfo(TString info) { fInfoCon.push_back(info); }
00023 virtual void CloseInfo();
00024 virtual void SetCharge(Int_t charge);
00025 virtual void SetTrackType(Int_t type) { fType = type; }
00026
00027 virtual void AddPoint(Double_t x, Double_t y, Double_t z, Double_t t);
00028 virtual void SetMarker(Double_t x, Double_t y, Double_t z);
00029
00030
00031 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
00032 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
00033 virtual void Draw(Option_t *option = "");
00034 virtual void Paint(Option_t *option = "");
00035 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
00036
00037 private:
00038
00039 TObjArray fHits;
00040 std::vector<TString> fInfoCon;
00041 Int_t fCharge;
00042 Int_t fType;
00043
00044 BesPaveText *fTip;
00045 TPolyLine3D *fPolyLine3D;
00046 BesMarker2D *fMarker;
00047
00048 ClassDef(BesGeoTrack,1)
00049 };
00050
00051 #endif
00052
00053