Memory leak fixed in MFT/AliMFTAnalysisTools.cxx
authorauras <antonio.uras@cern.ch>
Tue, 15 Apr 2014 21:29:28 +0000 (23:29 +0200)
committerauras <antonio.uras@cern.ch>
Tue, 15 Apr 2014 21:29:28 +0000 (23:29 +0200)
MFT/AliMFTAnalysisTools.cxx

index 561e179..7782fde 100644 (file)
@@ -285,8 +285,6 @@ Bool_t AliMFTAnalysisTools::CalculatePCA(TObjArray *muons, Double_t *pca, Double
       return kFALSE;
     }
     
-    for (Int_t iMu=0; iMu<nMuons; iMu++) delete points[iMu];
-    
     for (Int_t i=0; i<3; i++) {
       for (Int_t iMu=0; iMu<nMuons; iMu++) {
         AliMUONTrackExtrap::ExtrapToZ(param[iMu], z[i]);
@@ -300,7 +298,7 @@ Bool_t AliMFTAnalysisTools::CalculatePCA(TObjArray *muons, Double_t *pca, Double
 
   }
 
-  // now we now that the minimum is between z[0] and z[2] and we search for it
+  // now we know that the minimum is between z[0] and z[2] and we search for it
   
   step *= 0.5;
   while (step>AliMFTConstants::fPrecisionPointOfClosestApproach) {
@@ -318,8 +316,8 @@ Bool_t AliMFTAnalysisTools::CalculatePCA(TObjArray *muons, Double_t *pca, Double
     else step *= 0.5;
   }
   
-  for (Int_t iMuon=0; iMuon<AliMFTConstants::fNMaxMuonsForPCA; iMuon++) delete points[iMuon];
-  delete points;
+  //  for (Int_t iMuon=0; iMuon<AliMFTConstants::fNMaxMuonsForPCA; iMuon++) if (points[iMuon]) delete points[iMuon];
+  delete [] points;
 
   // Once z of minimum is found, we evaluate the x and y coordinates by averaging over the contributing tracks
   
@@ -364,6 +362,9 @@ Bool_t AliMFTAnalysisTools::CalculatePCA(TObjArray *muons, Double_t *pca, Double
   if (sum > 0.) pcaQuality =  (sum-squareSum/sum) / (nMuons-1);
   else pcaQuality = 0.;
 
+  for (Int_t iMu=0; iMu<AliMFTConstants::fNMaxMuonsForPCA; iMu++) if (param[iMu]) delete param[iMu];
+  //  delete param;
+
   return kTRUE;
   
 }