00001
00002 #ifndef MUC_2D_STRIP_H
00003 #define MUC_2D_STRIP_H
00004
00005 #include <vector>
00006 #include <TNamed.h>
00007 #include <TAttLine.h>
00008 #include <TAttFill.h>
00009 #include <TPaveLabel.h>
00010 #include <TPaveText.h>
00011 #include <TVector3.h>
00012
00013 #include "BesCircle2D.h"
00014 #include "BesPolygon2D.h"
00015 #include "BesMarker2D.h"
00016 #include "BesPaveText.h"
00017
00018 class Muc2DStrip : public TNamed, public TAttLine, public TAttFill
00019 {
00020 public:
00021
00022 Muc2DStrip();
00023 Muc2DStrip(const char* name, const char* title, Int_t N, Double_t *P, Int_t part, Int_t seg, Int_t gap, Int_t strip);
00024 ~Muc2DStrip();
00025
00026 virtual void SetStyle();
00027 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
00028 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
00029
00030 virtual void SetHighlighted(bool status = true) { fHighlighted = status; }
00031 virtual void SetFired(bool status = true) { fFired = status; }
00032 virtual bool IsHighlighted() { return fHighlighted; }
00033 virtual bool IsFired() { return fFired; }
00034
00035 virtual void AddInfo(TString info) { fInfoCon.push_back(info); }
00036 virtual void CloseInfo();
00037 virtual void ClearInfo();
00038
00039 virtual void Draw(Option_t *option = "");
00040 virtual void Paint(Option_t *option = "");
00041 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
00042
00043 virtual Int_t GetPart() { return fPart; }
00044 virtual Int_t GetSeg() { return fSeg; }
00045 virtual Int_t GetGap() { return fGap; }
00046 virtual Int_t GetStrip() { return fStrip; }
00047
00048 virtual bool IsZRVisible();
00049 Double_t GetAngle(Double_t x, Double_t y);
00050 Double_t Range360(Double_t input);
00051
00052 private:
00053
00054 Int_t fPart;
00055 Int_t fSeg;
00056 Int_t fGap;
00057 Int_t fStrip;
00058
00059 BesPolygon2D *fStripXY;
00060 BesPolygon2D *fStripZR;
00061
00062 std::vector<TString> fInfoCon;
00063 BesPaveText *fTip;
00064 bool fHighlighted;
00065 bool fFired;
00066
00067
00068 Int_t lcStrip;
00069 Int_t lwStrip;
00070 Int_t lsStrip;
00071 Int_t fcStrip;
00072 Int_t fsStrip;
00073
00074 Int_t lcStripFired;
00075 Int_t lwStripFired;
00076 Int_t lsStripFired;
00077 Int_t fcStripFired;
00078 Int_t fsStripFired;
00079
00080 Int_t lcStripHL;
00081 Int_t lwStripHL;
00082 Int_t lsStripHL;
00083 Int_t fcStripHL;
00084 Int_t fsStripHL;
00085
00086 static const Int_t m_kDrawLineRange = 2000;
00087 ClassDef(Muc2DStrip,1)
00088
00089 };
00090
00091 #endif