1 /// **** to run the macro: ***********
2 // alien-token-init username
7 void runGridCascadePbPb( Bool_t useMC = kTRUE, // kTRUE if analysing a MC sample
8 Bool_t runperformancetask = kTRUE,
9 Float_t centrlowlim = 0.,
10 Float_t centruplim = 90.,
11 TString centrest = "V0M",
12 Bool_t kusecleaning = kTRUE,
14 Int_t minnTPCcls = 70,
15 Bool_t kextrasel = kFALSE,
16 Bool_t kacccut = kFALSE,
17 Bool_t krelaunchvertexers = kFALSE,
18 TString anatype = "AOD",//"ESD",
19 TString gridoutputdir = "LHC10h_AOD086",
20 //the following are used for the Cascade task only
21 TString datadir = "/alice/data/2010/LHC10h",///alice/data/2011/LHC11h_2",
22 TString datapattern = "ESDs/pass2/AOD086/*/AliAOD.root", // "ESDs/pass2/*/*ESDs.root" // for data
23 const char *plugin_mode ="full") {
25 // Load common libraries
26 gSystem->Load("libCore.so");
27 gSystem->Load("libTree.so");
28 gSystem->Load("libGeom.so");
29 gSystem->Load("libVMC.so");
30 gSystem->Load("libPhysics.so");
31 gSystem->Load("libMinuit.so");
32 gSystem->Load("libGui.so");
33 gSystem->Load("libXMLParser.so");
34 gSystem->Load("libSTEERBase.so");
35 gSystem->Load("libESD.so");
36 gSystem->Load("libCDB.so");
37 gSystem->Load("libAOD");
38 gSystem->Load("libANALYSIS");
39 gSystem->Load("libANALYSISalice");
40 gSystem->Load("libCORRFW");
41 gSystem->Load("libProof.so");
42 gSystem->Load("libRAWDatabase.so");
43 gSystem->Load("libSTEER.so");
45 //__________________________________________________________________________
46 // Use AliRoot includes to compile our task
47 gROOT->ProcessLine(".include $ALICE_ROOT/include");
49 //__________________________________________________________________________
50 // Create and configure the alien handler plugin
51 // gROOT->LoadMacro("CreateAlienHandler.C");
52 AliAnalysisGrid *alienHandler = CreateAlienHandler(plugin_mode, runperformancetask, useMC, anatype, gridoutputdir, datadir, datapattern);
53 if (!alienHandler) return;
55 //__________________________________________________________________________
56 // Create the analysis manager
57 AliAnalysisManager *mgr = new AliAnalysisManager("CascadePbPbanalysis");
59 //__________________________________________________________________________
60 // Connect plug-in to the analysis manager
61 mgr->SetGridHandler(alienHandler);
64 AliESDInputHandler* esdH = new AliESDInputHandler();
65 AliAODInputHandler* aodH = new AliAODInputHandler();
66 if (anatype=="ESD") mgr->SetInputEventHandler(esdH);
67 else mgr->SetInputEventHandler(aodH);
68 if (runperformancetask&&(anatype=="ESD")) {
69 AliMCEventHandler* mcHandler = new AliMCEventHandler();
70 mgr->SetMCtruthEventHandler(mcHandler);
73 //__________________________________________________________________________
78 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
79 AliPhysicsSelectionTask *physSel = AddTaskPhysicsSelection(useMC);
80 // Centrality selection
81 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
82 AliCentralitySelectionTask *taskCentr = AddTaskCentrality();
84 taskCentr->SetMCInput();
85 taskCentr->DontUseCleaning();
89 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
90 AliAnalysisTaskPIDResponse *pidTask = AddTaskPIDResponse(useMC);
92 if (runperformancetask) {
93 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckPerformanceCascadePbPb.cxx++g");
94 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/STRANGENESS/Cascades/macros/AddTaskCheckPerformanceCascadePbPb.C");
95 AliAnalysisTaskCheckPerformanceCascadePbPb *task = AddTaskCheckPerformanceCascadePbPb(minnTPCcls, centrlowlim, centruplim, centrest, kusecleaning, vtxlim,kextrasel ,kacccut ,krelaunchvertexers);
98 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckCascadePbPb.cxx++g");
99 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/STRANGENESS/Cascades/macros/AddTaskCheckCascadePbPb.C");
100 AliAnalysisTaskCheckCascadePbPb *task = AddTaskCheckCascadePbPb(minnTPCcls, centrlowlim, centruplim, centrest, kusecleaning, vtxlim, kextrasel ,krelaunchvertexers);
106 //Create containers for input/output
107 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
108 if (runperformancetask) AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist", TList::Class(), AliAnalysisManager::kOutputContainer, "CascadePerformance.root");
109 else AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist", TList::Class(), AliAnalysisManager::kOutputContainer, "Cascades.root");
110 //__________________________________________________________________________
111 // Connect input/output
112 mgr->ConnectInput(task, 0, cinput);
113 mgr->ConnectOutput(task, 1, coutput1);
115 //__________________________________________________________________________
116 // Disbale debug printouts
117 mgr->SetDebugLevel(3);
118 AliLog::SetGlobalLogLevel(AliLog::kFatal);
119 AliLog::SetGlobalDebugLevel(0);
121 //__________________________________________________________________________
122 if (!mgr->InitAnalysis()) return;
124 // Start analysis in grid.
125 mgr->StartAnalysis("grid");
128 //__________________________________________________________________________
130 AliAnalysisGrid* CreateAlienHandler(const char *plugin_mode, Bool_t runperformancetask, Bool_t useMC, TString anatype, TString gridoutputdir, TString datadir, TString datapattern) {
131 //__________________________________________________________________________
132 // Check if user has a valid token, otherwise make one. This has limitations.
133 // One can always follow the standard procedure of calling alien-token-init then
134 // source /tmp/gclient_env_$UID in the current shell.
135 AliAnalysisAlien *plugin= new AliAnalysisAlien();
137 //__________________________________________________________________________
138 // Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
139 plugin->SetRunMode(plugin_mode);
141 plugin->SetNtestFiles(1);
142 //__________________________________________________________________________
143 // Set versions of used packages
144 plugin->SetAPIVersion("V1.1x");
146 //__________________________________________________________________________
148 plugin->SetROOTVersion("v5-30-06-1");
149 plugin->SetAliROOTVersion("v5-03-03-AN");
151 //__________________________________________________________________________
152 // Declare input data to be processed.
153 // Method 1: Create automatically XML collections using alien 'find' command.
155 //plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis"); // Define production directory
156 //plugin->SetGridDataDir("/alice/sim/LHC11a10b_plus");
157 plugin->SetGridDataDir("/alice/sim/2011/LHC11f5");
158 // Set data search pattern
159 if (anatype == "ESD") plugin->SetDataPattern("*ESDs.root");
160 else plugin->SetDataPattern("AOD090/*AOD.root");
161 plugin->AddRunNumber(137124);
165 plugin->SetGridDataDir(datadir.Data()); // Define production directory LFN
166 plugin->SetDataPattern(datapattern.Data()); // Set data search pattern
167 plugin->SetRunPrefix("000");
168 //plugin->SetRunRange(80000,80000); // ...then add run numbers to be considered
169 plugin->AddRunNumber(138534);
172 // Method 2: Use your input collection
173 //plugin->AddDataFile("/alice/cern.ch/user/m/mnicassi/139105.xml");
174 //__________________________________________________________________________
175 // Define alien work directory where all files will be copied. Relative to alien $HOME.
176 plugin->SetGridWorkingDir(gridoutputdir.Data());
177 plugin->SetGridOutputDir("output");
179 //__________________________________________________________________________
180 if (runperformancetask) plugin->SetAnalysisSource("AliAnalysisTaskCheckPerformanceCascadePbPb.cxx");
181 else plugin->SetAnalysisSource("AliAnalysisTaskCheckCascadePbPb.cxx");
183 //__________________________________________________________________________
184 //Enable same others packages
185 //plugin->EnablePackage("PWG3dielectron.par");
187 //__________________________________________________________________________
188 // Optionally set a name for the generated analysis macro (default MyAnalysis.C)
189 plugin->SetAnalysisMacro("testmacro.C");
190 //Add all extra files (task.cxx/.h)
191 if (runperformancetask) {
192 plugin->SetAdditionalLibs("AliAnalysisTaskCheckPerformanceCascadePbPb.h AliAnalysisTaskCheckPerformanceCascadePbPb.cxx");
193 // Optionally modify the executable name (default analysis.sh)
194 plugin->SetExecutable("CascadePerformancePbPb.sh");
196 plugin->SetAdditionalLibs("AliAnalysisTaskCheckCascadePbPb.h AliAnalysisTaskCheckCascadePbPb.cxx ");
197 // Optionally modify the executable name (default analysis.sh)
198 plugin->SetExecutable("CascadePbPb.sh");
202 //__________________________________________________________________________
203 // Declare the output file names separated by blancs.
204 // (can be like: file.root or file.root@ALICE::Niham::File)
205 //plugin->SetDefaultOutputs(kFALSE);
206 //if (runperformancetask) plugin->SetOutputFiles("CascadePerformance.root");
207 //else plugin->SetOutputFiles("Cascades.root");
209 // Optionally define the files to be archived.
210 //plugin->SetOutputArchive("root_archive.zip:*.root log_archive.zip:stdout,stderr");
212 //__________________________________________________________________________
213 // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)
214 plugin->SetSplitMaxInputFileNumber(100);
215 // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
216 plugin->SetMasterResubmitThreshold(90);
217 // Optionally set time to live (default 30000 sec)
218 plugin->SetTTL(30000);
219 // Optionally set input format (default xml-single)
220 plugin->SetInputFormat("xml-single");
221 // Optionally modify the name of the generated JDL (default analysis.jdl)
222 if (runperformancetask) plugin->SetJDLName("TaskCheckPerformanceCascadePbPb.jdl");
223 else plugin->SetJDLName("TaskCheckCascadePbPb.jdl");
225 // Optionally modify job price (default 1)
229 // comment out the next line when using the "terminate" option, unless
230 // you want separate merged files for each run
231 /* plugin->SetMergeViaJDL(kTRUE); // run first in full mode, then in terminate
232 plugin->SetOneStageMerging(kFALSE);
233 plugin->SetMaxMergeFiles(50);
234 plugin->SetMaxMergeStages(2);// to define the number of stages
236 // Optionally set number of runs per master
237 // plugin->SetNrunsPerMaster(1);
239 plugin->SetOutputToRunNo();
240 // Optionally modify split mode (default 'se')
241 plugin->SetSplitMode("se");
242 plugin->SetUser("mnicassi");