00001
00002 #ifndef MDC_2D_WIRE_H
00003 #define MDC_2D_WIRE_H
00004
00005 #include <TNamed.h>
00006 #include <TAttLine.h>
00007 #include <TAttFill.h>
00008 #include <TPaveLabel.h>
00009 #include <TPaveText.h>
00010 #include <TVector3.h>
00011
00012 #include "BesCircle2D.h"
00013 #include "BesPolygon2D.h"
00014 #include "BesMarker2D.h"
00015 #include "BesPaveText.h"
00016
00017 class Mdc2DWire : public TNamed, public TAttLine, public TAttFill
00018 {
00019 public:
00020
00021 Mdc2DWire();
00022 Mdc2DWire(const char* name, const char* title, Double_t rmin, Double_t rmax, Double_t dz,
00023 Double_t phi, Double_t *center );
00024 Mdc2DWire(const char* name, const char* title, Int_t N, Double_t *P);
00025 ~Mdc2DWire();
00026
00027 virtual void Init();
00028 virtual void SetStyle();
00029 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
00030 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
00031
00032 virtual void SetHighlighted(bool status = true) { fHighlighted = status; }
00033 virtual void SetFired(bool status = true) { fFired = status; }
00034 virtual bool IsHighlighted() { return fHighlighted; }
00035 virtual bool IsFired() { return fFired; }
00036
00037 virtual void AddInfo(TString info) { fInfoCon.push_back(info); }
00038 virtual void CloseInfo();
00039 virtual void ClearInfo();
00040
00041 virtual void Draw(Option_t *option = "");
00042 virtual void Paint(Option_t *option = "");
00043 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
00044
00045 virtual bool HasZRSection();
00046 Double_t Range360(Double_t input);
00047 void SetTime(Double_t time);
00048 void SetCharge(Double_t charge);
00049 void SetColorfulWire(Bool_t colorfulWire, Bool_t subEvTime);
00050 void SetQOverflow(Bool_t qOvfl);
00051 void SetEvTime(Double_t time);
00052
00053 private:
00054
00055 Int_t fWireType;
00056
00057 BesPolygon2D *fTube;
00058 BesCircle2D *fWireCircle;
00059 BesPolygon2D *fWireCone;
00060 BesMarker2D *fZRPosMarker2D;
00061
00062 Double_t fWestHole[3], fEastHole[3];
00063 Double_t fWestPhi, fEastPhi;
00064 Double_t fZRSectionPos[3];
00065 Bool_t fZRSectionFlag;
00066
00067 std::vector<TString> fInfoCon;
00068 BesPaveText *fTip;
00069 Bool_t fHighlighted;
00070 Bool_t fFired;
00071 Bool_t fColorfulWire;
00072 Bool_t qOverflow;
00073
00074
00075 Int_t lcTube;
00076 Int_t lwTube;
00077 Int_t fcTube;
00078 Int_t fsTube;
00079
00080 Int_t lcWire;
00081 Int_t lwCircle;
00082 Int_t lwCone;
00083 Int_t fcCircle;
00084 Int_t fcCone;
00085 Int_t fsCircle;
00086 Int_t fsCone;
00087
00088 Int_t lcWireFired;
00089 Int_t lwCircleFired;
00090 Int_t lwConeFired;
00091 Int_t fcCircleFired;
00092 Int_t fcConeFired;
00093 Int_t fsCircleFired;
00094 Int_t fsConeFired;
00095
00096 Int_t lcWireHL;
00097 Int_t lwCircleHL;
00098 Int_t lwConeHL;
00099 Int_t fcCircleHL;
00100 Int_t fcConeHL;
00101 Int_t fsCircleHL;
00102 Int_t fsConeHL;
00103
00104 Int_t sizeMarker;
00105 Int_t cMarker;
00106 Int_t cMarkerFired;
00107 Int_t cMarkerHL;
00108 Int_t sMarker;
00109 Int_t sMarkerFired;
00110 Int_t sMarkerHL;
00111
00112 Double_t mdcTime;
00113 Double_t mdcCharge;
00114 Double_t evTime;
00115
00116 ClassDef(Mdc2DWire,1)
00117 };
00118
00119 #endif