Compatibility with ROOT trunk
[u/mrichter/AliRoot.git] / JETAN / AliCdfJetFinder.cxx
index 93eb6c9..f0a7938 100644 (file)
@@ -64,8 +64,8 @@ AliCdfJetFinder::AliCdfJetFinder():
     fAODtracksWrite(0),
     fAnalyseJets(0),
     fRefArr (NULL),
-    fNJets(-9999),
-    fNPart(-9999),
+    fNJets(0),
+    fNPart(0),
     fRadius(0.7),
     fMinJetParticles(1),
     fJetPtCut(0.),
@@ -78,6 +78,7 @@ AliCdfJetFinder::AliCdfJetFinder():
 //______________________________________________________________________________
 AliCdfJetFinder::~AliCdfJetFinder()
   {
+    Clean();
   // destructor
   }
 
@@ -357,20 +358,27 @@ if (fAODwrite)
 
 InitData();
 
-if (!fNPart) { if (fDebug) {cout << "entries = 0 ; Event empty !!!" << endl ;} return; } // if event empty then exit
-
-FindCones();
-
-ComputeConesWeight();
-
-if (fAODwrite) { 
-  if(fDebug)cout << "Writing AOD" << endl ; 
-  WriteJets();
+ if (!fNPart) { 
+  if (fDebug) {
+    cout << "entries = 0 ; Event empty !!!" << endl ;
+  }
+  // no need to call clean, InitData does not 
+  // create pointers if npart == 0
+  return; 
+ } // if event empty then exit
+
+ FindCones();
+ ComputeConesWeight();
+ if (fAODwrite) { 
+   if(fDebug)cout << "Writing AOD" << endl ; 
+   WriteJets();
  }
-
-if (fAnalyseJets) AnalizeJets();
-
-Clean();
+ if (fAnalyseJets) AnalizeJets();
+ Clean();
 
 }
 
@@ -594,6 +602,7 @@ for(  Int_t jetnr = 0 ; jetnr < fNJets ; jetnr++ )
     }
   // tracks REFs written in AOD
   AddJet(jet);
+
   }
 //jets vector parsed and written to AOD
 }
@@ -882,6 +891,9 @@ for(  Int_t part = 0 ; part < fNPart ; part++ )
       }
     }
 
+  delete [] dphipartljet;
+  delete [] zpartljet;
+  delete [] idxpartLJ;
 }
 
 
@@ -889,10 +901,20 @@ for(  Int_t part = 0 ; part < fNPart ; part++ )
 void AliCdfJetFinder::Clean()
 {
 // CLEANING SECTION
-  delete [] fVectParticle;
-  delete [] fVectJet;
-  delete [] fPtArray;
-  delete [] fIdxArray;
+  for (  Int_t i = 0 ; i < fNPart ; i++ ){
+    delete fVectParticle[i];
+    fVectParticle[i] = 0;
+  }
+  delete [] fVectParticle;fVectParticle = 0;
+
+  for (  Int_t i = 0 ; i < fNJets ; i++ ){
+    delete fVectJet[i];
+    fVectJet[i] = 0;
+  } 
+  delete [] fVectJet;fVectJet = 0;
+
+  delete [] fPtArray;fPtArray = 0;
+  delete [] fIdxArray;fIdxArray = 0;
 
   Reset();
 }