]>
Commit | Line | Data |
---|---|---|
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 | |
9 | using namespace std; | |
10 | ||
11 | AliHLTPHOSOnlineDisplayRawTab::AliHLTPHOSOnlineDisplayRawTab() | |
12 | { | |
13 | cout << "AliHLTPHOSOnlineDisplayRawTab:ERROR: You cannot create a onlinedisplay Tab without arguments" << endl; | |
14 | } | |
15 | ||
4bb09b0f | 16 | AliHLTPHOSOnlineDisplayRawTab::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 | ||
35 | AliHLTPHOSOnlineDisplayRawTab::~AliHLTPHOSOnlineDisplayRawTab() | |
36 | { | |
37 | ||
38 | ||
39 | } | |
40 | ||
41 | ||
42 | void | |
4bb09b0f | 43 | AliHLTPHOSOnlineDisplayRawTab::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 | ||
99 | int | |
100 | AliHLTPHOSOnlineDisplayRawTab::GetNextEvent() | |
101 | { | |
102 | cout << "AliHLTPHOSOnlineDisplayRawTab::GetNextEvent()" << endl; | |
103 | ResetDisplay(); | |
104 | DoGetNextEvent(); | |
105 | UpdateDisplay(); | |
106 | fgEvntCnt ++; | |
107 | } | |
108 | ||
109 | ||
110 | void | |
111 | AliHLTPHOSOnlineDisplayRawTab::ResetDisplay() | |
112 | { | |
113 | ||
114 | } | |
115 | ||
116 | ||
117 | void | |
118 | AliHLTPHOSOnlineDisplayRawTab::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 | ||
154 | void | |
155 | AliHLTPHOSOnlineDisplayRawTab::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 |