68 Int_t iNumUFiberHits = 0;
69 Int_t iNumVFiberHits = 0;
74 std::list<MDHIT>::const_iterator iter;
75 for (iter=ListMDHits.begin(); iter!=ListMDHits.end(); ++iter)
77 if (iRPot == (*iter).iRPot)
82 m_MapLayers.insert(std::pair<int, FIBERS>((*iter).iPlate, structFibers));
83 m_MapLayers[(*iter).iPlate].ListFibers.push_back((*iter).iFiber);
87 m_MapLayers[(*iter).iPlate].ListFibers.push_back((*iter).iFiber);
100 if (fmod(
double(i),
double(2)) == 1) iNumUFiberHits++;
101 else iNumVFiberHits++;
118 return StatusCode::SUCCESS;
138 Float_t b_ref[2] = {-127.0, -127.0};
139 Float_t fXInter, fYInter;
140 Float_t p_min, p_max;
141 Float_t n_min, n_max;
142 Int_t iMinP_tmp, iMaxP_tmp;
143 Int_t iMinN_tmp, iMaxN_tmp;
145 const Int_t NBINTOT = 72000;
146 std::vector<Int_t> Over_p(NBINTOT);
147 std::vector<Int_t> Over_n(NBINTOT);
174 for (Int_t i=0;i<72000;i++)
180 std::list<int>::iterator intIter;
184 for (intIter=
m_MapLayers[iLayer].ListFibers.begin(); intIter!=
m_MapLayers[iLayer].ListFibers.end(); ++intIter)
192 fFibCen = (fYInter-fXInter)/sqrt(2.0);
196 Over_p[(int)((fFibCen-0.24)*1000)+
bin+36000]++;
203 fFibCen = (fYInter+fXInter)/sqrt(2.0);
207 Over_n[(int)((fFibCen-0.24)*1000)+
bin+36000]++;
217 std::vector<int> *max_p =
new std::vector<int>;
218 std::vector<int> *max_n =
new std::vector<int>;
220 for (Int_t i=0;i<72000;i++)
222 if (Over_p[i]>NumU) NumU = Over_p[i];
223 if (Over_n[i]>NumV) NumV = Over_n[i];
228 for (Int_t i=0;i<72000;i++)
236 p_min = -36.0 + double(max_p->front())*1e-3;
237 p_max = -36.0 + double(max_p->back())*1e-3;
238 iMinP_tmp = max_p->front();
239 iMaxP_tmp = max_p->back();
242 iFullWidth = max_p->size();
244 for (Int_t i=0; i<iFullWidth; i++)
246 if (max_p->at(iFullWidth-i-1)-iMinP_tmp < 500)
248 iMaxP_tmp = max_p->at(iFullWidth-i-1);
249 p_max = -36.0 + double(iMaxP_tmp)*1e-3;
256 b_p = b_ref[1]+(p_min+p_max)/sqrt(2.);
273 for (Int_t i=0;i<72000;i++)
281 n_min = -36.0 + double(max_n->front())*1e-3;
282 n_max = -36.0 + double(max_n->back())*1e-3;
283 iMinN_tmp = max_n->front();
284 iMaxN_tmp = max_n->back();
287 iFullWidth = max_n->size();
289 for (Int_t i=0; i<iFullWidth; i++)
291 if (max_n->at(iFullWidth-i-1)-iMinN_tmp < 500)
293 iMaxN_tmp = max_n->at(iFullWidth-i-1);
294 n_max = -36.0 + double(iMaxN_tmp)*1e-3;
301 b_n = b_ref[0]+(n_min+n_max)/sqrt(2.);
326 Float_t b_mean_n=-9999.0;
327 Float_t b_mean_p=-9999.0;
333 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 0);
336 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
338 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
339 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
344 if (b_mean_p!=-9999.0 && b_mean_n==-9999.0)
346 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 1);
348 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
351 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
352 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
357 if (b_mean_p==-9999.0 && b_mean_n!=-9999.0)
359 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 2);
361 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
364 HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
365 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
HistFill(b_mean_p, b_mean_n, overReg_p, overReg_n, NumU, NumV, 3);
370 Float_t x_tmp, y_tmp;
372 Float_t dist_x,dist_y;
374 Int_t gFib_x, gFib_y;
379 std::list<int>::iterator intIter;
380 if (b_mean_p!=-9999.0 && b_mean_n!=-9999.0)
390 min_x = 0.24/cos(TMath::Pi()/4.);
391 min_y = 0.24/cos(TMath::Pi()/4.);
396 for (intIter=
m_MapLayers[iLayer].ListFibers.begin(); intIter!=
m_MapLayers[iLayer].ListFibers.end(); ++intIter)
419 if (gFib_x==gFib_y)
m_fhits[iLayer]=gFib_x;
432 SetData(NumU, NumV, OL_U, OL_V);
StatusCode Initialize(Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Int_t iHalf, Int_t fMultiplicityCut, Int_t iUVCut, Float_t fOverlapCut)