00001
00002
00003
00004
00005 #ifndef BES_BESVIEW
00006 #define BES_BESVIEW
00007
00008 #include "BesTView.h"
00009 #include <TPad.h>
00010 #include <TCanvas.h>
00011 #include <TPaveLabel.h>
00012
00013 #include "BesStatus.h"
00014 #include "BesGeometry.h"
00015
00016 #ifndef BES_EBESViewType
00017 #define BES_EBESViewType
00018
00019 enum EBESViewType {
00020 k3DView = BIT(0),
00021 kXYView = BIT(1),
00022 kZRView = BIT(2)
00023 };
00024 #endif
00025
00026 class BesView : public BesTView {
00027
00028 private:
00029 Bool_t fFishEye;
00030 EBESViewType fViewType;
00031 Float_t fPhiRangeMin;
00032 Float_t fPhiRangeMax;
00033 TPaveLabel *fLabel;
00034 Float_t fMarkerSize;
00035 BesStatus *fStatus3D;
00036 BesStatus *fStatusXY;
00037 BesStatus *fStatusZR;
00038 BesStatus *fStatusCurrent;
00039 Double_t fZoomFactor;
00040 Double_t fExtentDefault;
00041 Float_t m_BesR;
00042 Float_t m_BesZ;
00043
00044 public:
00045 BesView();
00046 virtual ~BesView();
00047
00048 virtual void SetViewType(EBESViewType ViewType, Bool_t resetview = kFALSE);
00049 virtual void SetViewTypeBare(EBESViewType ViewType, Bool_t resetview = kFALSE);
00050 virtual void DefaultRange();
00051 virtual void ClearPad();
00052 virtual void DrawLabel();
00053 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
00054
00055 virtual Int_t GetRSign(Float_t Phi);
00056 virtual void UpdateView(Bool_t resetview = kFALSE );
00057 virtual void WCtoNDC(const Float_t *pw, Float_t *pn);
00058 virtual void WCtoNDC(const Double_t *pw, Double_t *pn);
00059 virtual void NDCtoWC(const Float_t* pn, Float_t* pw);
00060 virtual void NDCtoWC(const Double_t* pn, Double_t* pw);
00061 virtual char *GetObjectInfo(Int_t px, Int_t py) const;
00062
00063 void SetZoomRatio(Double_t ratio);
00064 inline Double_t GetZoomRatio() { return fExtentDefault/GetExtent(); }
00065 inline EBESViewType GetViewType() { return fViewType; }
00066 inline Float_t GetMarkerSize() { return fMarkerSize;}
00067
00068
00069 inline void View3D() { SetViewType(k3DView,1); }
00070 inline void ViewXY() { SetViewType(kXYView,1); }
00071 inline void ViewZR() { SetViewType(kZRView,1); }
00072 void ZoomIn();
00073 void ZoomOut();
00074 void Center();
00075 void Move(Int_t px, Int_t py);
00076 inline void Front3D() {
00077 this->View3D();
00078 this->Front(); }
00079 void Side3D();
00080 inline void Top3D() {
00081 this->View3D();
00082 Int_t iret;
00083 this->SetView(-90,90,270,iret);
00084
00085
00086 }
00087 void SetPhiRange(Float_t PhiMin = 0, Float_t PhiMax = 180);
00088 void Reset();
00089
00090 inline void SetMarkerSize(Float_t size) { fMarkerSize = size; }
00091
00092
00093
00094 inline Bool_t GetVisMdcGlobal() { return fStatusCurrent->fMdcGlobal; }
00095 inline Bool_t GetVisMdcTubes() { return fStatusCurrent->fMdcTubes; }
00096 inline Bool_t GetVisMdcWires() { return fStatusCurrent->fMdcWires; }
00097
00098 inline void SetVisMdcGlobal (Bool_t input) { fStatusCurrent->fMdcGlobal = input; }
00099 inline void SetVisMdcTubes(Bool_t input) { fStatusCurrent->fMdcTubes = input; }
00100 inline void SetVisMdcWires(Bool_t input) { fStatusCurrent->fMdcWires = input; }
00101
00102
00103 inline Bool_t GetVisTofGlobal() { return fStatusCurrent->fTofGlobal; }
00104 inline Bool_t GetVisTofEast() { return fStatusCurrent->fTofEast; }
00105 inline Bool_t GetVisTofBarrel() { return fStatusCurrent->fTofBarrel; }
00106 inline Bool_t GetVisTofWest() { return fStatusCurrent->fTofWest; }
00107 inline Float_t GetVisZoom() { return fStatusCurrent->fZoom; }
00108
00109 inline void SetVisTofGlobal(Bool_t input) { fStatusCurrent->fTofGlobal = input; }
00110 inline void SetVisTofEast(Bool_t input) { fStatusCurrent->fTofEast = input; }
00111 inline void SetVisTofBarrel(Bool_t input) { fStatusCurrent->fTofBarrel = input; }
00112 inline void SetVisTofWest(Bool_t input) { fStatusCurrent->fTofWest = input; }
00113 inline void SetVisZoom(Float_t input) { fStatusCurrent->fZoom = input; }
00114
00115
00116 inline Bool_t GetVisEmcGlobal() { return fStatusCurrent->fEmcGlobal; }
00117 inline Bool_t GetVisEmcEast() { return fStatusCurrent->fEmcEast; }
00118 inline Bool_t GetVisEmcBarrel() { return fStatusCurrent->fEmcBarrel; }
00119 inline Bool_t GetVisEmcWest() { return fStatusCurrent->fEmcWest; }
00120 inline Bool_t GetVisEmcSide() { return fStatusCurrent->fEmcSide; }
00121
00122 inline void SetVisEmcGlobal(Bool_t input) { fStatusCurrent->fEmcGlobal = input; }
00123 inline void SetVisEmcEast(Bool_t input) { fStatusCurrent->fEmcEast = input; }
00124 inline void SetVisEmcBarrel(Bool_t input) { fStatusCurrent->fEmcBarrel = input; }
00125 inline void SetVisEmcWest(Bool_t input) { fStatusCurrent->fEmcWest = input; }
00126 inline void SetVisEmcSide(Bool_t input) { fStatusCurrent->fEmcSide = input; }
00127
00128
00129 inline Bool_t GetVisMucGlobal() { return fStatusCurrent->fMucGlobal; }
00130 inline Bool_t GetVisMucEast() { return fStatusCurrent->fMucEast; }
00131 inline Bool_t GetVisMucBarrel() { return fStatusCurrent->fMucBarrel; }
00132 inline Bool_t GetVisMucWest() { return fStatusCurrent->fMucWest; }
00133 inline Bool_t GetVisMucStrips() { return fStatusCurrent->fMucStrips; }
00134
00135 inline void SetVisMucGlobal(Bool_t input) { fStatusCurrent->fMucGlobal = input; }
00136 inline void SetVisMucEast(Bool_t input) { fStatusCurrent->fMucEast = input; }
00137 inline void SetVisMucBarrel(Bool_t input) { fStatusCurrent->fMucBarrel = input; }
00138 inline void SetVisMucWest(Bool_t input) { fStatusCurrent->fMucWest = input; }
00139 inline void SetVisMucStrips(Bool_t input) { fStatusCurrent->fMucStrips = input; }
00140
00141
00142 inline Bool_t GetVisFull3DMdc() { return fStatusCurrent->fFull3DMdc; }
00143 inline Bool_t GetVisFull3DTof() { return fStatusCurrent->fFull3DTof; }
00144 inline Bool_t GetVisFull3DEmc() { return fStatusCurrent->fFull3DEmc; }
00145 inline Bool_t GetVisFull3DMuc() { return fStatusCurrent->fFull3DMuc; }
00146
00147 inline void SetVisFull3DMdc(Bool_t input) { fStatusCurrent->fFull3DMdc = input; }
00148 inline void SetVisFull3DTof(Bool_t input) { fStatusCurrent->fFull3DTof = input; }
00149 inline void SetVisFull3DEmc(Bool_t input) { fStatusCurrent->fFull3DEmc = input; }
00150 inline void SetVisFull3DMuc(Bool_t input) { fStatusCurrent->fFull3DMuc = input; }
00151
00152
00153 inline Bool_t GetVisBeamPipe() { return fStatusCurrent->fBeamPipe; }
00154 inline Bool_t GetVisZRPlaneOnXY() { return fStatusCurrent->fZRPlaneOnXY; }
00155 inline Bool_t GetVisAxis() { return fStatusCurrent->fAxis; }
00156
00157 inline void SetVisBeamPipe(Bool_t input) { fStatusCurrent->fBeamPipe = input; }
00158 inline void SetVisZRPlaneOnXY(Bool_t input) { fStatusCurrent->fZRPlaneOnXY = input; }
00159 inline void SetVisAxis(Bool_t input) { fStatusCurrent->fAxis = input; }
00160
00161
00162 inline Bool_t GetVisMdcHitsGlobal() { return fStatusCurrent->fMdcHitsGlobal; }
00163 inline Bool_t GetVisMdcHits() { return fStatusCurrent->fMdcHits; }
00164
00165 inline void SetVisMdcHitsGlobal (Bool_t input) { fStatusCurrent->fMdcHitsGlobal = input; }
00166 inline void SetVisMdcHits(Bool_t input) { fStatusCurrent->fMdcHits = input; }
00167
00168
00169 inline Bool_t GetVisTofHitsGlobal() { return fStatusCurrent->fTofHitsGlobal; }
00170 inline Bool_t GetVisTofHitsEast() { return fStatusCurrent->fTofHitsEast; }
00171 inline Bool_t GetVisTofHitsBarrel() { return fStatusCurrent->fTofHitsBarrel; }
00172 inline Bool_t GetVisTofHitsWest() { return fStatusCurrent->fTofHitsWest; }
00173
00174 inline void SetVisTofHitsGlobal (Bool_t input) { fStatusCurrent->fTofHitsGlobal = input; }
00175 inline void SetVisTofHitsEast(Bool_t input) { fStatusCurrent->fTofHitsEast = input; }
00176 inline void SetVisTofHitsBarrel(Bool_t input) { fStatusCurrent->fTofHitsBarrel = input; }
00177 inline void SetVisTofHitsWest(Bool_t input) { fStatusCurrent->fTofHitsWest = input; }
00178
00179
00180 inline Bool_t GetVisEmcHitsGlobal() { return fStatusCurrent->fEmcHitsGlobal; }
00181 inline Bool_t GetVisEmcHitsEast() { return fStatusCurrent->fEmcHitsEast; }
00182 inline Bool_t GetVisEmcHitsBarrel() { return fStatusCurrent->fEmcHitsBarrel; }
00183 inline Bool_t GetVisEmcHitsWest() { return fStatusCurrent->fEmcHitsWest; }
00184 inline Bool_t GetVisEmcHitsSide() { return fStatusCurrent->fEmcHitsSide; }
00185
00186 inline void SetVisEmcHitsGlobal (Bool_t input) { fStatusCurrent->fEmcHitsGlobal = input; }
00187 inline void SetVisEmcHitsEast(Bool_t input) { fStatusCurrent->fEmcHitsEast = input; }
00188 inline void SetVisEmcHitsBarrel(Bool_t input) { fStatusCurrent->fEmcHitsBarrel = input; }
00189 inline void SetVisEmcHitsWest(Bool_t input) { fStatusCurrent->fEmcHitsWest = input; }
00190 inline void SetVisEmcHitsSide(Bool_t input) { fStatusCurrent->fEmcHitsSide = input; }
00191
00192
00193 inline Bool_t GetVisMucHitsGlobal() { return fStatusCurrent->fMucHitsGlobal; }
00194 inline Bool_t GetVisMucHitsEast() { return fStatusCurrent->fMucHitsEast; }
00195 inline Bool_t GetVisMucHitsBarrel() { return fStatusCurrent->fMucHitsBarrel; }
00196 inline Bool_t GetVisMucHitsWest() { return fStatusCurrent->fMucHitsWest; }
00197
00198 inline void SetVisMucHitsGlobal (Bool_t input) { fStatusCurrent->fMucHitsGlobal = input; }
00199 inline void SetVisMucHitsEast(Bool_t input) { fStatusCurrent->fMucHitsEast = input; }
00200 inline void SetVisMucHitsBarrel(Bool_t input) { fStatusCurrent->fMucHitsBarrel = input; }
00201 inline void SetVisMucHitsWest(Bool_t input) { fStatusCurrent->fMucHitsWest = input; }
00202
00203
00204 inline Bool_t GetVisTracksGlobal() { return fStatusCurrent->fTracksGlobal; }
00205 inline Bool_t GetVisTracksMdc() { return fStatusCurrent->fTracksMdc; }
00206 inline Bool_t GetVisTracksTof() { return fStatusCurrent->fTracksTof; }
00207 inline Bool_t GetVisTracksEmc() { return fStatusCurrent->fTracksEmc; }
00208 inline Bool_t GetVisTracksMuc() { return fStatusCurrent->fTracksMuc; }
00209 inline Bool_t GetVisTracksExt() { return fStatusCurrent->fTracksExt; }
00210
00211 inline void SetVisTracksGlobal(Bool_t input) { fStatusCurrent->fTracksGlobal = input; }
00212 inline void SetVisTracksMdc(Bool_t input) { fStatusCurrent->fTracksMdc = input; }
00213 inline void SetVisTracksTof(Bool_t input) { fStatusCurrent->fTracksTof = input; }
00214 inline void SetVisTracksEmc(Bool_t input) { fStatusCurrent->fTracksEmc = input; }
00215 inline void SetVisTracksMuc(Bool_t input) { fStatusCurrent->fTracksMuc = input; }
00216 inline void SetVisTracksExt(Bool_t input) { fStatusCurrent->fTracksExt = input; }
00217
00218
00219 inline Bool_t GetFishEyeStatus() { return fStatusCurrent->fFishEye; }
00220 inline Bool_t GetFishEye() { return fFishEye; }
00221 inline void SetFishEye(Bool_t input = 0) {
00222 if ( fViewType & k3DView ) {
00223 fFishEye = 0;
00224 fStatusCurrent->fFishEye = 0;
00225 } else {
00226 fFishEye = input;
00227 fStatusCurrent->fFishEye = input;
00228 }
00229 }
00230
00231 inline void PrintCurrent() { fStatusCurrent->Print(); }
00232
00233
00234 inline virtual void Centered() { BesTView::Centered(); }
00235 inline virtual void Front() { BesTView::Top(); }
00236 inline virtual void Side() { BesTView::Side(); }
00237 inline virtual void Top() { BesTView::Front(); }
00238
00239 inline virtual void ZoomMove() { BesTView::ZoomMove(); }
00240 inline virtual void AdjustScales(TVirtualPad* pad = 0) { BesTView::AdjustScales(pad); }
00241 inline virtual void Delete(Option_t* option) { BesTView::Delete(option); }
00242 inline virtual void DrawClass() { BesTView::DrawClass(); }
00243 inline virtual TObject* DrawClone(Option_t* option) { return BesTView::DrawClone(option); }
00244
00245 #ifndef CL__DEBUG
00246 inline virtual void Dump() { BesTView::Dump(); }
00247 inline virtual void Inspect() { BesTView::Inspect(); }
00248 #endif
00249
00250 inline virtual void SetDrawOption(Option_t* option) { BesTView::SetDrawOption(option); }
00251 inline virtual void SetLineAttributes() { BesTView::SetLineAttributes(); }
00252
00253 inline virtual void SetZoomFactor(Double_t factor) { fZoomFactor = factor; };
00254 inline virtual Double_t GetZoomFactor() { return fZoomFactor; }
00255 inline BesStatus* GetStatusCurrent() { return fStatusCurrent; };
00256 inline BesStatus* GetStatus3D() { return fStatus3D; };
00257 inline BesStatus* GetStatusXY() { return fStatusXY; };
00258 inline BesStatus* GetStatusZR() { return fStatusZR; };
00259
00260 ClassDef(BesView,0)
00261 };
00262
00263 #endif