/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EventDisplay/BesVisLib/BesVisLib-00-04-04/BesVisLib/BesView.h

Go to the documentation of this file.
00001 //
00002 // BesView.h
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;              // variable needed for toggle in menu
00030   EBESViewType fViewType;             // View type
00031   Float_t      fPhiRangeMin;          // Minimum of phi range for Z-R projection (in degrees)
00032   Float_t      fPhiRangeMax;          // Maximum of phi range for Z-R projection (in degrees)
00033   TPaveLabel  *fLabel;                // Label
00034   Float_t      fMarkerSize;           // size for marker
00035   BesStatus   *fStatus3D;             // 3D view status flags
00036   BesStatus   *fStatusXY;             // XY view status flags
00037   BesStatus   *fStatusZR;             // ZR view status flags
00038   BesStatus   *fStatusCurrent;        // current view status flags
00039   Double_t     fZoomFactor;           // zoom factor
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   // menu
00069   inline void View3D() { SetViewType(k3DView,1); }                // *MENU*
00070   inline void ViewXY() { SetViewType(kXYView,1); }                // *MENU*
00071   inline void ViewZR() { SetViewType(kZRView,1); }                // *MENU*
00072   void ZoomIn();                                                  // *MENU*
00073   void ZoomOut();                                                 // *MENU*
00074   void Center();                                                  // *MENU*
00075   void Move(Int_t px, Int_t py);
00076   inline void Front3D() {
00077     this->View3D();
00078     this->Front(); }                                              // *MENU*
00079   void Side3D();                                                  // *MENU*
00080   inline void Top3D() {
00081     this->View3D();
00082     Int_t iret;
00083     this->SetView(-90,90,270,iret);
00084 
00085     //    this->Top();
00086   }                                                                // *MENU*
00087   void SetPhiRange(Float_t PhiMin = 0, Float_t PhiMax = 180); 
00088   void Reset();                                                    // *MENU*
00089 
00090   inline void SetMarkerSize(Float_t size) { fMarkerSize = size; }
00091 
00092 
00093   //access functions for Mdc visibility
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   //access functions for Tof visibility
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   //access functions for Emc visibility
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   //access functions for Muc visibility
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   //access functions for Full3D visibility
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   //access functions for other parts visibility
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   // access functions for Mdc hits
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   // access functions for Tof hits
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   // access functions for Emc hits
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   // access functions for Muc hits
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   // access functions for tracks
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   // access functions for fish eye
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   } // *TOGGLE*
00230 
00231   inline void PrintCurrent() { fStatusCurrent->Print(); }
00232 
00233   // clean up right mouse button menu
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   //  inline virtual void ShowAxis() { BesTView::ShowAxis(); }
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) // BesVis View
00261 };
00262 
00263 #endif

Generated on Tue Nov 29 23:12:01 2016 for BOSS_7.0.2 by  doxygen 1.4.7