From c1b9ddb548a6eb92be31652640253db6b6514242 Mon Sep 17 00:00:00 2001 From: agheata Date: Tue, 22 Jan 2013 16:23:16 +0000 Subject: [PATCH 1/1] Testing merging fixed --- ANALYSIS/AliAnalysisManager.cxx | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/ANALYSIS/AliAnalysisManager.cxx b/ANALYSIS/AliAnalysisManager.cxx index 4269e4555af..2aa9f8580ee 100644 --- a/ANALYSIS/AliAnalysisManager.cxx +++ b/ANALYSIS/AliAnalysisManager.cxx @@ -63,6 +63,7 @@ ClassImp(AliAnalysisManager) AliAnalysisManager *AliAnalysisManager::fgAnalysisManager = NULL; TString AliAnalysisManager::fgCommonFileName = ""; +TString AliAnalysisManager::fgMacroNames = ""; Int_t AliAnalysisManager::fPBUpdateFreq = 1; //______________________________________________________________________________ @@ -2780,6 +2781,37 @@ void AliAnalysisManager::ApplyDebugOptions() } } +//______________________________________________________________________________ +Bool_t AliAnalysisManager::IsMacroLoaded(const char filename) +{ +// Check if a macro was loaded. + return fgMacroNames.Contains(filename); +} + +//______________________________________________________________________________ +Int_t AliAnalysisManager::LoadMacro(const char *filename, Int_t *error, Bool_t check) +{ +// Redirection of gROOT->LoadMacro which makes sure the same macro is not loaded +// twice + TString macroName = gSystem->BaseName(filename); + // Strip appended +, ++, +g, +O + Int_t index = macroName.Index("+"); + if (index>0) macroName.Remove(index); + if (fgMacroNames.Contains(macroName)) { + // Macro with the same name loaded already in this root session, do + // nothing + error = 0; + return 0; + } + Int_t ret = gROOT->LoadMacro(filename,error,check); + // In case of error return the error code + if (ret) return ret; + // Append the macro name to the loaded macros list + fgMacroNames += macroName; + fgMacroNames += " "; + return ret; +} + //______________________________________________________________________________ void AliAnalysisManager::Lock() { -- 2.43.0