]>
Commit | Line | Data |
---|---|---|
8b7362ee | 1 | |
2 | AliAnalysisGrid* CreateAlienHandler(TString dataset, TList * listToLoad, const char * mode = "full", Bool_t isMC = 0) | |
3 | { | |
4 | ||
5 | ||
6 | // Check if user has a valid token, otherwise make one. This has limitations. | |
7 | // One can always follow the standard procedure of calling alien-token-init then | |
8 | // source /tmp/gclient_env_$UID in the current shell. | |
9 | // if (!AliAnalysisGrid::CreateToken()) return NULL; | |
10 | TGrid::Connect("alien:"); | |
11 | ||
12 | AliAnalysisAlien *plugin = new AliAnalysisAlien(); | |
13 | // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") | |
14 | plugin->SetRunMode(mode); | |
15 | //plugin->SetRunMode("test"); | |
16 | // Set versions of used packages | |
17 | plugin->SetAPIVersion("V1.1x"); | |
18 | plugin->SetROOTVersion("v5-27-06-2"); | |
19 | plugin->SetAliROOTVersion("v4-21-03-AN"); | |
20 | // Declare input data to be processed. | |
21 | // Method 1: Create automatically XML collections using alien 'find' command. | |
22 | // Define production directory LFN | |
23 | // LHC09d | |
24 | // /alice/data/2009/LHC09d/000104892/ESDs/pass6/ | |
25 | plugin->SetGridDataDir(dataset); | |
26 | // Set data search pattern | |
27 | plugin->SetDataPattern("AliESDs.root"); | |
28 | // ...then add run numbers to be considered | |
29 | // plugin->AddRunNumber(104892); | |
30 | // plugin->AddRunNumber(300001); | |
31 | // Method 2: Declare existing data files (raw collections, xml collections, root file) | |
32 | // If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir()) | |
33 | // XML collections added via this method can be combined with the first method if | |
34 | // the content is compatible (using or not tags) | |
35 | // plugin->AddDataFile("tag.xml"); | |
36 | // plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root"); | |
37 | // Define alien work directory where all files will be copied. Relative to alien $HOME. | |
38 | TString output = "MultPb/Output_"; | |
39 | dataset.ReplaceAll("/","_"); | |
40 | output += dataset; | |
41 | plugin->SetGridWorkingDir(output.Data()); | |
42 | // Declare alien output directory. Relative to working directory. | |
43 | plugin->SetGridOutputDir("out"); | |
44 | // Declare the analysis source files names separated by blancs. To be compiled runtime | |
45 | // using ACLiC on the worker nodes. | |
46 | TIterator * iter = listToLoad->MakeIterator(); | |
47 | TObjString * name = 0; | |
48 | TString sources = ""; | |
8b628a20 | 49 | // while (name = (TObjString *)iter->Next()) { |
50 | // gSystem->ExpandPathName(name->String()); | |
4d0aa70f | 51 | // name->String().ReplaceAll("+",""); |
52 | // sources = sources + name->String() + " "; | |
8b628a20 | 53 | // } |
4d0aa70f | 54 | while (name = (TObjString *)iter->Next()) { |
55 | gSystem->ExpandPathName(name->String()); | |
56 | name->String().ReplaceAll("+",""); | |
57 | sources = sources + gSystem->BaseName(name->String().Data()) + " "; | |
58 | } | |
8b7362ee | 59 | plugin->SetAnalysisSource(sources.Data()); |
60 | // Declare all libraries (other than the default ones for the framework. These will be | |
61 | // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here. | |
62 | // plugin->SetAdditionalLibs("AliCollisionsNormalization.cxx AliCollisionNormalizationTask.cxx AliPhysicsSelection.cxx AliCollisionsNormalization.h AliCollisionNormalizationTask.h AliPhysicsSelection.h"); | |
4d0aa70f | 63 | // iter = listToLoad->MakeIterator(); |
64 | // name = 0; | |
65 | // sources = ""; | |
eef42d18 | 66 | // while (name = (TObjString *)iter->Next()) { |
67 | // gSystem->ExpandPathName(name->String()); | |
68 | // name->String().ReplaceAll("+",""); | |
69 | // sources = sources + gSystem->BaseName(name->String().Data()) + " "; | |
70 | // } | |
4d0aa70f | 71 | // while (name = (TObjString *)iter->Next()) { |
72 | // gSystem->ExpandPathName(name->String()); | |
73 | // name->String().ReplaceAll("+",""); | |
74 | // sources = sources + name->String() + " "; | |
75 | // } | |
eef42d18 | 76 | plugin->SetAdditionalLibs(sources.Data()); |
8b7362ee | 77 | // I'm using a modified ANALYSISalice package, so I need to load par files for everything |
78 | // plugin->EnablePackage("STEERBase"); | |
79 | // plugin->EnablePackage("ESD"); | |
80 | // plugin->EnablePackage("AOD"); | |
81 | // plugin->EnablePackage("CORRFW"); | |
82 | // plugin->EnablePackage("ANALYSIS"); | |
83 | // plugin->EnablePackage("ANALYSISalice"); | |
84 | ||
85 | // Declare the output file names separated by blancs. | |
86 | // (can be like: file.root or file.root@ALICE::Niham::File) | |
8b628a20 | 87 | // plugin->SetDefaultOutputs(kFALSE); |
8b7362ee | 88 | // plugin->SetOutputFiles(Form("EventStat_temp.root %s",outfilename)); |
8b628a20 | 89 | // plugin->SetOutputFiles("EventStat_temp.root multPbPbtracks.root"); |
8b7362ee | 90 | // Optionally define the files to be archived. |
91 | // plugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:*.root@ALICE::NIHAM::File"); | |
8b628a20 | 92 | // plugin->SetOutputArchive("log_archive.zip:stdout,stderr"); |
8b7362ee | 93 | // Optionally set a name for the generated analysis macro (default MyAnalysis.C) |
94 | plugin->SetAnalysisMacro("AnalysisMultPb.C"); | |
95 | // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore) | |
96 | plugin->SetSplitMaxInputFileNumber(100); | |
97 | // Optionally set number of failed jobs that will trigger killing waiting sub-jobs. | |
98 | plugin->SetMaxInitFailed(5); | |
99 | // Optionally resubmit threshold. | |
100 | plugin->SetMasterResubmitThreshold(90); | |
101 | // Optionally set time to live (default 30000 sec) | |
102 | plugin->SetTTL(30000); | |
103 | // Optionally set input format (default xml-single) | |
104 | plugin->SetInputFormat("xml-single"); | |
105 | // Optionally modify the name of the generated JDL (default analysis.jdl) | |
106 | plugin->SetJDLName("TaskMultPb.jdl"); | |
107 | // Optionally modify job price (default 1) | |
108 | plugin->SetPrice(1); | |
109 | // Optionally modify split mode (default 'se') | |
110 | plugin->SetSplitMode("se"); | |
111 | return plugin; | |
112 | } |