]>
Commit | Line | Data |
---|---|---|
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 | 12 | AliAnalysisGrid* 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 | } |