1 #include "AliHLTPHOSOnlineDisplayRawTab.h"
3 #include "AliHLTPHOSRcuCellAccumulatedEnergyDataStruct.h"
4 #include "AliHLTPHOSGetEventButton.h"
5 //#include "AliHLTPHOSRcuChannelDataStruct.h"
6 #include "AliHLTPHOSRcuCellEnergyDataStruct.h"
10 AliHLTPHOSOnlineDisplayRawTab::AliHLTPHOSOnlineDisplayRawTab()
12 cout << "AliHLTPHOSOnlineDisplayRawTab:ERROR: You cannot create a onlinedisplay Tab without arguments" << endl;
15 AliHLTPHOSOnlineDisplayRawTab::AliHLTPHOSOnlineDisplayRawTab(TGTab *tabPtr, HOMERReader *homerSyncPtr, HOMERReader *homerPtrs[MAX_HOSTS], int nHosts)
17 for(int i=0; i<MAX_HOSTS; i++)
19 fgHomerReadersPtr[i] = 0;
22 fgHomerReaderPtr = homerSyncPtr;
24 for(int i=0; i<nHosts; i++)
26 fgHomerReadersPtr[i] = homerPtrs[i] ;
34 AliHLTPHOSOnlineDisplayRawTab::~AliHLTPHOSOnlineDisplayRawTab()
42 AliHLTPHOSOnlineDisplayRawTab::ReadBlockData(HOMERReader *homerReaderPtr)
44 unsigned long blk = homerReaderPtr->FindBlockNdx("ATADNAHC","SOHP", 0xeFFFFFFF );
46 while ( blk != ~(unsigned long)0 )
48 cout << "GetNextEventRaw(): updating block " << endl;
49 AliHLTUInt16_t moduleID;
51 // const AliHLTPHOSRcuChannelDataStruct* rcuChannelDataPtr = (const AliHLTPHOSRcuChannelDataStruct*)homerReaderPtr->GetBlockData( blk );
52 const AliHLTPHOSRcuCellEnergyDataStruct* rcuChannelDataPtr = (const AliHLTPHOSRcuCellEnergyDataStruct*)homerReaderPtr->GetBlockData( blk );
54 moduleID = rcuChannelDataPtr->fModuleID ;
55 cout << "GetNextEventRaw() Module ID =" << moduleID << endl;
60 AliHLTUInt32_t tmpChCnt =0;
61 AliHLTUInt16_t tmpSampleCnt =0;
63 // tmpChCnt = rcuChannelDataPtr->fNValidChannels;
64 tmpChCnt = rcuChannelDataPtr->fCnt;
66 cout << "tmpChCnt = " << tmpChCnt << endl;
68 for( AliHLTUInt32_t ch =0; ch < tmpChCnt; ch ++)
71 tmpz = rcuChannelDataPtr->fValidData[ch].fZ;
72 tmpx = rcuChannelDataPtr->fValidData[ch].fX;
73 // tmpSampleCnt = rcuChannelDataPtr->fValidData[ch].fDataSize -2;
74 tmpSampleCnt = rcuChannelDataPtr->fValidData[ch].fNSamples;
76 // fgChannelDataPlotPtr[tmpz][tmpx]->SetFillColor(3);
78 fgChannelDataPlotPtr[tmpz][tmpx]->SetFillColor(1);
80 for(AliHLTUInt16_t sample =0; sample <tmpSampleCnt; sample ++)
82 if( rcuChannelDataPtr->fValidData[ch].fGain == 0)
84 // fgChannelDataPlotPtr[tmpz][tmpx]->SetBinContent(sample, rcuChannelDataPtr->fValidData[ch].fChannelData[sample]);
85 fgChannelDataPlotPtr[tmpz][tmpx]->SetBinContent(sample, rcuChannelDataPtr->fValidData[ch].fData[sample]);
92 blk = homerReaderPtr->FindBlockNdx("ATADNAHC","SOHP", 0xeFFFFFFF, blk+1);
99 AliHLTPHOSOnlineDisplayRawTab::GetNextEvent()
101 cout << "AliHLTPHOSOnlineDisplayRawTab::GetNextEvent()" << endl;
110 AliHLTPHOSOnlineDisplayRawTab::ResetDisplay()
117 AliHLTPHOSOnlineDisplayRawTab::InitDisplay(TGTab *tabPtr)
119 char tmpHistoName[256];
120 // char tmpHistoName[256];
121 char tmpChDtaName[256];
123 for(int z = 0; z < N_ZROWS_RCU; z ++)
125 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
127 sprintf(tmpHistoName, "row %d column %d",z, x);
128 fgChannelDataPlotPtr[z][x] = new TH1D(tmpHistoName, tmpHistoName, 300, 0, 299);
129 // fgChannelDataPlotPtr[z][x] = new AliHLTPHOSTH1D(tmpHistoName, tmpHistoName, 100, 0, 100);
130 // fgChannelDataPlotPtr[z][x]->SetMaximum(MAX_BIN_VALUE);
131 fgChannelDataPlotPtr[z][x]->SetMaximum(1023);
132 fgChannelDataPlotPtr[z][x]->Reset();
138 TGCompositeFrame *tf = tabPtr->AddTab("Raw Data Dislay");
140 fSubTab3 = new TGTab(tf, 100, 100);
141 TGLayoutHints *hints = new TGLayoutHints(kLHintsNormal, 0, 0, 0, 0);
142 char tmpTabName[256];
143 char tmpCanvasName[256];
144 sprintf(tmpTabName, "Raw data zzz");
145 TGCompositeFrame *tf2 = fSubTab3->AddTab(tmpTabName);
146 fgEventButtPtr = new AliHLTPHOSGetEventButton(tf, "Get Rawdata2xxxxx", 'r');
147 AliHLTPHOSGetEventButton* EventButtPtr2 = new AliHLTPHOSGetEventButton(tf, "Get Rawdata", 'r');
148 EventButtPtr2->Move(200, 200);
154 AliHLTPHOSOnlineDisplayRawTab::UpdateDisplay()
156 fgTestCanvasPtr = new TCanvas("TEST", "testcanvas", 1200, 1000);
163 int nRows = endZ - startZ;
164 int nCols = endX - startX;
168 // fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
169 cout <<"nRows = "<< nRows << endl;
170 cout <<"nCols = "<< nCols << endl;
174 fgTestCanvasPtr->Divide(nCols, nRows, 0, 0);
175 // fgTestCanvasPtr->Divide(nRows, nCols, 0, 0);
178 for(int z = startZ; z < endZ; z ++)
180 for(int x = startX; x < endX; x ++)
182 cout << "z = "<< z << " x= " << x<<endl;
183 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU (tmpHistoName, tmpHistoName, 300, 0, 299);+z +1);
184 // fgTestCanvasPtr->cd((z - startZ)*nCols +x +1);
185 fgTestCanvasPtr->cd((z - startZ)*nCols +x);
186 // fgTestCanvasPtr->cd( z*nCols +x);
188 cout << "(z - startZ)*nCols +x ="<< (z - startZ)*nCols +x <<endl;
190 fgChannelDataPlotPtr[x][z]->Draw();
197 for(int z = 0; z < nRows; z ++)
199 for(int x = 0; x < nCols; x ++)
201 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
202 fgTestCanvasPtr->cd(z*nCols +x + 1);
203 fgChannelDataPlotPtr[z][x]->Draw();
211 // fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
214 for(int z = 0; z < N_ZROWS_RCU; z ++)
216 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
218 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
220 fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x + 1);
222 // fgTestCanvasPtr->cd(z*N_ZROWS_RCU +x + 1);
224 fgChannelDataPlotPtr[z][x]->Draw();
231 fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
234 for(int z = 0; z < N_ZROWS_RCU; z ++)
236 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
238 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
240 fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x +1);
242 // fgTestCanvasPtr->cd(z*N_ZROWS_RCU +x + 1);
244 fgChannelDataPlotPtr[z][x]->Draw();
252 fgTestCanvasPtr->Update();