00001 /* Generated by Together */ 00002 00003 #include "PadRpc_Event.h" 00004 00005 void PadRpc_Hit::Clear() 00006 { 00007 iPadIndexX = -1 ; 00008 iPadIndexY = -1 ; 00009 dTime = -1 ; 00010 dTot = -1 ; 00011 } 00012 00013 void PadRpc_Cluster::Clear() 00014 { 00015 fHits.clear(); 00016 dX = 0.0; 00017 dY = 0.0; 00018 dMeanTime = 0.0; 00019 dMeanPadX = 0.0; 00020 dMeanPadY = 0.0; 00021 } 00022 void PadRpc_Cluster::PositionCalculation( 00023 Double_t dMiddlePadX, Double_t dMiddlePadY, 00024 UInt_t uOrientation, 00025 Double_t dPadSizeX, Double_t dPadSizeY ) 00026 { 00027 Double_t dTotSum = 0.0; 00028 Double_t dMeanTot = 0.0; 00029 if( 0 == fHits.size() ) 00030 return; 00031 00032 if( 1 == uOrientation ) 00033 { 00034 dX = 0.0; 00035 dY = 0.0; 00036 dMeanTime = 0; 00037 dMeanPadX = 0; 00038 dMeanPadY = 0; 00039 for( UInt_t uHit = 0; uHit < fHits.size(); uHit++) 00040 { 00041 //dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted 00042 dMeanTot = 1; // Not Weighted 00043 // Along Pad axis: Strip Index + 0.5 to sit in the middle of the Pad! 00044 dX += (Double_t)(fHits[uHit].iPadIndexY + 0.5)*dMeanTot; 00045 dY += (Double_t)(fHits[uHit].iPadIndexX + 0.5)*dMeanTot; 00046 dMeanTime += fHits[uHit].dTime ; 00047 dTotSum += dMeanTot; 00048 dMeanPadX += (Double_t)(fHits[uHit].iPadIndexX)*dMeanTot; 00049 dMeanPadY += (Double_t)(fHits[uHit].iPadIndexY)*dMeanTot; 00050 } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++) 00051 dX = (dX/dTotSum)*dPadSizeY -dMiddlePadY; 00052 dY = (dY/dTotSum)*dPadSizeX -dMiddlePadX; 00053 dMeanTime /= fHits.size(); 00054 dMeanPadX /= dTotSum; 00055 dMeanPadY /= dTotSum; 00056 } // if( 1 == uOrientation ) 00057 else 00058 { 00059 dX = 0.0; 00060 dY = 0.0; 00061 dMeanTime = 0; 00062 dMeanPadX = 0; 00063 dMeanPadY = 0; 00064 for( UInt_t uHit = 0; uHit < fHits.size(); uHit++) 00065 { 00066 //dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted 00067 dMeanTot = 1; // Not Weighted 00068 // Along Pad axis: Strip Index + 0.5 to sit in the middle of the Pad! 00069 dX += (Double_t)(fHits[uHit].iPadIndexX + 0.5)*dMeanTot; 00070 dY += (Double_t)(fHits[uHit].iPadIndexY + 0.5)*dMeanTot; 00071 dMeanTime += fHits[uHit].dTime ; 00072 dTotSum += dMeanTot; 00073 dMeanPadX += (Double_t)(fHits[uHit].iPadIndexX)*dMeanTot; 00074 dMeanPadY += (Double_t)(fHits[uHit].iPadIndexY)*dMeanTot; 00075 } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++) 00076 dX = (dX/dTotSum)*dPadSizeX -dMiddlePadX; 00077 dY = (dY/dTotSum)*dPadSizeY -dMiddlePadY; 00078 dMeanTime /= fHits.size(); 00079 dMeanPadX /= dTotSum; 00080 dMeanPadY /= dTotSum; 00081 } // else of if( 1 == uOrientation ) 00082 } 00083 00084 void PadRpc_Event::Clear() 00085 { 00086 // all members should be cleared. 00087 fClusters.clear(); 00088 } 00089