00001
00017 #ifndef GFXDIGIT_H
00018 #define GFXDIGIT_H
00019
00020
00021 #ifndef __CINT__
00022 #include "GfxDigitListCfg.h"
00023 #endif
00024
00025 #include <TObject.h>
00026
00027 class CandDigitHandle;
00028 class PlexSEIdAltLItem;
00029 class GfxDigitList;
00030
00031 class GfxDigit : public TObject
00032 {
00033
00034 public:
00035
00036 GfxDigit(const CandDigitHandle& csh, GfxDigitList& parent);
00037 GfxDigit(const CandDigitHandle& csh, const PlexSEIdAltLItem& itm,
00038 GfxDigitList& parent);
00039 GfxDigit(const GfxDigit& rhs);
00040 GfxDigit& operator=(const GfxDigit& rhs);
00041 virtual ~GfxDigit();
00042 void Clear(Option_t* ="");
00043
00044
00045 void Configure();
00046
00047 void ExecuteEvent(int event, int px, int py);
00048 void Paint(Option_t* option="");
00049 int DistancetoPrimitive(int px, int py);
00050
00051 const CandDigitHandle& GetDigit() { return *fDigit; }
00052 const PlexSEIdAltLItem& GetItem() { return *fItem; }
00053
00054 void ConfigGui();
00055 Int_t GetColor(){return fColor;}
00056
00057 private:
00058
00059
00060
00061 #ifndef __CINT__
00062 bool GetRealCoords(double& x1, double& y1, double& x2, double& y2);
00063 bool GetDiscreteCoords(double& x1, double& y1, double& x2, double& y2);
00064 float GetRelativeValue(GfxDigitListCfg::MeasureScale_t ms);
00065 void ModifyCoords(double& cx, double& cy, double& dx, double& dy);
00066 bool SetColor();
00067 void RelToAbs(double& dx, double& dy);
00068
00069 const CandDigitHandle *fDigit;
00070 const PlexSEIdAltLItem *fItem;
00071
00072 GfxDigitList *fParent;
00073 TObject* fImp;
00074 Int_t fColor;
00075 #endif
00076
00077 double fCx, fCy, fDx, fDy;
00078
00079 ClassDef(GfxDigit,0)
00080 };
00081
00082 #endif // GFXDIGIT_H