3 * Alien handler macro to run an HLT analysis task for comparing the offline
4 * with the HLT esd tree on the GRID.
6 * It is loaded in compare_HLT_offline_grid.C.
9 * @author Kalliopi.Kanaki@ift.uib.no
12 AliAnalysisGrid *CreateAlienHandler(const char* mode = "full", const char* detectorTask="global"){
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.
18 if(!AliAnalysisGrid::CreateToken()) return NULL;
19 AliAnalysisAlien *plugin = new AliAnalysisAlien();
21 // Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
22 plugin->SetRunMode(mode);
24 // check the versions available on alien with the command 'packages'
25 plugin->SetAPIVersion("V1.1x");
26 plugin->SetROOTVersion("v5-26-00b");
27 plugin->SetAliROOTVersion("v4-19-10-AN");
29 // data alien directory
30 plugin->SetGridDataDir("/alice/data/2010/LHC10b/");
32 // Set data search pattern
33 plugin->SetDataPattern("*ESD.tag.root");
35 plugin->AddRunNumber("000116112");
36 //plugin->SetRunRange(xxx,yyy);
38 // define working and output directories
39 plugin->SetGridWorkingDir("ESDcomparison"); // relative to $HOME
40 plugin->SetGridOutputDir("output"); // relative to working dir
43 Bool_t bTPC=kFALSE, bPHOS=kFALSE, bITS=kFALSE, bGLOBAL=kFALSE;
45 TString allArgs = detectorTask;
48 TObjArray *pTokens = allArgs.Tokenize(" ");
50 for(int i=0; i<pTokens->GetEntries(); i++){
51 argument=((TObjString*)pTokens->At(i))->GetString();
52 if(argument.IsNull()) continue;
54 if(argument.CompareTo("tpc", TString::kIgnoreCase)==0){
58 if(argument.CompareTo("phos", TString::kIgnoreCase)==0){
62 if(argument.CompareTo("its", TString::kIgnoreCase)==0){
66 if(argument.CompareTo("global", TString::kIgnoreCase)==0){
70 if(argument.CompareTo("all",TString::kIgnoreCase)==0){
81 // libs, seperate by blanks
83 plugin->SetAnalysisSource("AliAnalysisTaskHLTTPC.cxx");
84 plugin->SetAdditionalLibs("AliAnalysisTaskHLTTPC.h AliAnalysisTaskHLTTPC.cxx");
85 plugin->SetOutputFiles("HLT-OFFLINE-TPC-comparison.root");
88 plugin->SetAnalysisSource("AliAnalysisTaskHLTITS.cxx");
89 plugin->SetAdditionalLibs("AliAnalysisTaskHLTITS.h AliAnalysisTaskHLTITS.cxx");
90 plugin->SetOutputFiles("HLT-OFFLINE-ITS-comparison.root");
93 plugin->SetAnalysisSource("AliAnalysisTaskHLTPHOS.cxx");
94 plugin->SetOutputFiles("HLT-OFFLINE-GLOBAL-comparison.root");
95 plugin->SetOutputFiles("HLT-OFFLINE-PHOS-comparison.root");
98 plugin->SetAnalysisSource("AliAnalysisTaskHLT.cxx");
99 plugin->SetAdditionalLibs("AliAnalysisTaskHLT.h AliAnalysisTaskHLT.cxx");
100 plugin->SetOutputFiles("HLT-OFFLINE-GLOBAL-comparison.root");
103 // Optionally define the files to be archived.
104 plugin->SetOutputArchive("log_archive.zip:stdout,stderr");
106 // Optionally set a name for the generated analysis macro (default MyAnalysis.C)
107 plugin->SetAnalysisMacro("runComparison.C");
108 plugin->SetExecutable("comparison.sh");
110 plugin->SetSplitMaxInputFileNumber(100);
112 // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
113 plugin->SetMaxInitFailed(10);
115 // Optionally resubmit threshold.
116 plugin->SetMasterResubmitThreshold(90); // in %
118 plugin->SetTTL(30000);// in sec
120 // Optionally set input format (default xml-single)
121 plugin->SetInputFormat("xml-single");
123 // Optionally modify the name of the generated JDL (default analysis.jdl)
124 plugin->SetJDLName("analysis.jdl");
126 // Optionally modify job price (default 1)
129 // Optionally modify split mode (default 'se')
130 plugin->SetSplitMode("se");