]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
coverity 19616
authoraadare <aadare@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 16 Mar 2012 18:03:26 +0000 (18:03 +0000)
committeraadare <aadare@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 16 Mar 2012 18:03:26 +0000 (18:03 +0000)
PWGCF/Correlations/DPhi/FourierDecomposition/AliDhcTask.cxx
PWGCF/Correlations/DPhi/FourierDecomposition/AliDhcTask.h
PWGCF/Correlations/DPhi/FourierDecomposition/AliPool.cxx

index be2247cdf15e3614986a71e6135016477fc265e2..478033480563282ee33e6b130ff35bf199255711 100644 (file)
@@ -200,7 +200,7 @@ void AliDhcTask::UserExec(Option_t *)
   }
 
   Int_t dType = -1;       // Will be set to kESD or kAOD.
-  MiniEvent* sTracks = 0; // Vector of selected AliMiniTracks.
+  MiniEvent* sTracks = new MiniEvent(0); // deleted by pool mgr.
   Double_t centCL1 = -1;
 
   LoadBranches();
@@ -258,10 +258,10 @@ void AliDhcTask::UserExec(Option_t *)
 
   // Get array of selected tracks
   if (dType == kESD) {
-    sTracks = GetESDTrax();
+    GetESDTracks(sTracks);
   }
   if (dType == kAOD) {
-    sTracks = GetAODTrax();
+    GetAODTracks(sTracks);
   }
 
   // Get pool containing tracks from other events like this one
@@ -269,7 +269,6 @@ void AliDhcTask::UserExec(Option_t *)
   if (!pool) {
     AliWarning(Form("No pool found. Centrality %f, ZVertex %f", 
                    fCentrality, fZVertex));
-    sTracks->clear();
     return;
   }
 
@@ -309,13 +308,13 @@ void AliDhcTask::UserExec(Option_t *)
 }
 
 //________________________________________________________________________
-MiniEvent* AliDhcTask::GetESDTrax() const
+void AliDhcTask::GetESDTracks(MiniEvent* miniEvt)
 {
   // Loop twice: 1. Count sel. tracks. 2. Fill vector.
 
   const AliESDVertex *vtxSPD = fESD->GetPrimaryVertexSPD();
   if (!vtxSPD)
-    return 0;
+    return;
 
   Int_t nTrax = fESD->GetNumberOfTracks();
   if (fVerbosity > 2)
@@ -377,8 +376,12 @@ MiniEvent* AliDhcTask::GetESDTrax() const
     nSelTrax++;
   }
 
-  MiniEvent* miniEvt = new MiniEvent(0);
-  miniEvt->reserve(nSelTrax);
+  if (miniEvt)
+    miniEvt->reserve(nSelTrax);
+  else {
+    AliError("!miniEvt");
+    return;
+  }
 
   // Loop 2.
   for (Int_t i = 0; i < nSelTrax; ++i) {
@@ -393,11 +396,11 @@ MiniEvent* AliDhcTask::GetESDTrax() const
     Int_t    sign = esdtrack->Charge() > 0 ? 1 : -1;
     miniEvt->push_back(AliMiniTrack(pt, eta, phi, sign));
   }
-  return miniEvt;
+  //  return miniEvt;
 }
 
 //________________________________________________________________________
-MiniEvent* AliDhcTask::GetAODTrax() const
+void AliDhcTask::GetAODTracks(MiniEvent* miniEvt)
 {
   // Loop twice: 1. Count sel. tracks. 2. Fill vector.
 
@@ -429,9 +432,13 @@ MiniEvent* AliDhcTask::GetAODTrax() const
     nSelTrax++;
   }
 
-  MiniEvent* miniEvt = new MiniEvent(0);
-  miniEvt->reserve(nSelTrax);
-
+  if (miniEvt)
+    miniEvt->reserve(nSelTrax);
+  else {
+    AliError("!miniEvt");
+    return;
+  }
+  
   // Loop 2.  
   for (Int_t i = 0; i < nTrax; ++i) {
     AliAODTrack* aodtrack = fAOD->GetTrack(i);
@@ -457,7 +464,7 @@ MiniEvent* AliDhcTask::GetAODTrax() const
     Int_t    sign = aodtrack->Charge() > 0 ? 1 : -1;
     miniEvt->push_back(AliMiniTrack(pt, eta, phi, sign));
   }
-  return miniEvt;
+  //  return miniEvt;
 }
 
 //________________________________________________________________________
index d1f3f2b12ab0403a2e7d654ff6c4fbc20affd8e6..29b1759d5cf4076ba680ca47b49abc359f3484d7 100644 (file)
@@ -42,8 +42,8 @@ class AliDhcTask : public AliAnalysisTaskSE {
 
   void         BookHistos();
   void         InitEventMixer();
-  MiniEvent*   GetESDTrax() const;
-  MiniEvent*   GetAODTrax() const;
+  void         GetESDTracks(MiniEvent*);
+  void         GetAODTracks(MiniEvent*);
   Bool_t       VertexOk(TObject* obj) const;
   Double_t     DeltaPhi(Double_t phia, Double_t phib, 
                        Double_t rangeMin = -TMath::Pi()/2, 
index dddb5e73f6b33f7914a916f0ef40d908237063d4..9a3cbd6b1cc74de06ca85a82b56accc852af492a 100644 (file)
@@ -118,6 +118,7 @@ AliEvtPool::UpdatePool(MiniEvent* miniEvt)
   }
   if (removeFirstEvent) {
     MiniEvent* oldestEvent = fEvents.front();
+    oldestEvent->clear();
     delete oldestEvent;
     fEvents.pop_front();         // remove first track array 
     fNTracksInEvent.pop_front(); // remove first int