137 std::map<int, FIBERS> mapLayers;
139 std::list<int>::iterator iterFiber;
141 std::list<MDHIT>::const_iterator iter;
146 if(mapLayers.find((*iter).iPlate)==mapLayers.end())
150 mapLayers.insert(std::pair<int, FIBERS>((*iter).iPlate, structFibers));
151 mapLayers[(*iter).iPlate].ListFibers.push_back((*iter).iFiber);
155 mapLayers[(*iter).iPlate].ListFibers.push_back((*iter).iFiber);
162 for (iterFiber=mapLayers[iLayer].ListFibers.begin(); iterFiber!=mapLayers[iLayer].ListFibers.end(); ++iterFiber)
164 if (fmod((
double)iLayer,(
double)2) == 0)
172 fRadius = fZ*cos(fTheta)+fU*sin(fTheta);
185 fRadius = fZ*cos(fTheta)+fU*sin(fTheta);
194 Int_t iULocMax, iULocMay, iULocMaz;
195 Int_t iVLocMax, iVLocMay, iVLocMaz;
197 m_histU_PT->GetMaximumBin(iULocMax, iULocMay, iULocMaz);
198 m_histV_PT->GetMaximumBin(iVLocMax, iVLocMay, iVLocMaz);
201 Float_t fRMinU, fRMinV, fRTmp, fRdr;
210 Float_t fAlphaU = -cos(fTLineU)/sin(fTLineU);
211 Float_t fAlphaV = -cos(fTLineV)/sin(fTLineV);
213 Float_t fBetaU = fRLineU/sin(fTLineU);
214 Float_t fBetaV = fRLineV/sin(fTLineV);
216 Float_t fBUMin = fAlphaU*0.0 + fBetaU;
217 Float_t fBUMax = fAlphaU*19.0 + fBetaU;
219 Float_t fBVMin = fAlphaV*1.0 + fBetaV;
220 Float_t fBVMax = fAlphaV*20.0 + fBetaV;
222 m_fHitBU = (fBUMax-fBUMin)/2.0 + fBUMin;
223 m_fHitBV = (fBVMax-fBVMin)/2.0 + fBVMin;
228 fRMinU = fRMinV = 0.5;
231 for (iterFiber=mapLayers[iLayer].ListFibers.begin(); iterFiber!=mapLayers[iLayer].ListFibers.end(); ++iterFiber)
233 if (fmod((
double)iLayer,(
double)2) == 0)
238 fRTmp = fZ*cos(fTLineU) + fU*sin(fTLineU);
239 fRdr = fabs(fRLineU - fRTmp);
252 fRTmp = fZ*cos(fTLineV) + fU*sin(fTLineV);
253 fRdr = fabs(fRLineV - fRTmp);
264 return StatusCode::SUCCESS;
StatusCode Initialize(const eRPotName &eRPName, const std::list< MDHIT > &ListMDHits, Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fzMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT])