636edbe2d6f201810e9bd6977453878f444887ae
[u/mrichter/AliRoot.git] / HLT / PHOS / OnlineDisplay / AliHLTPHOSOnlineDisplay.h
1 #ifndef ALIHLTPHOSONLINEDISPLAY
2 #define ALIHLTPHOSONLINEDISPLAY
3
4 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice */
6
7 #include "HOMERData.h"
8 #include "HOMERReader.h"
9 #include "HOMERWriter.h"
10 #include "Rtypes.h"
11 #include <TGFrame.h>
12 #include "TH2.h"
13 #include "AliHLTPHOSGetEventButton.h" 
14 #include "TGTab.h"
15 #include <TRootEmbeddedCanvas.h>
16 #include <TCanvas.h>
17 #include "TGFrame.h"
18 #include "AliHLTPHOSCommonDefs.h"
19 #include "AliHLTPHOSRcuChannelDataStruct.h"
20
21 #define MAX_HOSTS 10
22 #define MAX_HOSTNAME_LENGTH 64
23 #define DEFAULT_EVENT_PORT 42001 
24 #define DEFAULT_HISTO_PORT 42002 
25
26 class TCanvas;
27 class AliHLTPHOSRcuCellEnergyDataStruct;
28
29 class AliHLTPHOSOnlineDisplay : public  TGMainFrame
30 {
31  public:
32   ~AliHLTPHOSOnlineDisplay();
33   int GetNextEvent();
34   int GetNextEventRaw();
35   int GetHistogram();
36   void InitDisplay();
37   void UpdateDisplay();
38   void UpdateHistograms();
39   void UpdateChanneRawDataDisplay();
40   void EvaluateAverage();
41   static int ScanArguments(int argc, char** argv);
42   static AliHLTPHOSOnlineDisplay* Instance();  
43   
44  private:
45   AliHLTPHOSOnlineDisplay();
46   static TGCompositeFrame    *fFrame1, *fF1, *fF2, *fF3, *fF4, *fF5, *fSubF1, *fSubF2, *fSubF3, *fSubF4, *fSubF5, *fSubF6, *fSubF7,*fSubF8;
47   static TGTab               *fTab;
48   static TGTab               *fSubTab1, *fSubTab2, *fSubTab3;
49   static TGTab               *fSubTabModule[N_MODULES];
50   static TGTab               *fSubSubTabRcu[N_MODULES][N_RCUS_PER_MODULE]; 
51   //  static TH1D                *fgChannelDataPlotPtr[N_MODULES][N_RCUS_PER_MODULE][N_ZROWS_RCU][N_XCOLUMNS_RCU];
52   static TH1D                *fgChannelDataPlotPtr[N_ZROWS_RCU][N_XCOLUMNS_RCU];
53   //  static TRootEmbeddedCanvas *fgChannelDataCanvasPtr[N_MODULES][N_RCUS_PER_MODULE];
54   //  static TRootEmbeddedCanvas *fgChannelDataCanvasPtr[N_MODULES][N_RCUS_PER_MODULE][N_ZROWS_RCU][N_XCOLUMNS_RCU];
55  
56   //  static TRootEmbeddedCanvas *fgChannelDataCanvasPtr[N_ZROWS_RCU][N_XCOLUMNS_RCU];
57   static TRootEmbeddedCanvas *fTest;
58
59   //  static TGCompositeFrame    *fgChannelDataCompositeFramePtr[N_MODULES][N_RCUS_PER_MODULE];
60   
61  //  static TGTab               *fSubTab2;
62   static TRootEmbeddedCanvas *fEc1, *fEc2, *fEc3, *fEc4, *fEc5, *fEc6, *fEc7, *fEc8, *fEc9, *fEc10, *fEc11, *fEc12, *fEc13, *fEc14;
63   static AliHLTPHOSGetEventButton* fgEventButtPtr; 
64   static AliHLTPHOSOnlineDisplay* fgInstancePtr;
65   static TH2D *fgLegoPlotLGPtr;
66   static TH2D *fgLegoPlotHGPtr;
67   static TH2D *fgCalibHistPtr[N_GAINS];
68   static TH2I *fgHitsHistPtr[N_GAINS]; 
69   static TH2D *fgAveragePtr[N_GAINS]; 
70   static char *fgDefaultDet;        
71   static char *fgDefaultDataType;   
72   static int fgEvntCnt;
73   static TCanvas *fgCanvasHGPtr;
74   static TCanvas *fgCanvasLGPtr;
75
76   static TCanvas *fgTestCanvasPtr;
77
78   static unsigned int fgNHosts;
79   static unsigned int fgNPorts;
80   static HOMERReader* fgHomerReaderPtr;
81   static HOMERReader* fgHomerReadersPtr[MAX_HOSTS];
82   static HOMERReader* fgCalibReadersPtr[MAX_HOSTS];
83   static HOMERReader* fgChannelRawReadersPtr[MAX_HOSTS];
84   static char  *fgHosts[MAX_HOSTS];
85   static short unsigned    *fgPorts;
86   static Bool_t fgAccumulate;
87   static Bool_t fgSyncronize;
88 };
89
90
91 #endif