Moving PbPb multiplicity in the new directory structure
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / multPbPb / CreateAlienHandler.C
CommitLineData
8b7362ee 1
2AliAnalysisGrid* 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}