1 #include "AliHLTPHOSOnlineDisplayRawTab.h"
3 #include "AliHLTPHOSRcuCellAccumulatedEnergyDataStruct.h"
4 #include "AliHLTPHOSGetEventButton.h"
5 #include "AliHLTPHOSRcuChannelDataStruct.h"
9 AliHLTPHOSOnlineDisplayRawTab::AliHLTPHOSOnlineDisplayRawTab()
11 cout << "AliHLTPHOSOnlineDisplayRawTab:ERROR: You cannot create a onlinedisplay Tab without arguments" << endl;
14 AliHLTPHOSOnlineDisplayRawTab::AliHLTPHOSOnlineDisplayRawTab(TGTab *tabPtr, HOMERReader *homerSyncPtr, HOMERReader *homerPtrs[MAX_HOSTS], int nHosts)
16 for(int i=0; i<MAX_HOSTS; i++)
18 fgHomerReadersPtr[i] = 0;
21 fgHomerReaderPtr = homerSyncPtr;
23 for(int i=0; i<nHosts; i++)
25 fgHomerReadersPtr[i] = homerPtrs[i] ;
33 AliHLTPHOSOnlineDisplayRawTab::~AliHLTPHOSOnlineDisplayRawTab()
41 AliHLTPHOSOnlineDisplayRawTab::ReadBlockData(HOMERReader *homerReaderPtr)
43 unsigned long blk = homerReaderPtr->FindBlockNdx("ATADNAHC","SOHP", 0xeFFFFFFF );
45 while ( blk != ~(unsigned long)0 )
47 cout << "GetNextEventRaw(): updating block " << endl;
48 AliHLTUInt16_t moduleID;
49 const AliHLTPHOSRcuChannelDataStruct* rcuChannelDataPtr = (const AliHLTPHOSRcuChannelDataStruct*)homerReaderPtr->GetBlockData( blk );
50 moduleID = rcuChannelDataPtr->fModuleID ;
51 cout << "GetNextEventRaw() Module ID =" << moduleID << endl;
54 AliHLTUInt32_t tmpChCnt =0;
55 AliHLTUInt16_t tmpSampleCnt =0;
57 tmpChCnt = rcuChannelDataPtr->fNValidChannels;
58 cout << "tmpChCnt = " << tmpChCnt << endl;
60 for( AliHLTUInt32_t ch =0; ch < tmpChCnt; ch ++)
63 tmpz = rcuChannelDataPtr->fValidData[ch].fZ;
64 tmpx = rcuChannelDataPtr->fValidData[ch].fX;
65 tmpSampleCnt = rcuChannelDataPtr->fValidData[ch].fDataSize -2;
67 // fgChannelDataPlotPtr[tmpz][tmpx]->SetFillColor(3);
69 fgChannelDataPlotPtr[tmpz][tmpx]->SetFillColor(1);
71 for(AliHLTUInt16_t sample =0; sample <tmpSampleCnt; sample ++)
73 if( rcuChannelDataPtr->fValidData[ch].fGain == 0)
75 fgChannelDataPlotPtr[tmpz][tmpx]->SetBinContent(sample, rcuChannelDataPtr->fValidData[ch].fChannelData[sample]);
82 blk = homerReaderPtr->FindBlockNdx("ATADNAHC","SOHP", 0xeFFFFFFF, blk+1);
89 AliHLTPHOSOnlineDisplayRawTab::GetNextEvent()
91 cout << "AliHLTPHOSOnlineDisplayRawTab::GetNextEvent()" << endl;
100 AliHLTPHOSOnlineDisplayRawTab::ResetDisplay()
107 AliHLTPHOSOnlineDisplayRawTab::InitDisplay(TGTab *tabPtr)
109 char tmpHistoName[256];
110 // char tmpHistoName[256];
111 char tmpChDtaName[256];
113 for(int z = 0; z < N_ZROWS_RCU; z ++)
115 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
117 sprintf(tmpHistoName, "row %d column %d",z, x);
118 // fgChannelDataPlotPtr[z][x] = new TH1D(tmpHistoName, tmpHistoName, 300, 0, 299);
119 fgChannelDataPlotPtr[z][x] = new AliHLTPHOSTH1D(tmpHistoName, tmpHistoName, 100, 0, 100);
120 // fgChannelDataPlotPtr[z][x]->SetMaximum(MAX_BIN_VALUE);
121 fgChannelDataPlotPtr[z][x]->SetMaximum(1023);
122 fgChannelDataPlotPtr[z][x]->Reset();
128 TGCompositeFrame *tf = tabPtr->AddTab("Raw Data Dislay");
130 fSubTab3 = new TGTab(tf, 100, 100);
131 TGLayoutHints *hints = new TGLayoutHints(kLHintsNormal, 0, 0, 0, 0);
132 char tmpTabName[256];
133 char tmpCanvasName[256];
134 sprintf(tmpTabName, "Raw data zzz");
135 TGCompositeFrame *tf2 = fSubTab3->AddTab(tmpTabName);
136 fgEventButtPtr = new AliHLTPHOSGetEventButton(tf, "Get Rawdata2xxxxx", 'r');
137 AliHLTPHOSGetEventButton* EventButtPtr2 = new AliHLTPHOSGetEventButton(tf, "Get Rawdata", 'r');
138 EventButtPtr2->Move(200, 200);
144 AliHLTPHOSOnlineDisplayRawTab::UpdateDisplay()
146 fgTestCanvasPtr = new TCanvas("TEST", "testcanvas", 1200, 1000);
153 int nRows = endZ - startZ;
154 int nCols = endX - startX;
158 // fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
159 cout <<"nRows = "<< nRows << endl;
160 cout <<"nCols = "<< nCols << endl;
164 fgTestCanvasPtr->Divide(nCols, nRows, 0, 0);
165 // fgTestCanvasPtr->Divide(nRows, nCols, 0, 0);
168 for(int z = startZ; z < endZ; z ++)
170 for(int x = startX; x < endX; x ++)
172 cout << "z = "<< z << " x= " << x<<endl;
173 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z +1);
174 // fgTestCanvasPtr->cd((z - startZ)*nCols +x +1);
175 fgTestCanvasPtr->cd((z - startZ)*nCols +x);
176 // fgTestCanvasPtr->cd( z*nCols +x);
178 cout << "(z - startZ)*nCols +x ="<< (z - startZ)*nCols +x <<endl;
180 fgChannelDataPlotPtr[x][z]->Draw();
187 for(int z = 0; z < nRows; z ++)
189 for(int x = 0; x < nCols; x ++)
191 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
192 fgTestCanvasPtr->cd(z*nCols +x + 1);
193 fgChannelDataPlotPtr[z][x]->Draw();
201 // fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
204 for(int z = 0; z < N_ZROWS_RCU; z ++)
206 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
208 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
210 fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x + 1);
212 // fgTestCanvasPtr->cd(z*N_ZROWS_RCU +x + 1);
214 fgChannelDataPlotPtr[z][x]->Draw();
221 fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0);
224 for(int z = 0; z < N_ZROWS_RCU; z ++)
226 for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
228 // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1);
230 fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x +1);
232 // fgTestCanvasPtr->cd(z*N_ZROWS_RCU +x + 1);
234 fgChannelDataPlotPtr[z][x]->Draw();
242 fgTestCanvasPtr->Update();