1 class AliAnalysisManager;
2 class AliAnalysisAlien;
4 void runGrid(TString mode="test",Int_t mc=1,Int_t sub=0,Int_t hi=1,TString fname="AODAnalysis_newTask/AOD048Filter6")
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,100};
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]));
101 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
102 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::Class(), AliAnalysisManager::kOutputContainer,
103 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
104 AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::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 *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::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]));
109 mgr->ConnectInput(task, 0, cinput);
110 mgr->ConnectOutput(task, 1, coutputpt1);
111 mgr->ConnectOutput(task, 2, coutputpt2);
112 mgr->ConnectOutput(task, 3, coutputpt3);
114 mgr->SetDebugLevel(2);
117 if (!mgr->InitAnalysis())return;
119 // Start analysis in grid.
120 mgr->StartAnalysis("grid");
124 AliAnalysisGrid* CreateAlienHandler(TString mode="test",Int_t mc=0,Int_t sub=0,TString fname){
125 AliAnalysisAlien *plugin = new AliAnalysisAlien();
126 plugin->SetOverwriteMode();
127 plugin->SetExecutableCommand("aliroot -q -b");
128 plugin->SetRunMode(mode.Data());
129 plugin->SetNtestFiles(1);
130 //Set versions of used packages
131 plugin->SetAPIVersion("V1.1x");
132 plugin->SetROOTVersion("v5-33-02b");
133 plugin->SetAliROOTVersion("v5-03-18-AN");
134 // Declare input data to be processed.
138 plugin->SetGridDataDir("/alice/sim/LHC11a10a");
139 plugin->SetDataPattern("AOD048/*AliAOD.root");
140 plugin->SetRunPrefix("");
141 plugin->SetAnalysisMacro(Form("TaskAOD046PbPbMC%d.C",sub));
142 plugin->SetExecutable(Form("TaskAOD046PbPbMC%d.sh",sub));
143 plugin->SetJDLName(Form("TaskAOD046PbPbMC%d.jdl",sub));
144 //plugin->SetSplitMaxInputFileNumber(500);
145 plugin->SetGridWorkingDir(Form("%s/mc%d/",fname.Data(),sub));
149 plugin->SetGridDataDir("/alice/data/2010/LHC10h");
150 plugin->SetDataPattern("ESDs/pass2/AOD049/*AliAOD.root");
151 plugin->SetRunPrefix("000");
152 plugin->SetAnalysisMacro(Form("TaskAOD046PbPbdata%d.C",sub));
153 plugin->SetExecutable(Form("TaskAOD046PbPbdata%d.sh",sub));
154 plugin->SetJDLName(Form("TaskAOD046PbPbdata%d.jdl",sub));
155 //plugin->SetSplitMaxInputFileNumber(500);
156 plugin->SetGridWorkingDir(Form("%s/data%d/",fname.Data(),sub));
158 FILE* listruns=fopen("RunListGrid-AOD046.txt","r");
163 plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis");
164 plugin->SetDataPattern("AOD090/*AliAOD.root");
165 plugin->SetRunPrefix("");
166 plugin->SetAnalysisMacro(Form("TaskAOD086PbPbMC%d.C",sub));
167 plugin->SetExecutable(Form("TaskAOD086PbPbMC%d.sh",sub));
168 plugin->SetJDLName(Form("TaskAOD086PbPbMC%d.jdl",sub));
169 //plugin->SetSplitMaxInputFileNumber(500);
170 plugin->SetGridWorkingDir(Form("%s/mc%d/",fname.Data(),sub));
174 plugin->SetGridDataDir("/alice/data/2010/LHC10h");
175 plugin->SetDataPattern("ESDs/pass2/AOD086/*AliAOD.root");
176 plugin->SetRunPrefix("000");
177 plugin->SetAnalysisMacro(Form("TaskAOD086PbPbdata%d.C",sub));
178 plugin->SetExecutable(Form("TaskAOD086PbPbdata%d.sh",sub));
179 plugin->SetJDLName(Form("TaskAOD086PbPbdata%d.jdl",sub));
180 //plugin->SetSplitMaxInputFileNumber(500);
181 plugin->SetGridWorkingDir(Form("%s/data%d/",fname.Data(),sub));
183 FILE* listruns=fopen("RunListGrid-AOD086.txt","r");
186 while(!feof(listruns)){
187 fscanf(listruns,"%d\n",&irun);
188 plugin->AddRunNumber(irun);
190 // Declare alien output directory. Relative to working directory.
191 plugin->SetGridOutputDir("/alice/cern.ch/user/l/lmilano/AODAnalysis/AOD086TrackBit10/mc1/output/000/Stage_1"); // In this case will be $HOME/work/output
192 plugin->SetNrunsPerMaster(60); //
193 plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/TOF");
194 plugin->SetAnalysisSource("Histograms.h HistogramNames.h AliSpectraAODHistoManager.cxx+ AliSpectraAODTrackCuts.cxx+ AliSpectraAODEventCuts.cxx+ AliSpectraAODPID.cxx+ AliAnalysisTaskSpectraAOD.cxx+");
195 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");
196 // Declare the output file names separated by blancs.
197 // (can be like: file.root or file.root@ALICE::Niham::File)
198 //plugin->SetDefaultOutputs(0);
199 //plugin->SetOutputFiles("AnalysisResults.root.root");
200 plugin->SetMergeViaJDL(kTRUE);
201 plugin->SetOneStageMerging(kFALSE);
202 plugin->SetMaxMergeStages(2);
204 plugin->SetTTL(100000);
205 // Optionally set input format (default xml-single)
206 plugin->SetInputFormat("xml-single");
207 // Optionally modify job price (default 1)
209 // Optionally modify split mode (default 'se')
210 //plugin->SetSplitMaxInputFileNumber();
211 plugin->SetSplitMode("se");