/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EventDisplay/BesVisLib/BesVisLib-00-04-04/BesVisLib/Muc2DStrip.h

Go to the documentation of this file.
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); // degree, 0~360
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   // style
00068   Int_t lcStrip; // line color
00069   Int_t lwStrip; // line width
00070   Int_t lsStrip; // line width
00071   Int_t fcStrip; // fill color
00072   Int_t fsStrip; // fill style
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; // if view x range > 2000, a barrel strip is very small, so dont draw edge lines 
00087   ClassDef(Muc2DStrip,1) // Muc 2D Strip
00088 
00089 };
00090 
00091 #endif

Generated on Tue Nov 29 23:12:04 2016 for BOSS_7.0.2 by  doxygen 1.4.7