1 class AliAnalysisManager;
2 class AliAnalysisAlien;
4 void runGrid(TString mode="test",Int_t mc=0,Int_t sub=1,Int_t hi=1,TString fname="AODAnalysis_28May2012/AOD086-090Filter10")
6 AliLog::SetGlobalDebugLevel(100);
7 // Load common libraries
8 gEnv->SetValue("XSec.GSI.DelegProxy", "2");
10 gSystem->Load("libTree.so");
11 gSystem->Load("libGeom.so");
12 gSystem->Load("libVMC.so");
13 gSystem->Load("libPhysics.so");
14 gSystem->Load("libSTEERBase.so");
15 gSystem->Load("libESD.so");
16 gSystem->Load("libAOD.so");
17 gSystem->Load("libANALYSIS.so");
18 gSystem->Load("libOADB.so");
19 gSystem->Load("libANALYSISalice.so");
20 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
22 // gROOT->LoadMacro("AliSpectraAODTrackCuts.cxx+g");
23 // gROOT->LoadMacro("AliSpectraAODEventCuts.cxx+g");
24 // gROOT->LoadMacro("AliSpectraAODHistoManager.cxx+g");
25 // gROOT->LoadMacro("AliSpectraAODPID.cxx+g");
26 // gROOT->LoadMacro("AliAnalysisTaskSpectraAOD.cxx+g");
27 // Use AliRoot includes to compile our task
28 // Create and configure the alien handler plugin
30 AliAnalysisGrid *alienHandler = CreateAlienHandler(mode,mc,sub,fname);
31 if (!alienHandler) return;
32 // Create the analysis manager
33 AliAnalysisManager *mgr = new AliAnalysisManager("testAnalysis");
34 // Connect plug-in to the analysis manager
35 mgr->SetGridHandler(alienHandler);
36 AliAODInputHandler* aodH = new AliAODInputHandler();
37 mgr->SetInputEventHandler(aodH);
40 gROOT->ProcessLine(".L $ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
41 AliPhysicsSelectionTask * physicsSelectionTask = AddTaskPhysicsSelection(mc,kTRUE,0);
42 if(!physicsSelectionTask ) { Printf("no physSelTask"); return; }
45 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
47 AliAnalysisTask * taskPID = AddTaskPIDResponse(mc);
48 mgr->AddTask(taskPID);
50 //setting the analysis
52 //Double_t CentCut[2]={0,100};
53 Double_t CentCut[2]={0,5};
54 Double_t qVecCut[2]={0,100};
57 using namespace AliSpectraNameSpace;
58 AliSpectraAODPID *pid = new AliSpectraAODPID(kNSigmaTPCTOF);
59 pid->SetNSigmaCut(3.);
61 AliAnalysisTaskSpectraAOD *task = new AliAnalysisTaskSpectraAOD("TaskAODExercise");
64 task->SelectCollisionCandidates();
67 AliSpectraAODEventCuts * vcuts = new AliSpectraAODEventCuts("Event Cuts");
68 AliSpectraAODTrackCuts * tcuts = new AliSpectraAODTrackCuts("Track Cuts");
70 //tcuts->SetTrackType(5); //AOD 046 & 047. Standard Cuts with loose DCA
71 tcuts->SetTrackType(6); //AOD 046 & 047. Standard Cuts with tight DCA
73 if(sub==1)tcuts->SetTrackType(10); //AOD 086 & 090. Standard Raa cuts
80 tcuts->SetPtTOFMatching(0.6);
81 tcuts->SetQvecMin(qVecCut[0]);
82 tcuts->SetQvecMax(qVecCut[1]);
83 vcuts->SetCentralityCutMin(CentCut[0]);
84 vcuts->SetCentralityCutMax(CentCut[1]);
85 task->SetEventCuts(vcuts);
86 task->SetTrackCuts(tcuts);
93 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
94 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::Class(), AliAnalysisManager::kOutputContainer,
95 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
96 AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::Class(), AliAnalysisManager::kOutputContainer,
97 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
98 AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::Class(), AliAnalysisManager::kOutputContainer,
99 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
100 AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer(Form("cpidpt%d",iCut), AliSpectraAODPID::Class(), AliAnalysisManager::kOutputContainer,
101 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
103 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
104 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::Class(), AliAnalysisManager::kOutputContainer,
105 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
106 AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::Class(), AliAnalysisManager::kOutputContainer,
107 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
108 AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::Class(), AliAnalysisManager::kOutputContainer,
109 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
110 AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer(Form("cpidpt%d",iCut), AliSpectraAODTrackCuts::Class(), AliAnalysisManager::kOutputContainer,
111 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
113 mgr->ConnectInput(task, 0, cinput);
114 mgr->ConnectOutput(task, 1, coutputpt1);
115 mgr->ConnectOutput(task, 2, coutputpt2);
116 mgr->ConnectOutput(task, 3, coutputpt3);
117 mgr->ConnectOutput(task, 4, coutputpt4);
119 mgr->SetDebugLevel(2);
122 if (!mgr->InitAnalysis())return;
124 // Start analysis in grid.
125 mgr->StartAnalysis("grid");
129 AliAnalysisGrid* CreateAlienHandler(TString mode="test",Int_t mc=0,Int_t sub=0,TString fname){
133 AliAnalysisAlien *plugin = new AliAnalysisAlien();
137 plugin->SetOverwriteMode();
138 plugin->SetExecutableCommand("aliroot -q -b");
139 plugin->SetRunMode(mode.Data());
140 plugin->SetNtestFiles(1);
141 //Set versions of used packages
142 plugin->SetAPIVersion("V1.1x");
143 plugin->SetROOTVersion("v5-33-02b");
144 plugin->SetAliROOTVersion("v5-04-25-AN");
145 // Declare input data to be processed.
149 plugin->SetGridDataDir("/alice/sim/LHC11a10a");
150 plugin->SetDataPattern("AOD048/*AliAOD.root");
151 plugin->SetRunPrefix("");
152 plugin->SetAnalysisMacro(Form("TaskAOD046PbPbMC%d.C",sub));
153 plugin->SetExecutable(Form("TaskAOD046PbPbMC%d.sh",sub));
154 plugin->SetJDLName(Form("TaskAOD046PbPbMC%d.jdl",sub));
155 //plugin->SetSplitMaxInputFileNumber(500);
156 plugin->SetGridWorkingDir(Form("%s/mc%d/",fname.Data(),sub));
160 plugin->SetGridDataDir("/alice/data/2010/LHC10h");
161 plugin->SetDataPattern("ESDs/pass2/AOD049/*AliAOD.root");
162 plugin->SetRunPrefix("000");
163 plugin->SetAnalysisMacro(Form("TaskAOD046PbPbdata%d.C",sub));
164 plugin->SetExecutable(Form("TaskAOD046PbPbdata%d.sh",sub));
165 plugin->SetJDLName(Form("TaskAOD046PbPbdata%d.jdl",sub));
166 //plugin->SetSplitMaxInputFileNumber(500);
167 plugin->SetGridWorkingDir(Form("%s/data%d/",fname.Data(),sub));
169 FILE* listruns=fopen("RunListGrid-AOD046.txt","r");
174 plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis");
175 plugin->SetDataPattern("AOD090/*AliAOD.root");
176 plugin->SetRunPrefix("");
177 plugin->SetAnalysisMacro(Form("TaskAOD086PbPbMC%d.C",sub));
178 plugin->SetExecutable(Form("TaskAOD086PbPbMC%d.sh",sub));
179 plugin->SetJDLName(Form("TaskAOD086PbPbMC%d.jdl",sub));
180 //plugin->SetSplitMaxInputFileNumber(500);
181 plugin->SetGridWorkingDir(Form("%s/mc%d/",fname.Data(),sub));
185 plugin->SetGridDataDir("/alice/data/2010/LHC10h");
186 plugin->SetDataPattern("ESDs/pass2/AOD086/*AliAOD.root");
187 plugin->SetRunPrefix("000");
188 plugin->SetAnalysisMacro(Form("TaskAOD086PbPbdata%d.C",sub));
189 plugin->SetExecutable(Form("TaskAOD086PbPbdata%d.sh",sub));
190 plugin->SetJDLName(Form("TaskAOD086PbPbdata%d.jdl",sub));
191 //plugin->SetSplitMaxInputFileNumber(500);
192 plugin->SetGridWorkingDir(Form("%s/data%d/",fname.Data(),sub));
194 FILE* listruns=fopen("RunListGrid-AOD086.txt","r");
197 while(!feof(listruns)){
198 fscanf(listruns,"%d\n",&irun);
199 plugin->AddRunNumber(irun);
201 // Declare alien output directory. Relative to working directory.
202 //plugin->SetGridOutputDir("/alice/cern.ch/user/l/lmilano/AODAnalysis/AOD086TrackBit10/mc1/output/000/Stage_1"); // In this case will be $HOME/work/output
203 plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
204 plugin->SetNrunsPerMaster(60); //
205 plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/TOF");
206 plugin->SetAdditionalLibs("Histograms.h HistogramNames.h AliSpectraAODHistoManager.cxx AliSpectraAODHistoManager.h AliSpectraAODTrackCuts.cxx AliSpectraAODTrackCuts.h AliSpectraAODEventCuts.cxx AliSpectraAODEventCuts.h AliSpectraAODPID.cxx AliSpectraAODPID.h AliAnalysisTaskSpectraAOD.cxx AliAnalysisTaskSpectraAOD.h");
207 plugin->SetAnalysisSource("Histograms.h+ HistogramNames.h+ AliSpectraAODHistoManager.cxx+ AliSpectraAODTrackCuts.cxx+ AliSpectraAODEventCuts.cxx+ AliSpectraAODPID.cxx+ AliAnalysisTaskSpectraAOD.cxx+");
210 // Declare the output file names separated by blancs.
211 // (can be like: file.root or file.root@ALICE::Niham::File)
212 //plugin->SetDefaultOutputs(0);
213 //plugin->SetOutputFiles("AnalysisResults.root.root");
214 plugin->SetMergeViaJDL(kTRUE);
215 plugin->SetOneStageMerging(kFALSE);
216 plugin->SetMaxMergeStages(2);
218 plugin->SetTTL(100000);
219 // Optionally set input format (default xml-single)
220 plugin->SetInputFormat("xml-single");
221 // Optionally modify job price (default 1)
223 // Optionally modify split mode (default 'se')
224 //plugin->SetSplitMaxInputFileNumber();
225 plugin->SetSplitMode("se");