SIL/TFndSilMonFrame.h

00001 // @(#)fROOT/SIL:$Name:  $:$Id: TFndSilMonFrame.h,v 1.9 2007/09/05 10:40:27 Diego_Faso Exp $
00002 // Revision Author: Diego Faso <mailto:faso@to.infn.it>, 2005/06/24
00003 // Original Author: Piergiorgio Cerello <mailto:cerello@to.infn.it>, Diego Faso <mailto:faso@to.infn.it>, 2002
00004 
00005 #ifndef FROOT_TFndSilMonFrame
00006 #define FROOT_TFndSilMonFrame
00007 
00009 //                                                //
00010 //               TFndSilMonFrame                  //
00011 //                                                //
00012 //  Class for the SIL monitoring GUI              //
00013 //                                                //
00014 //                                                //
00015 //   see GTS relative class for documentation     //
00016 //                                                //
00018 
00019 #include "FROOT.h"
00020 
00021 #include <string.h>
00022 #include <Riostream.h>
00023 #include "TObject.h"
00024 #include "TFile.h"
00025 #ifdef _FND_ONL_USE_MAP_FILES_
00026 #include "TMapFile.h"
00027 #endif
00028 #include "TBrowser.h"
00029 #include "TCanvas.h"
00030 #include "TButton.h"
00031 #include "TString.h"
00032 #include "TH1.h"
00033 #include "TFndMonFrame.h"
00034 
00035 using namespace FROOT;
00036 
00037 class  TFndSilMonFrame : public TFndMonFrame {
00038 
00039  public:
00040   enum E_SilDisplayMode{
00041     E_SilHist_Displ_SingleSide = 0,
00042     E_SilHist_Displ_AllSides = 1
00043   };
00044 
00045   enum E_SilHist{
00046     E_SilHist_Noise = 0,
00047     E_SilHist_Mult = 1,
00048     E_SilHist_CMmean = 2,
00049     E_SilHist_CMsigma = 3,
00050     E_SilHist_CluCrg = 4,
00051     E_SilHist_CluCleanMult = 5,
00052     E_SilHist_CluCrgClean = 6,
00053     E_SilHist_CluDeDx = 7,
00054     E_SilHist_CluDeDx2D = 8,
00055     E_SilHist_CluPos2D = 9
00056   };
00057 
00058  protected:
00059   
00060   Int_t fLayer;       // Detector [layer]  (see FROOT::E_Fnd_Layer)
00061   Int_t fModNum; // Module  1-8(10) for ISIM(OSIM)
00062   Int_t fSide;     // Side (see FROOT::E_Fnd_Sil_Side) [-1: all ; 3: Phi_vs_Z]
00063 
00064   Int_t  fSideHighlightCol; // highlight color for side buttons
00065   
00066 #if defined _FND_ONL_USE_MAP_FILES_
00067   TMapFile      *fIsmMapFile;
00068   TMapFile      *fOsmMapFile;
00069 #elif defined _FND_ONL_USE_SHARED_FILES_
00070   TFile      *fIsmMapFile;
00071   TFile      *fOsmMapFile;
00072 #endif
00073   
00074   TPad          *fIsimPad;
00075   TPad          *fOsimPad;
00076   TPad          *fAllPadControl;
00077   TButton       *fModNumBut[18];
00078   TButton       *fAllButton[8];
00079   
00080   TPad *fSideSelPad;
00081   TButton *fModAllBut;
00082   TButton *fSideBut[4];
00083   TH1F *fHisto; // temporary histograms (used while loading histos)
00084   
00085   Int_t fWhichGroup; // needed by the automatic refresh
00086   Int_t fAllId; // needed by the automatic refresh
00087 
00088   // --- buffers with names of all histograms
00089   TString fNam_Noise[E_FIN_OUTER_LAYER][K_N_Sil_Modules][K_N_Sil_Sides];
00090   TString fNam_Mult[E_FIN_OUTER_LAYER][K_N_Sil_Modules][K_N_Sil_Sides];
00091   TString fNam_ClCh[E_FIN_OUTER_LAYER][K_N_Sil_Modules][K_N_Sil_Sides];
00092   TString fNam_CMsigma[E_FIN_OUTER_LAYER][K_N_Sil_Modules][K_N_Sil_Sides];
00093   TString fNam_CMmean[E_FIN_OUTER_LAYER][K_N_Sil_Modules][K_N_Sil_Sides];
00094 
00095   // --- after clusters evaluation (sides are phi/n (zeta): no separation between "Za" and "Zb")
00096   TString fNam_CleanMult[E_FIN_OUTER_LAYER][K_N_Sil_Modules][K_N_Sil_Sides-1];
00097   TString fNam_ClChClean[E_FIN_OUTER_LAYER][K_N_Sil_Modules][K_N_Sil_Sides-1];
00098   TString fNam_dEdx[E_FIN_OUTER_LAYER][K_N_Sil_Modules][K_N_Sil_Sides-1];
00099   TString fNam_dEdx_PvsZ[E_FIN_OUTER_LAYER][K_N_Sil_Modules];
00100   TString fNam_Pos_PvsZ[E_FIN_OUTER_LAYER][K_N_Sil_Modules];
00101 
00102   void ResetFrameColors();
00103   void DrawButtons();
00104   void DrawControlButtons();
00105   void DrawHist(E_SilHist which_type);
00106   
00107  public:
00108   
00109   TFndSilMonFrame(TString filename=0,TString filename2=0);
00110   ~TFndSilMonFrame();
00111 
00112   Bool_t StartInterface();
00113   void Open();
00114   void Close();
00115 
00116   Bool_t ReloadMapFiles(); // return true if map-files were found
00117 
00118   void SelectModule(Int_t layer,Int_t module);
00119   void SelectSide(Int_t side);
00120 
00121   void DisplayModuleDefault(); // called when a "module button is pressed"
00122   void DisplayHist(Int_t display_mode);    // display_mode: see E_SilDisplayMode
00123   void DisplayAllHist(Int_t layer, Int_t type);
00124 
00125   void ClearSidePad();
00126   void RebuildSidePad();
00127   TButton *HighlightButtons(Int_t which_group,Int_t All_id=0);
00128   void RefreshSingleMonView();
00129  
00130  private:
00131   void Init();
00132 
00133   ClassDef(TFndSilMonFrame,0) // Monitor GUI for silicon detectors
00134     
00135     };
00136 #endif // FROOT_TFndSilMonFrame
00137     
00138 
00139 
00140 
00141 
00142 
00143 
00144 
00145 
00146 
00147 
00148 
00149 
00150 
00151 
00152 
00153 

Generated on Tue Oct 16 15:40:48 2007 by  doxygen 1.5.2