829d53aabb6ac531eb32d9948ad6b4e4baf62ab4
[u/mrichter/AliRoot.git] / HLT / EMCAL / OnlineDisplay / AliHLTEMCALOnlineDisplayEventTab.h
1
2 //-*- Mode: C++ -*-
3 // $Id: AliHLTEMCALOnlineDisplayEventTab.h 35071 2009-09-29 05:26:09Z phille $
4
5 /**************************************************************************
6  * Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved.      *
7  *                                                                        *
8  * Authors: Per Thomas Hille for the ALICE                                *
9  * offline/HLT Project. Contributors are mentioned in the code where      *
10  * appropriate.                                                           *
11  *                                                                        *
12  * Permission to use, copy, modify and distribute this software and its   *
13  * documentation strictly for non-commercial purposes is hereby granted   *
14  * without fee, provided that the above copyright notice appears in all   *
15  * copies and that both the copyright notice and this permission notice   *
16  * appear in the supporting documentation. The authors make no claims     *
17  * about the suitability of this software for any purpose. It is          *
18  * provided "as is" without express or implied warranty.                  *
19  **************************************************************************/
20
21 #ifndef ALIHLTEMCALONLINEDISPLAYEVENTTAB_H
22 #define ALIHLTEMCALONLINEDISPLAYEVENTTAB_H
23
24
25 #include "AliHLTEMCALOnlineDisplayTab.h"
26 #include "AliHLTEMCALConstants.h"
27 #include "AliHLTEMCALMapper.h"
28
29
30 #define NZRCUCOORD 2
31 #define NXRCUCOORD 2
32
33
34 using namespace EmcalHLTConst;
35
36
37 class TGTab;
38 class TRootEmbeddedCanvas;
39 class TCanvas;
40 class TH2D;
41 class TH1D;
42 class AliHLTEMCALOnlineDisplayTH2D;
43 class AliHLTEMCALGetEventButton;
44 class AliHLTHOMERReader;
45 class AliHLTCaloRcuCellEnergyDataStruct;
46 class AliHLTEMCALOnlineDisplay;
47 class AliHLTEMCALSharedMemoryInterface;
48 class AliHLTCaloChannelRawDataStruct;
49
50
51 class AliHLTEMCALOnlineDisplayEventTab : public AliHLTEMCALOnlineDisplayTab
52 {
53  public:
54  
55   virtual ~AliHLTEMCALOnlineDisplayEventTab();
56
57
58   AliHLTEMCALOnlineDisplayEventTab(AliHLTEMCALOnlineDisplay * onlineDisplayPtr, TGTab  *tabPtr, 
59                                   AliHLTHOMERReader * homerSyncPtr, 
60                                   AliHLTHOMERReader * homerPtrs[MAXHOSTS], 
61                                   int nHosts,  int runnumber = -1);
62   
63   Int_t GetRawData(TH1D *histPtr, int x, int z, int gain);
64
65   void UpdateDisplay();
66   int GetNextEvent();
67   virtual void ReadBlockData(AliHLTHOMERReader *homeReaderPtr);
68   void FindFourierBlocks(AliHLTHOMERReader *homeReaderPtr) const;
69
70   void ResetDisplay();
71   TGTab               *fTab; // Tab for onlinedisplay
72   TGTab               *fSubTab1;
73   TRootEmbeddedCanvas *fEc1, *fEc2, *fEc3, *fEc4, *fEc5, *fEc6;// Embedded canvas for tower energies etc..
74   TGCompositeFrame    *fSubF1, *fSubF2, *fSubF3; // comment
75   TCanvas *fgCanvasPtr[NGAINS]; // Comment
76   AliHLTEMCALOnlineDisplayTH2D *fgLegoPlotPtr[NGAINS];  // Legoplot with tower energies
77   
78   int *fChannelData[NMODULES][NZROWSMOD][NXCOLUMNSMOD][NGAINS]; // Arrays to hold tower energies
79   Int_t fNChannelSamples[NMODULES][NZROWSMOD][NXCOLUMNSMOD][NGAINS]; // Arrays to holdrwa data
80   Int_t fChannelEnergy[NMODULES][NZROWSMOD][NXCOLUMNSMOD][NGAINS];   // Arrays to hold tower energies
81   
82  private:
83   AliHLTEMCALOnlineDisplayEventTab (const AliHLTEMCALOnlineDisplayEventTab & );
84   AliHLTEMCALOnlineDisplayEventTabb & operator = (const AliHLTEMCALOnlineDisplayEventTab  &);
85   AliHLTEMCALOnlineDisplayEventTab();
86   void FillRawData(const AliHLTCaloChannelRawDataStruct &rawStr);
87   AliHLTEMCALGetEventButton* fgEventButtPtr; 
88   void InitDisplay(TGTab *tabPtr){};
89   void InitDisplay(TGTab * tabPtr, int runnumber);
90   AliHLTEMCALOnlineDisplay *fOnlineDisplayPtr;
91   AliHLTEMCALSharedMemoryInterface  *fShmPtr;   
92
93 };
94
95
96 #endif