#include "IAnalysisAssistant.hxx" #include #include #include #include #include #include #include #include bool COMET::IAnalysisAssistant::LoadExternalAnalysisLibraries(){ // Obtain the ANALYSIS_LIBRARY_PATH environment variable TString analysis_lib_path=gSystem->Getenv("ANALYSIS_LIBRARY_PATH"); if(analysis_lib_path.Length()<1){ return true; } // Tokenize by colon TObjArray* analysis_lib_path_tkns=analysis_lib_path.Tokenize(":"); if(!analysis_lib_path_tkns || analysis_lib_path_tkns->GetEntries()<1){ COMETNamedError("IAnalysisAssistant","Problem trying to tokenize ANALYSIS_LIBRARY_PATH"); return false; } // Look for libraries in each directory TString lib_ext=gSystem->GetSoExt(); std::vector found_libraries; for(int i_dir=0;i_dirGetEntries();++i_dir){ TString lib_search=analysis_lib_path_tkns->At(i_dir)->GetName(); // Expand tildes etc gSystem->ExpandPathName(lib_search); lib_search+="/*."; lib_search+=lib_ext; TFileCollection lib_list; lib_list.Add(lib_search.Data()); lib_list.RemoveDuplicates(); if(lib_list.GetNFiles()<1){ continue; } for(int i_lib=0; i_libAt(i_lib); found_libraries.push_back(file_info->GetCurrentUrl()->GetFile()); } } // Load each library COMETNamedLog("IAnalysisAssistant","Loading "<::const_iterator i_lib=found_libraries.begin(); i_lib!=found_libraries.end(); ++i_lib){ COMETNamedLog("IAnalysisAssistant"," Loading "<Data()); gSystem->Load(i_lib->Data()); } return true; }