00001
00002 #ifndef TOF_2D_SCIN_H
00003 #define TOF_2D_SCIN_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 Tof2DScin : public TNamed, public TAttLine, public TAttFill
00019 {
00020 public:
00021
00022 Tof2DScin();
00023 Tof2DScin(const char* name, const char* title, Int_t N, Double_t *P, Int_t part);
00024 ~Tof2DScin();
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 SetTime(Double_t time) { fTime = time; }
00040 virtual void SetCharge(Double_t charge) { fCharge = charge; }
00041 virtual Double_t GetTime() { return fTime; }
00042 virtual Double_t GetCharge() { return fCharge; }
00043 virtual void ResetTimeCharge() { fTime = 0.0; fCharge = 0.0; }
00044
00045 virtual void Draw(Option_t *option = "");
00046 virtual void Paint(Option_t *option = "");
00047 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
00048
00049 virtual Int_t GetPart() { return fPart; }
00050 virtual bool HasZRSection();
00051 Double_t GetAngle(Double_t x, Double_t y);
00052 Double_t Range360(Double_t input);
00053
00054 private:
00055
00056 Int_t fPart;
00057 BesPolygon2D *fScinXY;
00058 BesPolygon2D *fScinZR;
00059 BesPolygon2D *fScinXYFired;
00060 BesPolygon2D *fScinZRFired;
00061
00062 static const Int_t fChargeMax = 50;
00063 Double_t fTime, fCharge;
00064
00065 Double_t fZRSectionTolerance[3];
00066 Double_t fPhiMin, fPhiMax;
00067
00068 std::vector<TString> fInfoCon;
00069 BesPaveText *fTip;
00070 bool fHighlighted;
00071 bool fFired;
00072
00073
00074 Int_t lcScin;
00075 Int_t lwScin;
00076 Int_t fcScin;
00077 Int_t fsScin;
00078
00079 Int_t lcScinFired;
00080 Int_t lwScinFired;
00081 Int_t fcScinFired;
00082 Int_t fsScinFired;
00083
00084 Int_t lcScinHL;
00085 Int_t lwScinHL;
00086 Int_t fcScinHL;
00087 Int_t fsScinHL;
00088
00089 Int_t lcScinFiredHL;
00090 Int_t lwScinFiredHL;
00091 Int_t fcScinFiredHL;
00092 Int_t fsScinFiredHL;
00093
00094 ClassDef(Tof2DScin,1)
00095
00096 };
00097
00098 #endif