00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TEveCalo2DGL
00013 #define ROOT_TEveCalo2DGL
00014
00015 #include "TGLObject.h"
00016 #include "TEveCaloData.h"
00017 #include "TEveCalo.h"
00018
00019 class TGLViewer;
00020 class TGLScene;
00021
00022 class TEveCalo2D;
00023 class TEveProjection;
00024
00025 class TEveCalo2DGL : public TGLObject
00026 {
00027 private:
00028 TEveCalo2DGL(const TEveCalo2DGL&);
00029 TEveCalo2DGL& operator=(const TEveCalo2DGL&);
00030
00031 protected:
00032 TEveCalo2D *fM;
00033
00034 void MakeRhoZCell(Float_t thetaMin, Float_t thetaMax, Float_t& offset, Bool_t isBarrel, Bool_t phiPlus, Float_t towerH) const;
00035
00036 void MakeRPhiCell(Float_t phiMin, Float_t phiMax, Float_t towerH, Float_t offset) const;
00037
00038 void DrawRPhi(TGLRnrCtx & rnrCtx, TEveCalo2D::vBinCells_t&) const;
00039 void DrawRPhiHighlighted(std::vector<TEveCaloData::vCellId_t*>& cellLists) const;
00040 void DrawRhoZ(TGLRnrCtx & rnrCtx, TEveCalo2D::vBinCells_t&) const;
00041 void DrawRhoZHighlighted(std::vector<TEveCaloData::vCellId_t*>& cellLists) const;
00042
00043 Bool_t IsRPhi() const;
00044
00045 public:
00046 TEveCalo2DGL();
00047 virtual ~TEveCalo2DGL() {}
00048
00049 virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
00050 virtual void SetBBox();
00051
00052 virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
00053 virtual void DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* ps, Int_t lvl=-1) const;
00054
00055
00056 virtual Bool_t SupportsSecondarySelect() const { return kTRUE; }
00057 virtual Bool_t AlwaysSecondarySelect() const { return kTRUE; }
00058 virtual void ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & rec);
00059
00060 ClassDef(TEveCalo2DGL, 0);
00061 };
00062
00063 #endif