fRecPointArray = new AliHLTCaloRecPointDataStruct*[fArraySize];\r
\r
fAvailableSize = sizeof(AliHLTCaloRecPointDataStruct) * 20;\r
- fRecPointDataPtr = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(new UChar_t[fAvailableSize]);\r
- fFirstRecPointPtr = fRecPointDataPtr; \r
+ fFirstRecPointPtr = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(new UChar_t[fAvailableSize]);\r
+ fRecPointDataPtr = fFirstRecPointPtr; \r
\r
}//end\r
\r
fUsedSize = 0;\r
fNDigits = nDigits;\r
fRecPointDataPtr = fFirstRecPointPtr;\r
+\r
//Clusterization starts\r
for(Int_t i = 0; i < nDigits; i++)\r
{ \r
\r
// First digit is placed at the fDigits member variable in the recpoint\r
fDigitIndexPtr = &(fRecPointDataPtr->fDigits);\r
- fUsedSize += sizeof(AliHLTCaloRecPointDataStruct);\r
+ //fUsedSize += sizeof(AliHLTCaloRecPointDataStruct);\r
\r
fRecPointDataPtr->fAmp = 0;\r
fRecPointDataPtr->fModule = fDigitsPointerArray[i]->fModule;\r
\r
}//end of clusterization\r
\r
- return nRecPoints;\r
+ return nRecPoints;\r
}\r
\r
Int_t\r
// fUsedSize = 0;\r
// } \r
CheckBuffer();\r
+ \r
// Assigning index to digit\r
*fDigitIndexPtr = j;\r
fUsedSize += sizeof(Int_t);\r
\r
// Incrementing digit pointer to be ready for new entry\r
fDigitIndexPtr++;\r
-\r
- recPoint->fAmp += fDigitsPointerArray[j]->fEnergy;\r
+ \r
+ fRecPointDataPtr->fAmp += fDigitsPointerArray[j]->fEnergy;\r
fDigitsPointerArray[j]->fEnergy = 0; \r
fDigitsInCluster++;\r
ScanForNeighbourDigits(j, recPoint);\r
fArraySize *= 2;\r
AliHLTCaloRecPointDataStruct **tmp = new AliHLTCaloRecPointDataStruct*[fArraySize];\r
memcpy(tmp, fRecPointArray, fArraySize/2 * sizeof(AliHLTCaloRecPointDataStruct*));\r
- delete fRecPointArray;\r
+ delete [] fRecPointArray;\r
fRecPointArray = tmp;\r
+ //fRecPointArray[fNRecPoints-1] = fRecPointDataPtr;\r
+ //Int_t recPointOffset = reinterpret_cast<UChar_t*>(fRecPointDataPtr) - reinterpret_cast<UChar_t*>(fFirstRecPointPtr);\r
+ //fRecPointDataPtr = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(reinterpret_cast<UChar_t*>(tmp) + recPointOffset);\r
+ \r
}\r
return 0;\r
}\r
Int_t AliHLTCaloClusterizer::CheckBuffer()\r
{\r
// See header file for class documentation \r
- if((fAvailableSize - fUsedSize) < sizeof(AliHLTCaloRecPointDataStruct))\r
+ if((fAvailableSize - fUsedSize) < (Int_t)sizeof(AliHLTCaloRecPointDataStruct))\r
{\r
Int_t recPointOffset = reinterpret_cast<UChar_t*>(fRecPointDataPtr) - reinterpret_cast<UChar_t*>(fFirstRecPointPtr);\r
+ Int_t digitIndexOffset = reinterpret_cast<UChar_t*>(fDigitIndexPtr) - reinterpret_cast<UChar_t*>(fRecPointDataPtr);\r
UChar_t *tmp = new UChar_t[fAvailableSize*2];\r
- memcpy(tmp, fFirstRecPointPtr, fAvailableSize);\r
+\r
+ memcpy(tmp, fFirstRecPointPtr, fUsedSize);\r
fAvailableSize *= 2;\r
for(Int_t n = 0; n < fNRecPoints; n++)\r
{\r
fRecPointArray[n] = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(reinterpret_cast<UChar_t*>(fRecPointArray[n]) - reinterpret_cast<UChar_t*>(fFirstRecPointPtr) + reinterpret_cast<UChar_t*>(tmp));\r
}\r
- delete fFirstRecPointPtr;\r
+ delete [] fFirstRecPointPtr;\r
fFirstRecPointPtr = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(tmp);\r
fRecPointDataPtr = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(tmp + recPointOffset);\r
- fUsedSize = 0;\r
+ fDigitIndexPtr = reinterpret_cast<Int_t*>(reinterpret_cast<UChar_t*>(fRecPointDataPtr) + digitIndexOffset);\r
+ //fUsedSize = 0;\r
}\r
return 0;\r
}\r