00001 00002 #ifndef DCANVAS 00003 #define DCANVAS 00004 00005 #include "TNode.h" 00006 #include "TBRIK.h" 00007 #include "TView.h" 00008 #include "TPaveText.h" 00009 #include "TPolyLine.h" 00010 #include "TString.h" 00011 #include "TCanvas.h" 00012 00013 #include "bfemDisplay/EDControl.h" 00014 #include "bfemDisplay/AcdDisplay.h" 00015 #include "bfemDisplay/CalDisplay.h" 00016 #include "bfemDisplay/TkrDisplay.h" 00017 #include "bfemDisplay/Enum.h" 00018 00019 #include "TObjectTable.h" 00020 00021 00023 00024 // N Lumb, G Spandre; INFN-Pisa; July 2001. 00025 00026 class DisplayCanvas { 00027 00028 private: 00029 00030 // Pads for each of the different views. 00031 00032 TCanvas* m_canvas; 00033 TPad* m_infoPad; 00034 TPad* m_3DPad; 00035 TPad* m_zxpad; 00036 TPad* m_zypad; 00037 TPad* m_xyTopPad; 00038 TPad* m_yxTopPad; 00039 00040 // Top-level nodes. 00041 00042 TNode* m_frameNode; 00043 TNode* m_towerNode; 00044 00045 00046 // Classes for drawing each of the sub-detectors. 00047 00048 CalDisplay *m_CAL; 00049 AcdDisplay *m_Acd; 00050 TkrDisplay *m_Tkr; 00051 00052 EDControl *m_evtCtrl; // Copy of the event control class object. 00053 00054 DigiEvent *m_event; // <<======= The new digiclass definition 00055 Recon *m_recon; 00056 TTree *fTree; 00057 TTree *rTree; 00058 00059 TObjArray *m_ped; // Array of CAL pedestals. 00060 TObjArray *m_acdped; // Array of ACD pedestals. 00061 TObjArray *m_xgtped; 00062 00063 TObjArray *m_eventTextList; // Array of TPaveTexts for one event. 00064 00065 Bool_t m_scanForward; // True if scan direction for displayed evts is positive. 00066 Int_t m_currentevent; 00067 00068 Float_t m_axis_width; 00069 Float_t m_TowerHeight ; // Tower height 00070 Float_t m_TowerWidth ; // Tower width 00071 00072 00073 Float_t scale_factor; 00074 Float_t frame_x, frame_y, frame_z; 00075 00076 void drawAxes(); 00077 00078 void AnnotatePad( TPad *pad, Char_t *title, UShort_t opt ); 00079 00080 void DrawEventInfo( TPad *pad ); 00081 00082 void addEnergyScale(); // Add Energy Scale 00083 00084 TString *m_TextLine; 00085 00086 Char_t* getText(TString color, Float_t energy); 00087 Char_t* getTextInt(TString str, Int_t number); 00088 00089 00090 public : 00091 00092 DisplayCanvas( EDControl *evtCtrl ); 00093 00095 // ~DisplayCanvas(); 00096 00097 friend class TkrDisplay; 00098 friend class CalDisplay; 00099 friend class AcdDisplay; 00100 00101 void Draw( Bool_t dataType ); 00102 00103 00105 00108 void Draw(Int_t event, Bool_t dataType ) { 00109 m_currentevent = event; 00110 Draw( dataType ); 00111 } 00112 00113 Int_t getCurrentEvent() { return m_currentevent; } 00114 void setCurrentEvent( Int_t evt ) { m_currentevent = evt; } 00115 Bool_t getScanDirection() { return m_scanForward; } 00116 void setScanDirection( Bool_t direction ) { m_scanForward = direction; } 00117 00118 void setDrawingPads(); 00119 00121 void setCalDisplay(Float_t cal1, Float_t cal2, Float_t cal3); 00122 void setCanvasforProj(); 00123 00124 }; 00125 00126 #endif 00127 00128 00129 00130
1.2.3 written by Dimitri van Heesch,
© 1997-2000