Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

EVD.h

Go to the documentation of this file.
00001 
00014 #ifndef EVD_H
00015 #define EVD_H
00016 
00017 #include "ViewState.h"
00018 #include <Midad/Base/CanvasPage.h>
00019 #include <Midad/Base/GfxButton.h>
00020 #include <Midad/Base/MCText.h>
00021 #include <Midad/Base/MCTree.h>
00022 #include <Midad/Base/DigitText.h>
00023 
00024 #include <Midad/Util/Range.h>
00025 #include <Midad/Util/Undoable.h>
00026 #include <Midad/Util/RangeControl.h>
00027 #include <Midad/Util/CompositeRange.h>
00028 #include <Midad/Gui/GuiMenu.h>
00029 #include <Midad/Gui/GuiButton.h>
00030 #include <Midad/Gui/GuiScrolled.h>
00031 #include <Midad/Base/SteelOutline.h>
00032 #include <RecoBase/CandSliceHandle.h>
00033 #include <RecoBase/CandEventHandle.h>
00034 #include "AltTimeHist.h"
00035 #include "RecoText.h"
00036 #include "DisplayOptions.h"
00037 #include <TPolyLine.h>
00038 #include <TText.h>
00039 #include <TGraph.h>
00040 #include <THStack.h>
00041 #include <Conventions/PlaneView.h>
00042 #include "GraphicsView.h"
00043 #include <Midad/Base/TimeHist.h>
00044 #include <sigc++/sigc++.h>
00045 #include "UserHist.h"
00046 
00047 #include <vector>
00048 
00049 class PageDisplay;
00050 class ColorAxis;
00051 class RangeAxis;
00052 class GfxStrip;
00053 class ZoomPad;
00054 class GfxBase;
00055 class TObject;
00056 class GuiBox;
00057 class Mint;
00058 
00059 namespace DisplaySetup 
00060 {
00061   static const double kZviewXmin=0.05; 
00062   static const double kZviewXmax=0.95;
00063   static const double kZviewYmin=0.45;
00064   static const double kUZviewYmin=0.72;
00065   static const double kVZviewYmax=0.68;
00066   static const double kZviewYmax=0.95;
00067   static const double kZviewSeparation=0.02;
00068   static const double kZviewCenterline=0.7;
00069   static const double kZviewXRUV=0.04;
00070   static const double kZviewYRZ=0.7;
00071   
00072   static const double kXYviewXmin=0.05;
00073   static const double kXYviewXmax=0.4;
00074   static const double kXYviewYmin=0.05;
00075   static const double kXYviewYmax=0.4;
00076   static const double kXYviewYR=0.04;
00077   static const double kXYviewXR=0.04;
00078   static const int kGhostColor=16;
00079 
00080   static const double kZviewColorFrameYmin=0.25;
00081   static const double kZviewColorFrameYmax=0.40;
00082   static const double kZviewColorFrameXmax=0.95;
00083 }
00084 
00085 class EVD : public CanvasPage
00086 {
00087 private:
00088     
00089     void SelectionZoom(ZoomPad* zp);
00090     void UpdateView(GraphicsView::GraphicsView_t view);
00091     void InitView(GraphicsView::GraphicsView_t view);
00092     void BuildMenus(void);
00093     void BuildButtons();
00094     void BuildGfxMenu(); 
00095     void ToggleRealCoords(GuiMenu* menu, GuiMenu::GuiMenuList::iterator mit);
00096     void ToggleTimeZoom(GuiMenu* menu, GuiMenu::GuiMenuList::iterator mit);
00097     void ColorSemanticHandler(int which);
00098     void SetChargeRange();
00099     void DrawVS();
00100     void UpdateColorButtonTitle();
00101     void PrintCanvas();
00102     void RefreshUserHist();
00103     void FillTimevsY();
00104     PageDisplay* fPageDisplay;
00105     Mint* fMint;
00106     RecoText* fRecoText;
00107     MCText * fMCText;
00108     MCTree * fMCTree;
00109     DigitText * fDigitText;
00110     GuiTextView * fMCtextbox;   
00111     GuiTextView * fRecotextbox;
00112     GuiTextView * fMCTreetextbox;
00113     GuiTextView * fDigittextbox;
00114     GuiScrolled * fMCTreescroll;
00115     GuiBox * fTextBox; 
00116     GuiTextButton* fMCbut;
00117     GuiTextButton* fRecobut;
00118     GuiTextButton* fMCTreebut;
00119     GuiTextButton* fDigitbut;
00120     GuiTextButton* fNextSlicebut;
00121     GuiTextButton* fPrevSlicebut;
00122     GuiTextButton* fNextEventbut;
00123     GuiTextButton* fPrevEventbut;
00124 
00125     TText * tline[100];
00126     UserHist * fUserHist;
00127     RangeDouble*  fChargeRange;
00128   
00129     SigC::Ptr<ViewState> fViewState[3];
00130     SigC::Ptr<GfxButton> fColorButton[2];
00131  
00132     struct GfxInfo {
00133       GraphicsView::GraphicsView_t graphicsview_type;
00134       GfxInfo(GraphicsView::GraphicsView_t vt) : graphicsview_type(vt) {}
00135       GfxInfo() : graphicsview_type(GraphicsView::kUnknown) {}
00136     };
00137         
00138     typedef std::map<GfxBase*,GfxInfo> GfxList;
00139     GfxList fGfxList;
00140 
00141     ZoomPad *fPad[3];
00142     TPad *TimePad;
00143     TPad *TimevsYPad;
00144 
00145     TPad *TextPad;
00146     TimeHist *TimeHst;
00147     AltTimeHist *AltTImeHst;
00148     TGraph *TimevsY;
00149     TPad * chargepad[3];
00150     TH1F *fChargeHist[3];  
00151 
00152     THStack *fRecoChargeHist[3];
00153     TH1F *fShwRecoChargeHist[3];
00154     TH1F *fTrkRecoChargeHist[3];
00155     ColorAxis *fColorAxis[2];
00156     RangeAxis* fRangeAxis[5]; 
00157    
00158     RangeControl<double> *fColorControl[2], *fSpatialControl[5];
00159 
00160     SigC::Ptr<UndoHistory> fZoomHistory;
00161     SigC::Ptr<CompositeRange<double> > fCompositeRange;
00162     std::vector<SigC::Connection> fRClist;
00163 
00164     TPolyLine* SM1[2];
00165     TPolyLine* SM2[2];
00166     TPolyLine* Det[2];
00167     SteelOutline* Outline;
00168     TList * VS;
00169 
00170     DisplayOptions* fDisplayOptions;
00171 
00172     Int_t fSlice;
00173     Int_t fNumSlices;
00174     Int_t fEvent;
00175     Int_t fNumEvents;
00176     Int_t fSnarl;
00177     Int_t fGhostColor;
00178     CandEventHandle * fCandEvent;
00179     CandSliceHandle * fCandSlice;
00180     Bool_t fClear;
00181     Bool_t fDrawAll;
00182     Bool_t fDrawGhosts;
00183     Int_t fLastButtonType;
00184     Bool_t fTimeZoom;
00185 
00186  public:
00187 
00188     EVD();
00189     ~EVD();
00190 
00191     void AddGfx(const char* gfx_name);
00192 
00193     TObject* Init(Mint* mint, PageDisplay* pd, GuiBox& box);
00194     void BlockRanges(bool tf = true);
00195     void Clear(void);
00196     void Update();
00197     void Unzoom(void);
00198     void Rezoom(void);
00199     void FullZoom(void);
00200     void redo(void);
00201 
00202     RangeControl<double> GetColorRangeControl(PlaneView::PlaneView_t view);
00203     ViewState* GetViewState(PlaneView::PlaneView_t view);
00204     void InitChargeHists(TCanvas & canvas);
00205     void UpdateCanvas();
00206     void UpdateChargeHists(GraphicsView::GraphicsView_t view);
00207     void UpdateTime();
00208     void NextSlice();
00209     void PrevSlice();
00210     void NextEvent();
00211     void PrevEvent();
00212     void ZoomTimetoSlice();
00213     Int_t GetNumSlices();
00214     Int_t GetNumEvents();
00215     Int_t GetGhostColor(){return fGhostColor;}
00216     Bool_t GetDrawAll(){return fDrawAll;}
00217     Bool_t GetDrawGhosts(){return fDrawGhosts;}
00218     CandSliceHandle *  ReadCandSlice();
00219     CandSliceHandle * GetCandSlice(){return fCandSlice;}
00220     CandEventHandle *  ReadCandEvent();
00221     CandEventHandle * GetCandEvent(){return fCandEvent;}
00222     void MCtext();
00223     void Recotext();
00224     void Digittext();
00225     void MCTreetext();
00226     void UpdateSummary();
00227     int ViewIndex(GraphicsView::GraphicsView_t view);
00228     void UpdateGfxObjects(GraphicsView::GraphicsView_t view);
00229     
00230     DisplayOptions * GetDisplayOptions(){return fDisplayOptions;}
00231     PageDisplay * GetPageDisplay(){return fPageDisplay;}
00232     DigitText * GetDigitText(){return fDigitText;}
00233 
00234    ClassDef(EVD,0) 
00235 
00236 };                              // end of class EVD
00237 
00238 
00239 #endif  // EVD_H

Generated on Mon Feb 15 11:06:39 2010 for loon by  doxygen 1.3.9.1