]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/dNdEta/AlidNdEtaAnalysisESDSelector.cxx
implemented destructors
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / AlidNdEtaAnalysisESDSelector.cxx
index f9771dda8eaa135b2b2ef707b025e79794f2d700..1e01297b9b57f604a1a17fb0da7b27b02da8ede0 100644 (file)
@@ -43,6 +43,36 @@ AlidNdEtaAnalysisESDSelector::~AlidNdEtaAnalysisESDSelector()
 
   // histograms are in the output list and deleted when the output
   // list is deleted by the TSelector dtor
+
+  if (fdNdEtaAnalysis)
+  {
+    delete fdNdEtaAnalysis;
+    fdNdEtaAnalysis = 0;
+  }
+
+  if (fdNdEtaAnalysisMB)
+  {
+    delete fdNdEtaAnalysisMB;
+    fdNdEtaAnalysisMB = 0;
+  }
+
+  if (fdNdEtaAnalysisMBVtx)
+  {
+    delete fdNdEtaAnalysisMBVtx;
+    fdNdEtaAnalysisMBVtx = 0;
+  }
+
+  if (fEsdTrackCuts)
+  {
+    delete fEsdTrackCuts;
+    fEsdTrackCuts = 0;
+  }
+
+  if (fdNdEtaCorrection)
+  {
+    delete fdNdEtaCorrection;
+    fdNdEtaCorrection = 0;
+  }
 }
 
 void AlidNdEtaAnalysisESDSelector::Begin(TTree* tree)
@@ -183,7 +213,7 @@ Bool_t AlidNdEtaAnalysisESDSelector::Process(Long64_t entry)
     }
 
     Double_t p[3];
-    esdTrack->GetConstrainedPxPyPz(p); // ### TODO or GetInnerPxPyPy / GetOuterPxPyPy
+    esdTrack->GetConstrainedPxPyPz(p); // ### TODO should be okay because we have a vertex, however GetInnerPxPyPy / GetOuterPxPyPy also exist
     TVector3 vector(p);
 
     Float_t theta = vector.Theta();
@@ -230,9 +260,16 @@ void AlidNdEtaAnalysisESDSelector::SlaveTerminate()
     return;
   }
 
+  // Add the objects to the output list and set them to 0, so that the destructor does not delete them.
+
   fOutput->Add(fdNdEtaAnalysis);
+  fdNdEtaAnalysis = 0;
+
   fOutput->Add(fdNdEtaAnalysisMB);
+  fdNdEtaAnalysisMB = 0;
+
   fOutput->Add(fdNdEtaAnalysisMBVtx);
+  fdNdEtaAnalysisMBVtx = 0;
 }
 
 void AlidNdEtaAnalysisESDSelector::Terminate()