113 {
114
115 for ( int i = 0; i < 8; i++ )
116 {
117 trackBR[i] = 0;
118 track3lBR[i] = 0;
119 if ( i != 2 )
120 {
121 for ( unsigned int j = 0; j < vindexb.size(); j++ )
122 {
123 int ly1, ly2, ly3, ly4;
124 ly1 = vindexb[j][0];
125 ly2 = vindexb[j][1] - 10;
126 ly3 = vindexb[j][2] - 20;
127 ly4 = vindexb[j][3] - 30;
128 if ( ( foBR[i][0][ly1] + foBR[i][1][ly2] + foBR[i][2][ly3] + foBR[i][3][ly4] ) >= 3 )
129 {
130 trackBR[i]++;
131 break;
132 }
133 if ( foBR[i][0][ly1] == 1 && foBR[i][2][ly3] == 1 )
134 {
135 trackBR[i]++;
136 break;
137 }
138 if ( foBR[i][1][ly2] == 1 && foBR[i][3][ly4] == 1 )
139 {
140 trackBR[i]++;
141 break;
142 }
143 }
144
145 for ( unsigned int j = 0; j < vindexb.size(); j++ )
146 {
147 int ly1, ly2, ly3, ly4;
148 ly1 = vindexb[j][0];
149 ly2 = vindexb[j][1] - 10;
150 ly3 = vindexb[j][2] - 20;
151 ly4 = vindexb[j][3] - 30;
152 if ( ( foBR[i][0][ly1] + foBR[i][1][ly2] + foBR[i][2][ly3] + foBR[i][3][ly4] ) >= 3 )
153 {
154 track3lBR[i]++;
155 break;
156 }
157 }
158 }
159 if ( i == 2 )
160 {
161 for ( unsigned int j = 0; j < vindexb3.size(); j++ )
162 {
163 int ly1, ly2, ly3, ly4;
164 ly1 = vindexb3[j][0];
165 ly2 = vindexb3[j][1] - 10;
166 ly3 = vindexb3[j][2] - 20;
167 ly4 = vindexb3[j][3] - 30;
168 if ( ( foBR[i][0][ly1] + foBR[i][1][ly2] + foBR[i][2][ly3] + foBR[i][3][ly4] ) >= 3 )
169 {
170 trackBR[i]++;
171 break;
172 }
173 if ( foBR[i][0][ly1] == 1 && foBR[i][2][ly3] == 1 )
174 {
175 trackBR[i]++;
176 break;
177 }
178 if ( foBR[i][1][ly2] == 1 && foBR[i][3][ly4] == 1 )
179 {
180 trackBR[i]++;
181 break;
182 }
183 }
184
185 for ( unsigned int j = 0; j < vindexb3.size(); j++ )
186 {
187 int ly1, ly2, ly3, ly4;
188 ly1 = vindexb3[j][0];
189 ly2 = vindexb3[j][1] - 10;
190 ly3 = vindexb3[j][2] - 20;
191 ly4 = vindexb3[j][3] - 30;
192 if ( ( foBR[i][0][ly1] + foBR[i][1][ly2] + foBR[i][2][ly3] + foBR[i][3][ly4] ) >= 3 )
193 {
194 track3lBR[i]++;
195 break;
196 }
197 }
198 }
199 }
200
201
202 for ( int i = 0; i < 4; i++ )
203 {
204 trackEE[i] = 0;
205 trackWE[i] = 0;
206 track3lEE[i] = 0;
207 track3lWE[i] = 0;
208 for ( unsigned int j = 0; j < vindexe.size(); j++ )
209 {
210 int ly1, ly2, ly3, ly4;
211 ly1 = vindexe[j][0];
212 ly2 = vindexe[j][1] - 10;
213 ly3 = vindexe[j][2] - 20;
214 ly4 = vindexe[j][3] - 30;
215
216 if ( ( foEC[0][i][0][ly1] + foEC[0][i][1][ly2] + foEC[0][i][2][ly3] +
217 foEC[0][i][3][ly4] ) >= 3 )
218 {
219 trackEE[i]++;
220 break;
221 }
222 if ( foEC[0][i][0][ly1] == 1 && foEC[0][i][2][ly3] == 1 )
223 {
224 trackEE[i]++;
225 break;
226 }
227 if ( foEC[0][i][1][ly2] == 1 && foEC[0][i][3][ly4] == 1 )
228 {
229 trackEE[i]++;
230 break;
231 }
232 }
233
234 for ( unsigned int j = 0; j < vindexe.size(); j++ )
235 {
236 int ly1, ly2, ly3, ly4;
237 ly1 = vindexe[j][0];
238 ly2 = vindexe[j][1] - 10;
239 ly3 = vindexe[j][2] - 20;
240 ly4 = vindexe[j][3] - 30;
241
242 if ( ( foEC[1][i][0][ly1] + foEC[1][i][1][ly2] + foEC[1][i][2][ly3] +
243 foEC[1][i][3][ly4] ) >= 3 )
244 {
245 trackWE[i]++;
246 break;
247 }
248 if ( foEC[1][i][0][ly1] == 1 && foEC[1][i][2][ly3] == 1 )
249 {
250 trackWE[i]++;
251 break;
252 }
253 if ( foEC[1][i][1][ly2] == 1 && foEC[1][i][3][ly4] == 1 )
254 {
255 trackWE[i]++;
256 break;
257 }
258 }
259
260 for ( unsigned int j = 0; j < vindexe.size(); j++ )
261 {
262 int ly1, ly2, ly3, ly4;
263 ly1 = vindexe[j][0];
264 ly2 = vindexe[j][1] - 10;
265 ly3 = vindexe[j][2] - 20;
266 ly4 = vindexe[j][3] - 30;
267
268 if ( ( foEC[0][i][0][ly1] + foEC[0][i][1][ly2] + foEC[0][i][2][ly3] +
269 foEC[0][i][3][ly4] ) >= 3 )
270 {
271 track3lEE[i]++;
272 break;
273 }
274 }
275 for ( unsigned int j = 0; j < vindexe.size(); j++ )
276 {
277 int ly1, ly2, ly3, ly4;
278 ly1 = vindexe[j][0];
279 ly2 = vindexe[j][1] - 10;
280 ly3 = vindexe[j][2] - 20;
281 ly4 = vindexe[j][3] - 30;
282
283 if ( ( foEC[1][i][0][ly1] + foEC[1][i][1][ly2] + foEC[1][i][2][ly3] +
284 foEC[1][i][3][ly4] ) >= 3 )
285 {
286 track3lWE[i]++;
287 break;
288 }
289 }
290 }
291
292
293 btrack = 0;
294 etrack = 0;
295 int b3ltrack = 0, e3ltrack = 0;
296 for ( int i = 0; i < 8; i++ )
297 {
298 btrack = btrack + trackBR[i];
299 b3ltrack = b3ltrack + track3lBR[i];
300 }
301 for ( int i = 0; i < 4; i++ )
302 {
303 etrack = etrack + trackEE[i] + trackWE[i];
304 e3ltrack = e3ltrack + track3lWE[i] + track3lEE[i];
305 }
306
307
308
309 bool mucBB3478 = false, mucBB37 = false;
310 if ( ( track3lBR[2] > 0 && track3lBR[6] > 0 ) || ( track3lBR[3] > 0 && track3lBR[7] > 0 ) )
311 mucBB3478 = true;
312 if ( track3lBR[2] > 0 && track3lBR[6] > 0 ) mucBB37 = true;
313
314
315 m_pIBGT->setMucBB3478( mucBB3478 );
316 m_pIBGT->setMucBB37( mucBB37 );
317
318
319 m_pIBGT->setMucNtrackBR( btrack );
320 m_pIBGT->setMucNtrackEC( etrack );
321 m_pIBGT->setMucN3ltrackTotal( b3ltrack + e3ltrack );
322}