Various fixes to not free output memory
authorcholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 Sep 2012 00:10:02 +0000 (00:10 +0000)
committercholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 Sep 2012 00:10:02 +0000 (00:10 +0000)
PWGLF/FORWARD/analysis2/AliFMDCorrector.cxx
PWGLF/FORWARD/analysis2/AliFMDEventInspector.cxx
PWGLF/FORWARD/analysis2/AliFMDHistCollector.cxx
PWGLF/FORWARD/analysis2/AliFMDMCCorrector.cxx
PWGLF/FORWARD/analysis2/AliFMDMCDensityCalculator.cxx
PWGLF/FORWARD/analysis2/AliForwardUtil.cxx
PWGLF/FORWARD/analysis2/AliForwardUtil.h
PWGLF/FORWARD/analysis2/ForwardAODConfig.C
PWGLF/FORWARD/analysis2/trains/TrainSetup.C
PWGLF/FORWARD/analysis2/trains/runMain.cxx

index 4a6b3fe..1a3dbc6 100644 (file)
@@ -447,7 +447,7 @@ AliFMDCorrector::RingHistos::~RingHistos()
   // 
   // Destructor 
   //
-  if (fDensity) delete fDensity;
+  // if (fDensity) delete fDensity;
 }
 
 //____________________________________________________________________
index deda91d..b602cb4 100644 (file)
@@ -463,6 +463,7 @@ AliFMDEventInspector::Init(const TAxis& vtxAxis)
   fHCentVsQual->GetXaxis()->SetBinLabel(3, "V0 vs SPD outlier");
   fHCentVsQual->GetXaxis()->SetBinLabel(4, "V0 vs TPC outlier");
   fHCentVsQual->GetXaxis()->SetBinLabel(5, "V0 vs ZDC outlier");
+  fHCentVsQual->SetDirectory(0);
   fList->Add(fHCentVsQual);
 
   fHStatus = new TH1I("status", "Status", 7, 1, 8);
index a2ac1a7..1254b20 100644 (file)
@@ -92,7 +92,7 @@ AliFMDHistCollector::AliFMDHistCollector(const AliFMDHistCollector& o)
 AliFMDHistCollector::~AliFMDHistCollector()
 { 
   DGUARD(fDebug, 3, "DTOR of AliFMDHistCollector");
-  if (fList) delete fList;
+  // if (fList) delete fList;
 }
 //____________________________________________________________________
 AliFMDHistCollector&
index ca4ef2d..b21b561 100644 (file)
@@ -39,12 +39,12 @@ AliFMDMCCorrector::~AliFMDMCCorrector()
   // 
   // Destructor 
   //
-  if (fComps) fComps->Clear();
-  if (fFMD1i) delete fFMD1i;
-  if (fFMD2i) delete fFMD2i;
-  if (fFMD2o) delete fFMD2o;
-  if (fFMD3i) delete fFMD3i;
-  if (fFMD3o) delete fFMD3o;
+  // if (fComps) fComps->Clear();
+  // if (fFMD1i) delete fFMD1i;
+  // if (fFMD2i) delete fFMD2i;
+  // if (fFMD2o) delete fFMD2o;
+  // if (fFMD3i) delete fFMD3i;
+  // if (fFMD3o) delete fFMD3o;
 }
 
 //____________________________________________________________________
index 5f16daa..f670404 100644 (file)
@@ -33,7 +33,7 @@ AliFMDMCDensityCalculator::~AliFMDMCDensityCalculator()
   // 
   // Destructor 
   //
-  if (fComps)  fComps->Delete();
+  // if (fComps)  fComps->Delete();
 }
 
 //____________________________________________________________________
index a91389b..b2c4670 100644 (file)
@@ -909,11 +909,23 @@ AliForwardUtil::Histos::~Histos()
   // 
   // Destructor
   //
+}
+
+//____________________________________________________________________
+void
+AliForwardUtil::Histos::Delete(Option_t* opt)
+{
   if (fFMD1i) delete fFMD1i;
   if (fFMD2i) delete fFMD2i;
   if (fFMD2o) delete fFMD2o;
   if (fFMD3i) delete fFMD3i;
   if (fFMD3o) delete fFMD3o;
+  fFMD1i = 0;
+  fFMD2i = 0;
+  fFMD2o = 0;
+  fFMD3i = 0;
+  fFMD3o = 0;
+  TObject::Delete(opt);
 }
 
 //____________________________________________________________________
index b25c728..d4badd5 100644 (file)
@@ -535,10 +535,17 @@ public:
      */
     Histos& operator=(const Histos&) { return *this;}
     /** 
-     * Destructor
+     * Destructor.  This does not delete the interally allocated
+     * memory.  Use the member function Delete for that.
      */
     ~Histos();
     /** 
+     * Clear internal memory.  Note, if the internal histograms are
+     * added to an output container, then we must not free this
+     * memory.
+     */
+    void Delete(Option_t* opt="");
+    /** 
      * Initialize the object 
      * 
      * @param etaAxis Eta axis to use 
index 8be7852..0de5a23 100644 (file)
@@ -88,7 +88,7 @@ ForwardAODConfig(AliForwardMultiplicityBase* task)
   // Disable use of angle corrected signals in the algorithm 
   task->GetSharingFilter().SetZeroSharedHitsBelowThreshold(false);
   // Whether to use simple merging algorithm
-  task->GetSharingFilter().SetUseSimpleSharing(false);
+  task->GetSharingFilter().SetUseSimpleSharing(true);
   // Whether to allow for 3 strip hits 
   task->GetSharingFilter().SetAllow3Strips(true);
   // Do not cut fixed/hard on multiplicity 
index 816ea76..01d5f8f 100644 (file)
@@ -462,6 +462,9 @@ struct TrainSetup
   {
     if (fExecMode != kProof) return false;
     TString host(fProofServer.GetHost());
+    Info("IsAAF", "host %s contains \"alice-caf\"=%d or \"skaf\"=%d -> %d", 
+        host.Data(), host.Contains("alice-caf"),  host.Contains("skaf"),
+        host.Contains("alice-caf") || host.Contains("skaf"));
     return host.Contains("alice-caf") || host.Contains("skaf");
   }
   //__________________________________________________________________
@@ -1363,6 +1366,7 @@ protected:
        TString fn(what);
        if (IsAAF() || fExecMode==kGrid) {
          // Let plug-in handle the upload 
+         Info("LoadLibrary", "Adding %s to plug-in PARs", what);
          ret = SetupPAR(what) ? 0 : -1;
          if (rec) fListOfPARs.Add(new TObjString(what));
        }
@@ -1385,9 +1389,9 @@ protected:
              return false;
            }
          }
+         ret = gProof->EnablePackage(what);
        }
        Info("LoadLibrary", "Enabling package %s (from %s)", what, fn.Data());
-       ret = gProof->EnablePackage(what);
       }            
       else {
        ret = gSystem->Load(libName.Data());
@@ -2733,7 +2737,7 @@ public:
       fNEvents = nEvents;
       fAsShell = asShell;
 
-      if (gApplication && asShell) {
+      if (!gROOT->IsBatch() && asShell) {
        Info("Run", "Starting train via timer in 1 seconds");
        new Deferred(*this);
        Info("Run", "Running TApplication object %p", gApplication);
index 579dc53..d52b621 100644 (file)
@@ -314,6 +314,7 @@ int main(int argc, char** argv)
 
   // Make an application 
   TApplication* app = 0;
+  gROOT->SetBatch(true);
   if (gui) {
     Info("", "Making an application and initializing graphics");
     gROOT->SetBatch(false);