From f965131e59ea61bb68d06427f2734e94e93c4e7d Mon Sep 17 00:00:00 2001 From: agheata Date: Thu, 2 Apr 2009 09:53:45 +0000 Subject: [PATCH] Added AliAnalysisAlien::AddIncludePath() to be able to add include paths for runtime compilation --- ANALYSIS/AliAnalysisAlien.cxx | 16 +++++++++++++++- ANALYSIS/AliAnalysisAlien.h | 2 ++ ANALYSIS/AliAnalysisGrid.h | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ANALYSIS/AliAnalysisAlien.cxx b/ANALYSIS/AliAnalysisAlien.cxx index 30800697e10..dc58960cffc 100644 --- a/ANALYSIS/AliAnalysisAlien.cxx +++ b/ANALYSIS/AliAnalysisAlien.cxx @@ -69,6 +69,7 @@ AliAnalysisAlien::AliAnalysisAlien() fDatasetName(), fJDLName(), fMergeExcludes(), + fIncludePath(), fCloseSE(), fInputFiles(0), fPackages(0) @@ -108,6 +109,7 @@ AliAnalysisAlien::AliAnalysisAlien(const char *name) fDatasetName(), fJDLName(), fMergeExcludes(), + fIncludePath(), fCloseSE(), fInputFiles(0), fPackages(0) @@ -147,6 +149,7 @@ AliAnalysisAlien::AliAnalysisAlien(const AliAnalysisAlien& other) fDatasetName(other.fDatasetName), fJDLName(other.fJDLName), fMergeExcludes(other.fMergeExcludes), + fIncludePath(other.fIncludePath), fCloseSE(other.fCloseSE), fInputFiles(0), fPackages(0) @@ -212,6 +215,7 @@ AliAnalysisAlien &AliAnalysisAlien::operator=(const AliAnalysisAlien& other) fDatasetName = other.fDatasetName; fJDLName = other.fJDLName; fMergeExcludes = other.fMergeExcludes; + fIncludePath = other.fIncludePath; fCloseSE = other.fCloseSE; if (other.fInputFiles) { fInputFiles = new TObjArray(); @@ -231,6 +235,15 @@ AliAnalysisAlien &AliAnalysisAlien::operator=(const AliAnalysisAlien& other) return *this; } +//______________________________________________________________________________ +void AliAnalysisAlien::AddIncludePath(const char *path) +{ +// Add include path in the remote analysis macro. + TString p(path); + if (p.Contains("-I")) fIncludePath += Form("%s ", path); + else fIncludePath += Form("-I%s ", path); +} + //______________________________________________________________________________ void AliAnalysisAlien::AddRunNumber(Int_t run) { @@ -1098,7 +1111,8 @@ void AliAnalysisAlien::WriteAnalysisMacro() out << " gSystem->Load(\"libANALYSIS\");" << endl; out << " gSystem->Load(\"libANALYSISalice\");" << endl << endl; out << "// include path (remove if using par files)" << endl; - out << " gROOT->ProcessLine(\".include $ALICE_ROOT/include\");" << endl << endl; + out << " gROOT->ProcessLine(\".include $ALICE_ROOT/include\");" << endl; + if (fIncludePath.Length()) out << " gSystem->AddIncludePath(\"" << fIncludePath.Data() << "\");" << endl << endl; } else { out << "// Compile all par packages" << endl; TIter next(fPackages); diff --git a/ANALYSIS/AliAnalysisAlien.h b/ANALYSIS/AliAnalysisAlien.h index d2da9a59c5d..950f601df23 100644 --- a/ANALYSIS/AliAnalysisAlien.h +++ b/ANALYSIS/AliAnalysisAlien.h @@ -30,6 +30,7 @@ public: AliAnalysisAlien(const AliAnalysisAlien& other); AliAnalysisAlien& operator=(const AliAnalysisAlien& other); // Setters + virtual void AddIncludePath(const char *path); virtual void AddRunNumber(Int_t run); virtual void AddDataFile(const char *lfn); virtual void SetExecutable(const char *name="analysis.sh") {fExecutable = name;} @@ -111,6 +112,7 @@ private: TString fDatasetName; // Dataset xml file to be created TString fJDLName; // JDL file to be generated TString fMergeExcludes; // List of output files excluded from merging + TString fIncludePath; // Include path TString fCloseSE; // Preffered storage element. Taken from alien_CLOSE_SE environment. TObjArray *fInputFiles; // List of input files to be processed by the job TObjArray *fPackages; // List of packages to be used diff --git a/ANALYSIS/AliAnalysisGrid.h b/ANALYSIS/AliAnalysisGrid.h index 5463a7e1c76..e35774adfa7 100644 --- a/ANALYSIS/AliAnalysisGrid.h +++ b/ANALYSIS/AliAnalysisGrid.h @@ -40,6 +40,7 @@ enum EPluginRunMode { // Getters virtual EPluginRunMode GetRunMode() const; // Setters + virtual void AddIncludePath(const char *path) = 0; virtual void AddRunNumber(Int_t run) = 0; virtual void AddDataFile(const char *lfn) = 0; virtual void SetExecutable(const char *name="analysis.sh") = 0; -- 2.43.0