]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/CALO/AliHLTCaloClusterizer.cxx
Bastian's Task for Jet Fragmentation, to be merged with other FF tasks
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloClusterizer.cxx
index fe06bfe1e2fb484a8c9a72e9eec7f042d6b0df55..c07f268c7e7e0d34ca565d2351b816b49949f525 100644 (file)
@@ -72,8 +72,8 @@ AliHLTCaloClusterizer::AliHLTCaloClusterizer(TString det):
   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
@@ -98,6 +98,7 @@ AliHLTCaloClusterizer::ClusterizeEvent(Int_t nDigits)
   fUsedSize = 0;\r
   fNDigits = nDigits;\r
   fRecPointDataPtr = fFirstRecPointPtr;\r
+\r
   //Clusterization starts\r
   for(Int_t i = 0; i < nDigits; i++)\r
     { \r
@@ -112,7 +113,7 @@ AliHLTCaloClusterizer::ClusterizeEvent(Int_t nDigits)
 \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
@@ -146,7 +147,7 @@ AliHLTCaloClusterizer::ClusterizeEvent(Int_t nDigits)
       \r
     }//end of clusterization\r
 \r
-   return nRecPoints;\r
+    return nRecPoints;\r
 }\r
 \r
 Int_t\r
@@ -180,14 +181,15 @@ AliHLTCaloClusterizer::ScanForNeighbourDigits(Int_t index, AliHLTCaloRecPointDat
 //                     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
@@ -249,8 +251,12 @@ Int_t AliHLTCaloClusterizer::CheckArray()
           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
@@ -258,20 +264,23 @@ Int_t AliHLTCaloClusterizer::CheckArray()
 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