223{
224 Int_t iSign;
225 Float_t fDistanceA;
226 Float_t fDistanceB;
227 Float_t fPosition;
228
229 Float_t fFiberXPos = 23;
231
234
235
236
237
238 std::list<int>::const_iterator intIter0;
239 std::list<int>::const_iterator intIter1;
240 std::list<int>::const_iterator intIter2;
241
242 for (Int_t iSide=0; iSide<
ODSIDESCNT; iSide++)
243 {
244 iSign = (iSide==0) ? -1 : 1;
245
247 {
248 if (!MapLayers[0+iSide].ListFibers.empty())
249 {
250 for (intIter0=MapLayers[0+iSide].ListFibers.begin(); intIter0!=MapLayers[0+iSide].ListFibers.end(); ++intIter0)
251 {
252 if (!MapLayers[2+iSide].ListFibers.empty())
253 {
254 for (intIter1=MapLayers[2+iSide].ListFibers.begin(); intIter1!=MapLayers[2+iSide].ListFibers.end(); ++intIter1)
255 {
256 if (!MapLayers[4+iSide].ListFibers.empty())
257 {
258 for (intIter2=MapLayers[4+iSide].ListFibers.begin(); intIter2!=MapLayers[4+iSide].ListFibers.end(); ++intIter2)
259 {
260 fDistanceA = TMath::Abs(iSign*fFiberXPos*faOD[iRPot][0][iSide][*intIter0] + fbOD[iRPot][0][iSide][*intIter0] - iSign*fFiberXPos*faOD[iRPot][1][iSide][*intIter1] - fbOD[iRPot][1][iSide][*intIter1]);
261 fDistanceB = TMath::Abs(iSign*fFiberXPos*faOD[iRPot][1][iSide][*intIter1] + fbOD[iRPot][1][iSide][*intIter1] - iSign*fFiberXPos*faOD[iRPot][2][iSide][*intIter2] - fbOD[iRPot][2][iSide][*intIter2]);
262
264 {
265 fPosition = (iSign*fFiberXPos*faOD[iRPot][0][iSide][*intIter0]+fbOD[iRPot][0][iSide][*intIter0] + iSign*fFiberXPos*faOD[iRPot][1][iSide][*intIter1]+fbOD[iRPot][1][iSide][*intIter1] + iSign*fFiberXPos*faOD[iRPot][2][iSide][*intIter2]+fbOD[iRPot][2][iSide][*intIter2])/3.0;
269 }
270 }
271 }
272 else
273 {
274 fDistanceA = TMath::Abs(iSign*fFiberXPos*faOD[iRPot][0][iSide][*intIter0]+fbOD[iRPot][0][iSide][*intIter0] - iSign*fFiberXPos*faOD[iRPot][1][iSide][*intIter1]-fbOD[iRPot][1][iSide][*intIter1]);
276 {
277 fPosition = (iSign*fFiberXPos*faOD[iRPot][0][iSide][*intIter0]+fbOD[iRPot][0][iSide][*intIter0] + iSign*fFiberXPos*faOD[iRPot][1][iSide][*intIter1]+fbOD[iRPot][1][iSide][*intIter1])/2.0;
281 }
282 }
283 }
284 }
285 else
286 {
287 if (!MapLayers[4+iSide].ListFibers.empty())
288 {
289 for (intIter2=MapLayers[2*2+iSide].ListFibers.begin(); intIter2!=MapLayers[2*2+iSide].ListFibers.end(); ++intIter2)
290 {
291 fDistanceA = TMath::Abs(iSign*fFiberXPos*faOD[iRPot][0][iSide][*intIter0]+fbOD[iRPot][0][iSide][*intIter0] - iSign*fFiberXPos*faOD[iRPot][2][iSide][*intIter2]-fbOD[iRPot][2][iSide][*intIter2]);
293 {
294 fPosition = (iSign*fFiberXPos*faOD[iRPot][0][iSide][*intIter0]+fbOD[iRPot][0][iSide][*intIter0] + iSign*fFiberXPos*faOD[iRPot][2][iSide][*intIter2]+fbOD[iRPot][2][iSide][*intIter2])/2.0;
298 }
299 }
300 }
301 }
302 }
303 }
304 else
305 {
306 if (!MapLayers[2+iSide].ListFibers.empty())
307 {
308 for (intIter1=MapLayers[2*1+iSide].ListFibers.begin(); intIter1!=MapLayers[2*1+iSide].ListFibers.end(); ++intIter1)
309 {
310 if (!MapLayers[4+iSide].ListFibers.empty())
311 {
312 for (intIter2=MapLayers[2*2+iSide].ListFibers.begin(); intIter2!=MapLayers[2*2+iSide].ListFibers.end(); ++intIter2)
313 {
314 fDistanceB = TMath::Abs(iSign*fFiberXPos*faOD[iRPot][1][iSide][*intIter1]+fbOD[iRPot][1][iSide][*intIter1] - iSign*fFiberXPos*faOD[iRPot][2][iSide][*intIter2]-fbOD[iRPot][2][iSide][*intIter2]);
316 {
317 fPosition = (iSign*fFiberXPos*faOD[iRPot][1][iSide][*intIter1]+fbOD[iRPot][1][iSide][*intIter1] + iSign*fFiberXPos*faOD[iRPot][2][iSide][*intIter2]+fbOD[iRPot][2][iSide][*intIter2])/2.0;
321 }
322 }
323 }
324 }
325 }
326 }
327 }
328 }
329}