From 38233af10cb7f32b5cd8df5148b0b60c82382007 Mon Sep 17 00:00:00 2001 From: jgrosseo Date: Wed, 19 Jul 2006 07:56:05 +0000 Subject: [PATCH] implemented destructors --- PWG0/dNdEta/AliMultiplicityESDSelector.cxx | 8 +--- PWG0/dNdEta/AlidNdEtaAnalysisESDSelector.cxx | 39 +++++++++++++++++++- PWG0/dNdEta/AlidNdEtaCorrection.cxx | 34 +++++++++++++++++ PWG0/dNdEta/AlidNdEtaCorrection.h | 2 + 4 files changed, 75 insertions(+), 8 deletions(-) diff --git a/PWG0/dNdEta/AliMultiplicityESDSelector.cxx b/PWG0/dNdEta/AliMultiplicityESDSelector.cxx index 03c678bb622..b08da1b69d7 100644 --- a/PWG0/dNdEta/AliMultiplicityESDSelector.cxx +++ b/PWG0/dNdEta/AliMultiplicityESDSelector.cxx @@ -26,8 +26,6 @@ AliMultiplicityESDSelector::AliMultiplicityESDSelector() : // // Constructor. Initialization of pointers // - - AliLog::SetClassDebugLevel("AliMultiplicityESDSelector", AliLog::kDebug); } AliMultiplicityESDSelector::~AliMultiplicityESDSelector() @@ -117,14 +115,10 @@ Bool_t AliMultiplicityESDSelector::Process(Long64_t entry) return kTRUE; // get number of "good" tracks - TObjArray* list = fEsdTrackCuts->GetAcceptedTracks(fESD); - Int_t nGoodTracks = list->GetEntries(); - delete list; - list = 0; + Int_t nGoodTracks = fEsdTrackCuts->CountAcceptedTracks(fESD); fMultiplicity->Fill(nGoodTracks); - return kTRUE; } diff --git a/PWG0/dNdEta/AlidNdEtaAnalysisESDSelector.cxx b/PWG0/dNdEta/AlidNdEtaAnalysisESDSelector.cxx index f9771dda8ea..1e01297b9b5 100644 --- a/PWG0/dNdEta/AlidNdEtaAnalysisESDSelector.cxx +++ b/PWG0/dNdEta/AlidNdEtaAnalysisESDSelector.cxx @@ -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() diff --git a/PWG0/dNdEta/AlidNdEtaCorrection.cxx b/PWG0/dNdEta/AlidNdEtaCorrection.cxx index 0ca7dd51d32..8509f472835 100644 --- a/PWG0/dNdEta/AlidNdEtaCorrection.cxx +++ b/PWG0/dNdEta/AlidNdEtaCorrection.cxx @@ -25,6 +25,10 @@ AlidNdEtaCorrection::AlidNdEtaCorrection() //____________________________________________________________________ AlidNdEtaCorrection::AlidNdEtaCorrection(const Char_t* name, const Char_t* title) : TNamed(name, title), + fTrack2ParticleCorrection(0), + fVertexRecoCorrection(0), + fTriggerCorrection(0), + fTriggerBiasCorrection(0), fNEvents(0), fNTriggeredEvents(0) { @@ -51,6 +55,36 @@ AlidNdEtaCorrection::AlidNdEtaCorrection(const Char_t* name, const Char_t* title fTriggerBiasCorrection ->SetAxisTitles("#eta", "p_{T} [GeV/c]"); } +//____________________________________________________________________ +AlidNdEtaCorrection::~AlidNdEtaCorrection() +{ + // destructor + + if (fTrack2ParticleCorrection) + { + delete fTrack2ParticleCorrection; + fTrack2ParticleCorrection = 0; + } + + if (fVertexRecoCorrection) + { + delete fVertexRecoCorrection; + fVertexRecoCorrection = 0; + } + + if (fTriggerCorrection) + { + delete fTriggerCorrection; + fTriggerCorrection = 0; + } + + if (fTriggerBiasCorrection) + { + delete fTriggerBiasCorrection; + fTriggerBiasCorrection = 0; + } +} + //____________________________________________________________________ void AlidNdEtaCorrection::Finish() { diff --git a/PWG0/dNdEta/AlidNdEtaCorrection.h b/PWG0/dNdEta/AlidNdEtaCorrection.h index bb5a05491c2..69d6cb03221 100644 --- a/PWG0/dNdEta/AlidNdEtaCorrection.h +++ b/PWG0/dNdEta/AlidNdEtaCorrection.h @@ -29,6 +29,8 @@ public: AlidNdEtaCorrection(); AlidNdEtaCorrection(const Char_t* name, const Char_t* title); + ~AlidNdEtaCorrection(); + // fVertexRecoCorrection, fTriggerCorrection void FillEvent(Float_t vtx, Float_t n) {fTriggerCorrection->FillGene(vtx, n);} void FillEventWithTrigger(Float_t vtx, Float_t n) {fVertexRecoCorrection->FillGene(vtx, n); fTriggerCorrection->FillMeas(vtx, n);} -- 2.39.3