]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.cxx
files changed to us the new standalone HOMER library in aliroot
[u/mrichter/AliRoot.git] / HLT / PHOS / OnlineDisplay / AliHLTPHOSOnlineDisplayRawTab.cxx
CommitLineData
59b4cd9a 1#include "AliHLTPHOSOnlineDisplayRawTab.h"
2#include <iostream>
3#include "AliHLTPHOSRcuCellAccumulatedEnergyDataStruct.h"
4#include "AliHLTPHOSGetEventButton.h"
14ff16ed 5//#include "AliHLTPHOSRcuChannelDataStruct.h"
6#include "AliHLTPHOSRcuCellEnergyDataStruct.h"
4bb09b0f 7#include "AliHLTHOMERReader.h"
59b4cd9a 8
9using namespace std;
10
11AliHLTPHOSOnlineDisplayRawTab::AliHLTPHOSOnlineDisplayRawTab()
12{
13 cout << "AliHLTPHOSOnlineDisplayRawTab:ERROR: You cannot create a onlinedisplay Tab without arguments" << endl;
14}
15
4bb09b0f 16AliHLTPHOSOnlineDisplayRawTab::AliHLTPHOSOnlineDisplayRawTab(TGTab *tabPtr, AliHLTHOMERReader *homerSyncPtr, AliHLTHOMERReader *homerPtrs[MAX_HOSTS], int nHosts)
59b4cd9a 17{
18 for(int i=0; i<MAX_HOSTS; i++)
19 {
20 fgHomerReadersPtr[i] = 0;
21 }
22
23 fgHomerReaderPtr = homerSyncPtr;
24
25 for(int i=0; i<nHosts; i++)
26 {
27 fgHomerReadersPtr[i] = homerPtrs[i] ;
28 }
29
30 fgNHosts = nHosts;
31 InitDisplay(tabPtr);
32}
33
34
35AliHLTPHOSOnlineDisplayRawTab::~AliHLTPHOSOnlineDisplayRawTab()
36{
37
38
39}
40
41
42void
4bb09b0f 43AliHLTPHOSOnlineDisplayRawTab::ReadBlockData(AliHLTHOMERReader *homerReaderPtr)
59b4cd9a 44{
45 unsigned long blk = homerReaderPtr->FindBlockNdx("ATADNAHC","SOHP", 0xeFFFFFFF );
46
47 while ( blk != ~(unsigned long)0 )
48 {
49 cout << "GetNextEventRaw(): updating block " << endl;
50 AliHLTUInt16_t moduleID;
14ff16ed 51
52 // const AliHLTPHOSRcuChannelDataStruct* rcuChannelDataPtr = (const AliHLTPHOSRcuChannelDataStruct*)homerReaderPtr->GetBlockData( blk );
53 const AliHLTPHOSRcuCellEnergyDataStruct* rcuChannelDataPtr = (const AliHLTPHOSRcuCellEnergyDataStruct*)homerReaderPtr->GetBlockData( blk );
54
59b4cd9a 55 moduleID = rcuChannelDataPtr->fModuleID ;
f84fcf79 56 cout << "GetNextEventRaw() Module ID =" << moduleID << endl;
14ff16ed 57
58
59b4cd9a 59 int tmpx;
60 int tmpz;
61 AliHLTUInt32_t tmpChCnt =0;
62 AliHLTUInt16_t tmpSampleCnt =0;
63
14ff16ed 64 // tmpChCnt = rcuChannelDataPtr->fNValidChannels;
65 tmpChCnt = rcuChannelDataPtr->fCnt;
66
59b4cd9a 67 cout << "tmpChCnt = " << tmpChCnt << endl;
68
69 for( AliHLTUInt32_t ch =0; ch < tmpChCnt; ch ++)
70 {
71 {
72 tmpz = rcuChannelDataPtr->fValidData[ch].fZ;
73 tmpx = rcuChannelDataPtr->fValidData[ch].fX;
14ff16ed 74 // tmpSampleCnt = rcuChannelDataPtr->fValidData[ch].fDataSize -2;
75 tmpSampleCnt = rcuChannelDataPtr->fValidData[ch].fNSamples;
59b4cd9a 76
f84fcf79 77 // fgChannelDataPlotPtr[tmpz][tmpx]->SetFillColor(3);
78
79 fgChannelDataPlotPtr[tmpz][tmpx]->SetFillColor(1);
80
59b4cd9a 81 for(AliHLTUInt16_t sample =0; sample <tmpSampleCnt; sample ++)
82 {
83 if( rcuChannelDataPtr->fValidData[ch].fGain == 0)
84 {
14ff16ed 85 // fgChannelDataPlotPtr[tmpz][tmpx]->SetBinContent(sample, rcuChannelDataPtr->fValidData[ch].fChannelData[sample]);
86 fgChannelDataPlotPtr[tmpz][tmpx]->SetBinContent(sample, rcuChannelDataPtr->fValidData[ch].fData[sample]);
59b4cd9a 87 }
9c9d15d6 88
59b4cd9a 89 }
90 }
91 }
9c9d15d6 92
59b4cd9a 93 blk = homerReaderPtr->FindBlockNdx("ATADNAHC","SOHP", 0xeFFFFFFF, blk+1);
9c9d15d6 94
59b4cd9a 95 }
96}
97
98
99int
100AliHLTPHOSOnlineDisplayRawTab::GetNextEvent()
101{
102 cout << "AliHLTPHOSOnlineDisplayRawTab::GetNextEvent()" << endl;
103 ResetDisplay();
104 DoGetNextEvent();
105 UpdateDisplay();
106 fgEvntCnt ++;
107}
108
109
110void
111AliHLTPHOSOnlineDisplayRawTab::ResetDisplay()
112{
113
114}
115
116
117void
118AliHLTPHOSOnlineDisplayRawTab::InitDisplay(TGTab *tabPtr)
119{
120 char tmpHistoName[256];
121 // char tmpHistoName[256];
122 char tmpChDtaName[256];
123
124 for(int z = 0; z < N_ZROWS_RCU; z ++)
125 {
126 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
127 {
9c9d15d6 128 sprintf(tmpHistoName, "row %d column %d",z, x);
d80b55e3 129 fgChannelDataPlotPtr[z][x] = new TH1D(tmpHistoName, tmpHistoName, 300, 0, 299);
130 // fgChannelDataPlotPtr[z][x] = new AliHLTPHOSTH1D(tmpHistoName, tmpHistoName, 100, 0, 100);
9c9d15d6 131 // fgChannelDataPlotPtr[z][x]->SetMaximum(MAX_BIN_VALUE);
132 fgChannelDataPlotPtr[z][x]->SetMaximum(1023);
59b4cd9a 133 fgChannelDataPlotPtr[z][x]->Reset();
134 }
135 }
136
137
138
139 TGCompositeFrame *tf = tabPtr->AddTab("Raw Data Dislay");
140
141 fSubTab3 = new TGTab(tf, 100, 100);
142 TGLayoutHints *hints = new TGLayoutHints(kLHintsNormal, 0, 0, 0, 0);
143 char tmpTabName[256];
144 char tmpCanvasName[256];
145 sprintf(tmpTabName, "Raw data zzz");
146 TGCompositeFrame *tf2 = fSubTab3->AddTab(tmpTabName);
147 fgEventButtPtr = new AliHLTPHOSGetEventButton(tf, "Get Rawdata2xxxxx", 'r');
148 AliHLTPHOSGetEventButton* EventButtPtr2 = new AliHLTPHOSGetEventButton(tf, "Get Rawdata", 'r');
149 EventButtPtr2->Move(200, 200);
150
151}
152
153
154void
155AliHLTPHOSOnlineDisplayRawTab::UpdateDisplay()
156{
59b4cd9a 157 fgTestCanvasPtr = new TCanvas("TEST", "testcanvas", 1200, 1000);
f84fcf79 158
9c9d15d6 159 int startZ = 25;
160 int endZ = 31;
161 int startX = 20;
162 int endX = 27;
163
164 int nRows = endZ - startZ;
165 int nCols = endX - startX;
166
167
168 // int start = 0;
169 // fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
170 cout <<"nRows = "<< nRows << endl;
171 cout <<"nCols = "<< nCols << endl;
172
f84fcf79 173
174 /*
9c9d15d6 175 fgTestCanvasPtr->Divide(nCols, nRows, 0, 0);
176 // fgTestCanvasPtr->Divide(nRows, nCols, 0, 0);
177
178
179 for(int z = startZ; z < endZ; z ++)
180 {
181 for(int x = startX; x < endX; x ++)
182 {
183 cout << "z = "<< z << " x= " << x<<endl;
3f98e623 184 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU (tmpHistoName, tmpHistoName, 300, 0, 299);+z +1);
9c9d15d6 185 // fgTestCanvasPtr->cd((z - startZ)*nCols +x +1);
186 fgTestCanvasPtr->cd((z - startZ)*nCols +x);
187 // fgTestCanvasPtr->cd( z*nCols +x);
188
189 cout << "(z - startZ)*nCols +x ="<< (z - startZ)*nCols +x <<endl;
190
191 fgChannelDataPlotPtr[x][z]->Draw();
192 }
193 }
194 */
f84fcf79 195
9c9d15d6 196
197 /*
198 for(int z = 0; z < nRows; z ++)
f84fcf79 199 {
9c9d15d6 200 for(int x = 0; x < nCols; x ++)
f84fcf79 201 {
202 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
9c9d15d6 203 fgTestCanvasPtr->cd(z*nCols +x + 1);
f84fcf79 204 fgChannelDataPlotPtr[z][x]->Draw();
205 }
206 }
207 */
208
209
210
9c9d15d6 211
212 // fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
213
214 /*
215 for(int z = 0; z < N_ZROWS_RCU; z ++)
216 {
217 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
218 {
219 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
220
221 fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x + 1);
222
223 // fgTestCanvasPtr->cd(z*N_ZROWS_RCU +x + 1);
224
225 fgChannelDataPlotPtr[z][x]->Draw();
226 }
227 }
228 */
229
230
231
59b4cd9a 232 fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
233
9c9d15d6 234
59b4cd9a 235 for(int z = 0; z < N_ZROWS_RCU; z ++)
236 {
237 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
238 {
239 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
9c9d15d6 240
241 fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x +1);
242
243 // fgTestCanvasPtr->cd(z*N_ZROWS_RCU +x + 1);
244
59b4cd9a 245 fgChannelDataPlotPtr[z][x]->Draw();
246 }
247 }
9c9d15d6 248
249
250
251
59b4cd9a 252
253 fgTestCanvasPtr->Update();
59b4cd9a 254}
9c9d15d6 255
256