]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/QA/tasks/macros/CreateAlienHandler.C
- added plugin function to overwrite the contents of the working and output directory...
[u/mrichter/AliRoot.git] / HLT / QA / tasks / macros / CreateAlienHandler.C
CommitLineData
5291a23b 1// $Id$
2/*
3 * Alien handler macro to run an HLT analysis task for comparing the offline
4 * with the HLT esd tree on the GRID.
5 *
6 * It is loaded in compare_HLT_offline_grid.C.
7 *
b71630ca 8 * @ingroup alihlt_qa
5291a23b 9 * @author Kalliopi.Kanaki@ift.uib.no
10 */
11
1647e83b 12AliAnalysisGrid* CreateAlienHandler(TString runNumber, TString dataDir, TString gridWorkingDir, TString gridOutputDir, const char* mode = "full", const char* detectorTask="global"){
5291a23b 13
14 // Check if user has a valid token, otherwise make one. This has limitations.
15 // One can always follow the standard procedure of calling alien-token-init then
16 // source /tmp/gclient_env_$UID in the current shell.
17
a4dae8cd 18 //if(!AliAnalysisGrid::CreateToken()) return NULL;
5291a23b 19 AliAnalysisAlien *plugin = new AliAnalysisAlien();
20
21 // Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
22 plugin->SetRunMode(mode);
23
24 // check the versions available on alien with the command 'packages'
25 plugin->SetAPIVersion("V1.1x");
dd8c50e9 26 plugin->SetROOTVersion("v5-27-05-build1");
27 plugin->SetAliROOTVersion("v4-20-09-AN-build1");
c32fb395 28
29 //Allow non-default outputs
30 plugin->SetDefaultOutputs(kFALSE);
5291a23b 31
32 // data alien directory
12cc7125 33 plugin->SetGridDataDir(dataDir.Data());
5291a23b 34
35 // Set data search pattern
1647e83b 36 plugin->SetDataPattern("*pass1/*ESDs.root");
cd785861 37 //plugin->SetDataPattern("*/*ESDs.root");
1647e83b 38
12cc7125 39 plugin->AddRunNumber(runNumber);
5291a23b 40 //plugin->SetRunRange(xxx,yyy);
41
42 // define working and output directories
12cc7125 43 plugin->SetGridWorkingDir(gridWorkingDir); // relative to $HOME
44 plugin->SetGridOutputDir(gridOutputDir); // relative to working dir
08465b1b 45 plugin->SetOverwriteMode(); // overwrites the contents of the working and output directory
5291a23b 46
cd785861 47 Bool_t bTPC=kFALSE, bPHOS=kFALSE, bEMCAL=kFALSE, bITS=kFALSE, bGLOBAL=kFALSE, bD0=kFALSE;
5291a23b 48
49 TString allArgs = detectorTask;
50 TString argument;
51
52 TObjArray *pTokens = allArgs.Tokenize(" ");
53 if(pTokens){
54 for(int i=0; i<pTokens->GetEntries(); i++){
55 argument=((TObjString*)pTokens->At(i))->GetString();
56 if(argument.IsNull()) continue;
57
58 if(argument.CompareTo("tpc", TString::kIgnoreCase)==0){
59 bTPC = kTRUE;
60 continue;
61 }
62 if(argument.CompareTo("phos", TString::kIgnoreCase)==0){
63 bPHOS = kTRUE;
64 continue;
65 }
6b17ceb5 66 if(argument.CompareTo("emcal", TString::kIgnoreCase)==0){
67 bEMCAL = kTRUE;
68 continue;
69 }
5291a23b 70 if(argument.CompareTo("its", TString::kIgnoreCase)==0){
71 bITS = kTRUE;
72 continue;
73 }
74 if(argument.CompareTo("global", TString::kIgnoreCase)==0){
75 bGLOBAL = kTRUE;
76 continue;
77 }
cd785861 78 if(argument.CompareTo("D0", TString::kIgnoreCase)==0){
79 bD0 = kTRUE;
80 continue;
81 }
5291a23b 82 if(argument.CompareTo("all",TString::kIgnoreCase)==0){
83 bTPC = kTRUE;
84 bPHOS = kTRUE;
6b17ceb5 85 bEMCAL = kTRUE;
5291a23b 86 bITS = kTRUE;
87 bGLOBAL = kTRUE;
88 continue;
89 }
90 else break;
91 }
92 }
93
94 // libs, seperate by blanks
95 if(bTPC){
96 plugin->SetAnalysisSource("AliAnalysisTaskHLTTPC.cxx");
97 plugin->SetAdditionalLibs("AliAnalysisTaskHLTTPC.h AliAnalysisTaskHLTTPC.cxx");
c32fb395 98 plugin->SetOutputFiles("HLT-OFFLINE-TPC-comparison.root");
5291a23b 99 }
100 if(bITS){
101 plugin->SetAnalysisSource("AliAnalysisTaskHLTITS.cxx");
102 plugin->SetAdditionalLibs("AliAnalysisTaskHLTITS.h AliAnalysisTaskHLTITS.cxx");
c32fb395 103 plugin->SetOutputFiles("HLT-OFFLINE-ITS-comparison.root");
5291a23b 104 }
2378381e 105 if(bPHOS && bEMCAL) {
106 plugin->AddIncludePath("-I$ROOTSYS -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT -I$ALICE_ROOT/RAW -I$ALICE_ROOT/STEER -I$ALICE_ROOT/PHOS -I$ALICE_ROOT/HLT/BASE -I$ALICE_ROOT/HLT/BASE/util -I$ALICE_ROOT/HLT/global/physics");
107 plugin->SetAnalysisSource("AliAnalysisTaskHLTCalo.cxx AliAnalysisTaskHLTPHOS.cxx AliAnalysisTaskHLTEMCAL.cxx");
108 plugin->SetAdditionalLibs("libRAWDatabase.so libProof.so libGui.so libCDB.so libSTEER.so libHLTbase.so libAliHLTUtil.so libAliHLTGlobal.so AliAnalysisTaskHLTCalo.cxx AliAnalysisTaskHLTCalo.h AliAnalysisTaskHLTPHOS.cxx AliAnalysisTaskHLTPHOS.h AliAnalysisTaskHLTEMCAL.cxx AliAnalysisTaskHLTEMCAL.h");
109 plugin->SetOutputFiles("HLT-OFFLINE-PHOS-comparison.root HLT-OFFLINE-EMCAL-comparison.root");
110
111 } else if(bPHOS){
c32fb395 112 plugin->AddIncludePath("-I$ROOTSYS -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT -I$ALICE_ROOT/RAW -I$ALICE_ROOT/STEER -I$ALICE_ROOT/PHOS -I$ALICE_ROOT/HLT/BASE -I$ALICE_ROOT/HLT/BASE/util -I$ALICE_ROOT/HLT/global/physics");
113 plugin->SetAnalysisSource("AliAnalysisTaskHLTCalo.cxx AliAnalysisTaskHLTPHOS.cxx");
114 plugin->SetAdditionalLibs("libRAWDatabase.so libProof.so libGui.so libCDB.so libSTEER.so libHLTbase.so libAliHLTUtil.so libAliHLTGlobal.so AliAnalysisTaskHLTCalo.cxx AliAnalysisTaskHLTCalo.h AliAnalysisTaskHLTPHOS.cxx AliAnalysisTaskHLTPHOS.h");
115 plugin->SetOutputFiles("HLT-OFFLINE-PHOS-comparison.root");
2378381e 116 } else if(bEMCAL){
6b17ceb5 117 plugin->AddIncludePath("-I$ROOTSYS -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT -I$ALICE_ROOT/RAW -I$ALICE_ROOT/STEER -I$ALICE_ROOT/EMCAL -I$ALICE_ROOT/HLT/BASE -I$ALICE_ROOT/HLT/BASE/util -I$ALICE_ROOT/HLT/global/physics");
118 plugin->SetAnalysisSource("AliAnalysisTaskHLTCalo.cxx AliAnalysisTaskHLTEMCAL.cxx");
119 plugin->SetAdditionalLibs("libRAWDatabase.so libProof.so libGui.so libCDB.so libSTEER.so libHLTbase.so libAliHLTUtil.so libAliHLTGlobal.so AliAnalysisTaskHLTCalo.cxx AliAnalysisTaskHLTCalo.h AliAnalysisTaskHLTEMCAL.cxx AliAnalysisTaskHLTEMCAL.h");
120 plugin->SetOutputFiles("HLT-OFFLINE-EMCAL-comparison.root");
121 }
5291a23b 122 if(bGLOBAL){
123 plugin->SetAnalysisSource("AliAnalysisTaskHLT.cxx");
124 plugin->SetAdditionalLibs("AliAnalysisTaskHLT.h AliAnalysisTaskHLT.cxx");
c32fb395 125 plugin->SetOutputFiles("HLT-OFFLINE-GLOBAL-comparison.root");
5291a23b 126 }
cd785861 127 if(bD0) {
128 //plugin->AddIncludePath("-I$ROOTSYS -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT -I$ALICE_ROOT/RAW -I$ALICE_ROOT/STEER -I$ALICE_ROOT/HLT/BASE -I$ALICE_ROOT/HLT/BASE/util -I$ALICE_ROOT/HLT/global/physics -I$ALICE_ROOT/HLT/trigger");
129 //plugin->SetAdditionalLibs("libRAWDatabase.so libProof.so libGui.so libCDB.so libSTEER.so libHLTbase.so libAliHLTUtil.so libAliHLTGlobal.so AliAnalysisTaskD0Trigger.cxx AliAnalysisTaskD0Trigger.h");
130 plugin->SetAnalysisSource("AliAnalysisTaskD0Trigger.cxx");
131 plugin->SetAdditionalLibs("AliAnalysisTaskD0Trigger.h AliAnalysisTaskD0Trigger.cxx");
132 plugin->SetOutputFiles("HLT-OFFLINE-D0-comparison.root");
133 }
134
5291a23b 135 // Optionally define the files to be archived.
136 plugin->SetOutputArchive("log_archive.zip:stdout,stderr");
137
138 // Optionally set a name for the generated analysis macro (default MyAnalysis.C)
139 plugin->SetAnalysisMacro("runComparison.C");
140 plugin->SetExecutable("comparison.sh");
141
142 plugin->SetSplitMaxInputFileNumber(100);
143
144 // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
145 plugin->SetMaxInitFailed(10);
146
147 // Optionally resubmit threshold.
148 plugin->SetMasterResubmitThreshold(90); // in %
149
150 plugin->SetTTL(30000);// in sec
151
152 // Optionally set input format (default xml-single)
153 plugin->SetInputFormat("xml-single");
154
155 // Optionally modify the name of the generated JDL (default analysis.jdl)
156 plugin->SetJDLName("analysis.jdl");
157
158 // Optionally modify job price (default 1)
159 plugin->SetPrice(1);
160
161 // Optionally modify split mode (default 'se')
162 plugin->SetSplitMode("se");
163
164 return plugin;
165}