Compatibility with ROOT trunk
[u/mrichter/AliRoot.git] / JETAN / AliCdfJetFinder.cxx
index 572aeb6..f0a7938 100644 (file)
@@ -4,7 +4,7 @@
  * Author: The ALICE Off-line Project.                                    *
  * Contributors are mentioned in the code where appropriate.              *
  *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
+ * Permission to usec, copy, modify and distribute this software and its   *
  * documentation strictly for non-commercial purposes is hereby granted   *
  * without fee, provided that the above copyright notice appears in all   *
  * copies and that both the copyright notice and this permission notice   *
@@ -59,14 +59,13 @@ ClassImp(AliCdfJetFinder)
 AliCdfJetFinder::AliCdfJetFinder():
     AliJetFinder(),
     fHistos(0),
-    fDebug(0),
     fFromAod(0),
     fAODwrite(0),
     fAODtracksWrite(0),
     fAnalyseJets(0),
     fRefArr (NULL),
-    fNJets(-9999),
-    fNPart(-9999),
+    fNJets(0),
+    fNPart(0),
     fRadius(0.7),
     fMinJetParticles(1),
     fJetPtCut(0.),
@@ -79,6 +78,7 @@ AliCdfJetFinder::AliCdfJetFinder():
 //______________________________________________________________________________
 AliCdfJetFinder::~AliCdfJetFinder()
   {
+    Clean();
   // destructor
   }
 
@@ -335,12 +335,12 @@ void AliCdfJetFinder::FindJets()
 //  * Go to the next highest PT particle (not already included in a jet) and include in the "jet" all particles
 //     (not already included in a jet) within the radius R =0.7.
 //  * Continue until all particles are in a "jet".
-
+  if (fDebug) { printf("AliCDJetfinder::FindJets() %d \n", __LINE__ ); }
 AliCdfJetHeader *header = (AliCdfJetHeader*)fHeader;
 
   if (header)
     {
-    fDebug            = header->IsDebugCDF();
+    fDebug            = header->GetDebug();
     fAODwrite         = header->IsAODwrite() ;       // write jets to AOD
     fAODtracksWrite   = header->IsAODtracksWrite() ; // write jet tracks to AOD
     fRadius           = header->GetRadius();      // get Radius from jet finder header
@@ -358,17 +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) { cout << "Writing AOD" << endl ; WriteJets(); }
-
-if (fAnalyseJets) AnalizeJets();
-
-Clean();
+ 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();
 
 }
 
@@ -586,12 +596,13 @@ for(  Int_t jetnr = 0 ; jetnr < fNJets ; jetnr++ )
   if (fDebug) jet.Print("");
 
   if (fFromAod && fAODtracksWrite)
-  {
+    {
       for (  Int_t jetTrack = 0; jetTrack < fNPart; jetTrack++ )
-      { if ( fVectParticle[jetTrack]->njet == jetnr ) { jet.AddTrack(fRefArr->At(jetTrack)) ; } }
-  }
+       { if ( fVectParticle[jetTrack]->njet == jetnr ) { jet.AddTrack(fRefArr->At(jetTrack)) ; } }
+    }
   // tracks REFs written in AOD
   AddJet(jet);
+
   }
 //jets vector parsed and written to AOD
 }
@@ -880,6 +891,9 @@ for(  Int_t part = 0 ; part < fNPart ; part++ )
       }
     }
 
+  delete [] dphipartljet;
+  delete [] zpartljet;
+  delete [] idxpartLJ;
 }
 
 
@@ -887,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();
 }