]> 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 455c4353629d8849eda281f7805b138922b623e2..c07f268c7e7e0d34ca565d2351b816b49949f525 100644 (file)
@@ -58,8 +58,11 @@ AliHLTCaloClusterizer::AliHLTCaloClusterizer(TString det):
   fNDigits(0)\r
 {\r
   //See header file for documentation\r
-  fEmcClusteringThreshold = 0.2;\r
-  fEmcMinEnergyThreshold = 0.03;\r
+  //fEmcClusteringThreshold = 0.2;\r
+  //fEmcMinEnergyThreshold = 0.03;\r
+\r
+  fEmcClusteringThreshold = 0.1;\r
+  fEmcMinEnergyThreshold = 0.01;\r
   fEmcTimeGate = 1.e-6 ;\r
   \r
   fMaxDigitIndexDiff = 2*fCaloConstants->GetNZROWSMOD();\r
@@ -69,9 +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
-  printf("Start of rec point data: %x, end of rec point data: %x\n", fRecPointDataPtr, reinterpret_cast<UChar_t*>(fRecPointDataPtr) + fAvailableSize);\r
+  fFirstRecPointPtr = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(new UChar_t[fAvailableSize]);\r
+  fRecPointDataPtr = fFirstRecPointPtr;  \r
 \r
 }//end\r
 \r
@@ -96,27 +98,28 @@ 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
       fDigitsInCluster = 0;\r
-      //      printf("ENERGY: %f\n", fDigitsPointerArray[i]->fEnergy);\r
+\r
       if(fDigitsPointerArray[i]->fEnergy < fEmcClusteringThreshold)\r
        {\r
          continue;\r
        }\r
       CheckArray();\r
       CheckBuffer();\r
-      //            printf("cluster candidate!\n");\r
+\r
       // First digit is placed at the fDigits member variable in the recpoint\r
       fDigitIndexPtr = &(fRecPointDataPtr->fDigits);\r
-\r
+      //fUsedSize += sizeof(AliHLTCaloRecPointDataStruct);\r
+      \r
       fRecPointDataPtr->fAmp = 0;\r
       fRecPointDataPtr->fModule = fDigitsPointerArray[i]->fModule;\r
 \r
       // Assigning the digit to this rec point\r
       fRecPointDataPtr->fDigits = i;\r
-      printf("Clusterizier: adding digit:  index pointer: %x, index: %d\n", fDigitIndexPtr, *fDigitIndexPtr);\r
       fUsedSize += sizeof(AliHLTCaloRecPointDataStruct);\r
       \r
       // Incrementing the pointer to be ready for new entry\r
@@ -136,15 +139,15 @@ AliHLTCaloClusterizer::ClusterizeEvent(Int_t nDigits)
       //fUsedSize += sizeof(AliHLTCaloRecPointDataStruct) + (fDigitsInCluster-1)*sizeof(AliHLTCaloDigitDataStruct);   \r
       \r
       fRecPointDataPtr->fMultiplicity = fDigitsInCluster;     \r
-      printf("Rec point energy: %f\n", fRecPointDataPtr->fAmp);\r
-      printf("Multiplicity: %d\n", fDigitsInCluster);\r
       fRecPointArray[fNRecPoints] = fRecPointDataPtr; \r
       \r
       fRecPointDataPtr = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(fDigitIndexPtr);\r
+\r
+      fNRecPoints++;\r
       \r
     }//end of clusterization\r
-   fNRecPoints = nRecPoints;\r
-   return nRecPoints;\r
+\r
+    return nRecPoints;\r
 }\r
 \r
 Int_t\r
