From cbc19295c732679a54095e3b8563efee11330a5d Mon Sep 17 00:00:00 2001 From: marian Date: Tue, 6 May 2008 15:31:38 +0000 Subject: [PATCH] Fixed memory leaks (Marian) --- TPC/AliTPCcalibAlign.cxx | 23 +++++++++++++---------- TPC/AliTPCcalibTracks.cxx | 8 ++++++++ TPC/AliTPCcalibTracksGain.cxx | 8 ++++++++ TPC/macros/CalibrateTPC.C | 18 +++++++++++++++--- 4 files changed, 44 insertions(+), 13 deletions(-) diff --git a/TPC/AliTPCcalibAlign.cxx b/TPC/AliTPCcalibAlign.cxx index 40d8eda8aef..25f9fae12bd 100644 --- a/TPC/AliTPCcalibAlign.cxx +++ b/TPC/AliTPCcalibAlign.cxx @@ -67,16 +67,19 @@ void AliTPCcalibAlign::Process(AliTPCseed *seed) { TObjArray tracklets= AliTPCTracklet::CreateTracklets(seed,AliTPCTracklet::kKalman, kFALSE,20,2); - TObjArray trackletsL= - AliTPCTracklet::CreateTracklets(seed,AliTPCTracklet::kLinear, - kFALSE,20,2); - TObjArray trackletsQ= - AliTPCTracklet::CreateTracklets(seed,AliTPCTracklet::kQuadratic, - kFALSE,20,2); - TObjArray trackletsR= - AliTPCTracklet::CreateTracklets(seed,AliTPCTracklet::kRiemann, - kFALSE,20,2); + // TObjArray trackletsL= +// AliTPCTracklet::CreateTracklets(seed,AliTPCTracklet::kLinear, +// kFALSE,20,2); +// TObjArray trackletsQ= +// AliTPCTracklet::CreateTracklets(seed,AliTPCTracklet::kQuadratic, +// kFALSE,20,2); +// TObjArray trackletsR= +// AliTPCTracklet::CreateTracklets(seed,AliTPCTracklet::kRiemann, +// kFALSE,20,2); tracklets.SetOwner(); + // trackletsL.SetOwner(); +// trackletsQ.SetOwner(); +// trackletsR.SetOwner(); if (tracklets.GetEntries()==2) { AliTPCTracklet *t1=static_cast(tracklets[0]); AliTPCTracklet *t2=static_cast(tracklets[1]); @@ -91,7 +94,7 @@ void AliTPCcalibAlign::Process(AliTPCseed *seed) { delete common1; delete common2; } - + } void AliTPCcalibAlign::ProcessTracklets(const AliExternalTrackParam &tp1, diff --git a/TPC/AliTPCcalibTracks.cxx b/TPC/AliTPCcalibTracks.cxx index 82ad2ee64b4..399849de574 100644 --- a/TPC/AliTPCcalibTracks.cxx +++ b/TPC/AliTPCcalibTracks.cxx @@ -454,6 +454,14 @@ AliTPCcalibTracks::AliTPCcalibTracks(const Text_t *name, const Text_t *title, Al fFitterLinZ2 = new TLinearFitter (2,"pol1"); fFitterParY = new TLinearFitter (3,"pol2"); fFitterParZ = new TLinearFitter (3,"pol2"); + // + fFitterLinY1->StoreData(kFALSE); + fFitterLinZ1->StoreData(kFALSE); + fFitterLinY2->StoreData(kFALSE); + fFitterLinZ2->StoreData(kFALSE); + fFitterParY->StoreData(kFALSE); + fFitterParZ->StoreData(kFALSE); + if (GetDebugLevel() > 1) cout << "AliTPCcalibTracks object sucessfully constructed: " << GetName() << endl; cout << "end of main constructor" << endl; // TO BE REMOVED diff --git a/TPC/AliTPCcalibTracksGain.cxx b/TPC/AliTPCcalibTracksGain.cxx index a365a1d9e13..822993462fc 100644 --- a/TPC/AliTPCcalibTracksGain.cxx +++ b/TPC/AliTPCcalibTracksGain.cxx @@ -320,6 +320,14 @@ AliTPCcalibTracksGain::AliTPCcalibTracksGain(const char* name, const char* title fFitter1T = new TLinearFitter(45,"hyp44"); fFitter2T = new TLinearFitter(45,"hyp44"); // + // + fFitter0M->StoreData(kFALSE); + fFitter1M->StoreData(kFALSE); + fFitter2M->StoreData(kFALSE); + fFitter0T->StoreData(kFALSE); + fFitter1T->StoreData(kFALSE); + fFitter2T->StoreData(kFALSE); + // // // Add profile histograms -JUST for visualization - Not used for real calibration // diff --git a/TPC/macros/CalibrateTPC.C b/TPC/macros/CalibrateTPC.C index 7d4e12a94db..9993e2049ac 100644 --- a/TPC/macros/CalibrateTPC.C +++ b/TPC/macros/CalibrateTPC.C @@ -5,6 +5,12 @@ //1. Load needed libraries gSystem->Load("libANALYSIS"); gSystem->Load("libTPCcalib"); + //increased memstat + gSystem->Load("$ROOTSYS/lib/libGui.so"); + gSystem->Load("$ROOTSYS/lib/libTree.so"); + gSystem->Load("$MEMSTAT/libMemStat.so"); + TMemStat memstat(100000000,10000000,kTRUE); + memstat->AddStamp("aaaa"); // // Setup analysis manager // @@ -17,9 +23,12 @@ gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros"); gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+") AliXRDPROOFtoolkit tool; - TChain * chain = tool.MakeChain("chain.txt","esdTree",0,10000000); + TChain * chain = tool.MakeChain("chain.txt","esdTree",0,30); chain->Lookup(); - mgr->SetNSysInfo(20); + // memory + mgr->SetNSysInfo(100); + AliSysInfo::AddCallBack(TMemStatManager::GetInstance()->fStampCallBack); + // mgr->StartAnalysis("local",chain); @@ -49,12 +58,15 @@ AliAnalysisManager * SetupCalibTask() { AliTPCcalibTracksCuts *cuts = new AliTPCcalibTracksCuts(20, 0.4, 0.5, 0.13, 0.018); AliTPCcalibTracks *calibTracks = new AliTPCcalibTracks("calibTracks", "Resolution calibration object for tracks", clusterParam, cuts); + AliTPCcalibTracksGain *calibTracksGain = new AliTPCcalibTracksGain("TPCGainTracks","TPCGainTracks",cuts); calibTracks->SetDebugLevel(5); calibTracks->SetStreamLevel(5); + calibTracksGain->SetDebugLevel(1); + calibTracksGain->SetStreamLevel(1); // ---*---*-----*-*-----*----------*--- // ADD CALIB JOBS HERE!!!!!!!!!!!!!!!! task1->AddJob(new AliTPCcalibAlign);//"align","The kewl alignment job")); - task1->AddJob(new AliTPCcalibTracksGain("TPCGainTracks","TPCGainTracks",cuts)); + task1->AddJob(calibTracksGain); task1->AddJob(calibTracks); // task1->AddJob(new AliTPCcalibBase); // task1->AddJob(new AliTPCcalibV0); -- 2.39.3