@@ -178,16 +181,15 @@ AliHLTCaloClusterizer::ScanForNeighbourDigits(Int_t index, AliHLTCaloRecPointDat
 //                     fUsedSize = 0;\r
 //                  }  \r
                  CheckBuffer();\r
+                 \r
                  // Assigning index to digit\r
-                 printf("Digit index pointer: %x\n", fDigitIndexPtr);\r
                  *fDigitIndexPtr = j;\r
                  fUsedSize += sizeof(Int_t);\r
                  \r
-                 printf("Clusterizier: adding digit:  index pointer: %x, index: %d\n", fDigitIndexPtr, *fDigitIndexPtr); \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
@@ -244,15 +246,17 @@ AliHLTCaloClusterizer::AreNeighbours(AliHLTCaloDigitDataStruct* digit1,
 \r
 Int_t AliHLTCaloClusterizer::CheckArray()\r
 {\r
-      printf("CheckArray: fArraySize: %d, fNRecPoints: %d\n", fArraySize, fNRecPoints);\r
       if(fArraySize == fNRecPoints)\r
        {\r
-          printf("Expanding array...");\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
@@ -260,22 +264,23 @@ Int_t AliHLTCaloClusterizer::CheckArray()
 Int_t AliHLTCaloClusterizer::CheckBuffer()\r
 {\r
    // See header file for class documentation \r
-        printf("CheckBuffer: Used size %d, fAvailableSize: %d\n", fUsedSize, fAvailableSize);\r
-       if((fAvailableSize - fUsedSize) < sizeof(AliHLTCaloRecPointDataStruct) )\r
+       if((fAvailableSize - fUsedSize) < (Int_t)sizeof(AliHLTCaloRecPointDataStruct))\r
        {\r
-          printf("Expanding buffer...\n");\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
+\r
+           memcpy(tmp, fFirstRecPointPtr, fUsedSize);\r
            fAvailableSize *= 2;\r
-           UChar_t *tmp = new UChar_t[fAvailableSize];\r
-           memcpy(tmp, fRecPointDataPtr, 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 fRecPointDataPtr;\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
@@ -298,7 +303,6 @@ Int_t AliHLTCaloClusterizer::CheckDigits(AliHLTCaloRecPointDataStruct** recArray
   {\r
      nRecPoints = fNRecPoints;\r
   }\r
-  printf("CL: CheckDigits: Number of rec points: %d\n", nRecPoints);\r
   for(Int_t i = 0; i < nRecPoints; i++)\r
   {\r
           \r
@@ -307,23 +311,16 @@ Int_t AliHLTCaloClusterizer::CheckDigits(AliHLTCaloRecPointDataStruct** recArray
      //AliHLTCaloRecPointDataStruct *recPoint = fRecPointArray[0];\r
      Int_t multiplicity = recPoint->fMultiplicity;\r
      Int_t *digitIndexPtr = &(recPoint->fDigits);\r
-     printf("CL: Rec point with energy: %f, multiplicity: %d\n", recPoint->fAmp, recPoint->fMultiplicity);\r
      for(Int_t j = 0; j < multiplicity; j++)\r
      {\r
        //AliHLTCaloRecPointDataStruct *recPoint = fRecPointArray[j];\r
-       AliHLTCaloDigitDataStruct *digit = digits[*digitIndexPtr];\r
-       printf("CL: Digit ID: %d, energy: %f, index: %d, indexpointer: %x\n", digit->fID, digit->fEnergy, *digitIndexPtr, digitIndexPtr);\r
+//     AliHLTCaloDigitDataStruct *digit = digits[*digitIndexPtr];\r
        digitIndexPtr++;\r
        //recPoint = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(digitIndexPtr);\r
      }\r
   }\r
      \r
-     \r
-     \r
-     \r
-     \r
-     \r
-     \r
+     return 0;\r
 }\r
 \r
 Int_t AliHLTCaloClusterizer::CheckDigits(AliHLTCaloRecPointDataStruct** recArray, AliHLTCaloDigitDataStruct* digitArray, Int_t nRP)\r
@@ -340,7 +337,6 @@ Int_t AliHLTCaloClusterizer::CheckDigits(AliHLTCaloRecPointDataStruct** recArray
   {\r
      nRecPoints = fNRecPoints;\r
   }\r
-  printf("CL: CheckDigits: Number of rec points: %d\n", nRecPoints);\r
   for(Int_t i = 0; i < nRecPoints; i++)\r
   {\r
           \r
@@ -349,22 +345,14 @@ Int_t AliHLTCaloClusterizer::CheckDigits(AliHLTCaloRecPointDataStruct** recArray
      //AliHLTCaloRecPointDataStruct *recPoint = fRecPointArray[0];\r
      Int_t multiplicity = recPoint->fMultiplicity;\r
      Int_t *digitIndexPtr = &(recPoint->fDigits);\r
-     printf("CL: Rec point with energy: %f, multiplicity: %d\n", recPoint->fAmp, recPoint->fMultiplicity);\r
      for(Int_t j = 0; j < multiplicity; j++)\r
      {\r
        //AliHLTCaloRecPointDataStruct *recPoint = fRecPointArray[j];\r
        AliHLTCaloDigitDataStruct digit = digits[*digitIndexPtr];\r
-       printf("CL: digits: %x, recpoints: %x, digitIndexPtr: %x\n", digits, recpoints, digitIndexPtr);\r
-       printf("CL: Digit ID: %d, energy: %f, index: %d, indexpointer: %x\n", digit.fID, digit.fEnergy, *digitIndexPtr, digitIndexPtr);\r
        digitIndexPtr++;\r
        //recPoint = reinterpret_cast<AliHLTCaloRecPointDataStruct*>(digitIndexPtr);\r
      }\r
   }\r
+   return 0;\r
      \r
-     \r
-     \r
-     \r
-     \r
-     \r
-     \r
-}
\ No newline at end of file
+}\r