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_1June2012")
6 //0 is AOD048-049 in this case you can choos FilterBit5 (loose DCA) or 6 (tight DCA)!!!!!!!!!
8 AliLog::SetGlobalDebugLevel(100);
9 // Load common libraries
10 gEnv->SetValue("XSec.GSI.DelegProxy", "2");
12 gSystem->Load("libTree.so");
13 //gSystem->Load("libGeom.so");
14 //gSystem->Load("libVMC.so");
15 gSystem->Load("libPhysics.so");
16 gSystem->Load("libSTEERBase.so");
17 gSystem->Load("libESD.so");
18 gSystem->Load("libAOD.so");
19 gSystem->Load("libANALYSIS.so");
20 gSystem->Load("libOADB.so");
21 gSystem->Load("libANALYSISalice.so");
22 gSystem->AddIncludePath("-I$ALICE_ROOT/include");
24 // gROOT->LoadMacro("$ALICE_ROOT/SPECTRA/PiKaPr/TestAOD/AliSpectraAODTrackCuts.cxx+g");
25 // gROOT->LoadMacro("$ALICE_ROOT/SPECTRA/PiKaPr/TestAOD/AliSpectraAODEventCuts.cxx+g");
26 // gROOT->LoadMacro("$ALICE_ROOT/SPECTRA/PiKaPr/TestAOD/AliSpectraAODHistoManager.cxx+g");
27 // gROOT->LoadMacro("$ALICE_ROOT/SPECTRA/PiKaPr/TestAOD/AliSpectraAODPID.cxx+g");
28 // gROOT->LoadMacro("$ALICE_ROOT/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskSpectraAOD.cxx+g");
29 gROOT->LoadMacro("AliSpectraAODTrackCuts.cxx+g");
30 gROOT->LoadMacro("AliSpectraAODEventCuts.cxx+g");
31 gROOT->LoadMacro("AliSpectraAODHistoManager.cxx+g");
32 gROOT->LoadMacro("AliSpectraAODPID.cxx+g");
33 gROOT->LoadMacro("AliAnalysisTaskSpectraAOD.cxx+g");
34 // Use AliRoot includes to compile our task
35 // Create and configure the alien handler plugin
37 AliAnalysisGrid *alienHandler = CreateAlienHandler(mode,mc,sub,fname);
38 if (!alienHandler) return;
39 // Create the analysis manager
40 AliAnalysisManager *mgr = new AliAnalysisManager("testAnalysis");
41 // Connect plug-in to the analysis manager
42 mgr->SetGridHandler(alienHandler);
43 AliAODInputHandler* aodH = new AliAODInputHandler();
44 mgr->SetInputEventHandler(aodH);
47 gROOT->ProcessLine(".L $ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
48 AliPhysicsSelectionTask * physicsSelectionTask = AddTaskPhysicsSelection(mc,kTRUE,0);
49 if(!physicsSelectionTask ) { Printf("no physSelTask"); return; }
52 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
54 AliAnalysisTask * taskPID = AddTaskPIDResponse(mc);
55 mgr->AddTask(taskPID);
57 //setting the analysis
59 //Double_t CentCut[2]={0,100};
60 Double_t CentCut[2]={0,100};
61 Double_t qVecCut[2]={0,100};
64 using namespace AliSpectraNameSpace;
65 AliSpectraAODPID *pid = new AliSpectraAODPID(kNSigmaTPCTOF);
66 pid->SetNSigmaCut(3.);
68 AliAnalysisTaskSpectraAOD *task = new AliAnalysisTaskSpectraAOD("TaskAODExercise");
71 task->SelectCollisionCandidates();
74 AliSpectraAODEventCuts * vcuts = new AliSpectraAODEventCuts("Event Cuts");
75 AliSpectraAODTrackCuts * tcuts = new AliSpectraAODTrackCuts("Track Cuts");
77 tcuts->SetTrackType(5); //AOD 046 & 047. Standard Cuts with loose DCA
78 //tcuts->SetTrackType(6); //AOD 046 & 047. Standard Cuts with tight DCA
80 if(sub==1)tcuts->SetTrackType(10); //AOD 086 & 090. Standard Raa cuts
87 tcuts->SetPtTOFMatching(0.6);
88 tcuts->SetQvecMin(qVecCut[0]);
89 tcuts->SetQvecMax(qVecCut[1]);
90 vcuts->SetCentralityCutMin(CentCut[0]);
91 vcuts->SetCentralityCutMax(CentCut[1]);
92 task->SetEventCuts(vcuts);
93 task->SetTrackCuts(tcuts);
100 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
101 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::Class(), AliAnalysisManager::kOutputContainer,
102 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
103 AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::Class(), AliAnalysisManager::kOutputContainer,
104 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
105 AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::Class(), AliAnalysisManager::kOutputContainer,
106 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
107 AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer(Form("cpidpt%d",iCut), AliSpectraAODPID::Class(), AliAnalysisManager::kOutputContainer,
108 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
110 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
111 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::Class(), AliAnalysisManager::kOutputContainer,
112 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
113 AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::Class(), AliAnalysisManager::kOutputContainer,
114 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
115 AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::Class(), AliAnalysisManager::kOutputContainer,
116 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
117 AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer(Form("cpidpt%d",iCut), AliSpectraAODPID::Class(), AliAnalysisManager::kOutputContainer,
118 Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
120 mgr->ConnectInput(task, 0, cinput);
121 mgr->ConnectOutput(task, 1, coutputpt1);
122 mgr->ConnectOutput(task, 2, coutputpt2);
123 mgr->ConnectOutput(task, 3, coutputpt3);
124 mgr->ConnectOutput(task, 4, coutputpt4);
126 mgr->SetDebugLevel(2);
129 if (!mgr->InitAnalysis())return;
131 // Start analysis in grid.
132 mgr->StartAnalysis("grid");
136 AliAnalysisGrid* CreateAlienHandler(TString mode="test",Int_t mc=0,Int_t sub=0,TString fname){
140 AliAnalysisAlien *plugin = new AliAnalysisAlien();
141 plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/TOF");
142 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");
143 plugin->SetAnalysisSource("Histograms.h HistogramNames.h AliSpectraAODHistoManager.cxx AliSpectraAODTrackCuts.cxx AliSpectraAODEventCuts.cxx AliSpectraAODPID.cxx AliAnalysisTaskSpectraAOD.cxx");
144 plugin->SetOverwriteMode();
145 plugin->SetExecutableCommand("aliroot -q -b");
146 plugin->SetRunMode(mode.Data());
147 plugin->SetNtestFiles(1);
148 //Set versions of used packages
149 plugin->SetAPIVersion("V1.1x");
150 plugin->SetROOTVersion("v5-33-02b");
151 plugin->SetAliROOTVersion("v5-04-25-AN");
152 // Declare input data to be processed.
156 plugin->SetGridDataDir("/alice/sim/LHC11a10a");
157 plugin->SetDataPattern("AOD048/*AliAOD.root");
158 plugin->SetRunPrefix("");
159 plugin->SetAnalysisMacro(Form("TaskAOD046PbPbMC%d.C",sub));
160 plugin->SetExecutable(Form("TaskAOD046PbPbMC%d.sh",sub));
161 plugin->SetJDLName(Form("TaskAOD046PbPbMC%d.jdl",sub));
162 //plugin->SetSplitMaxInputFileNumber(500);
163 plugin->SetGridWorkingDir(Form("%s/AOD048-049Filter5/mc%d/",fname.Data(),sub));
167 plugin->SetGridDataDir("/alice/data/2010/LHC10h");
168 plugin->SetDataPattern("ESDs/pass2/AOD049/*AliAOD.root");
169 plugin->SetRunPrefix("000");
170 plugin->SetAnalysisMacro(Form("TaskAOD046PbPbdata%d.C",sub));
171 plugin->SetExecutable(Form("TaskAOD046PbPbdata%d.sh",sub));
172 plugin->SetJDLName(Form("TaskAOD046PbPbdata%d.jdl",sub));
173 //plugin->SetSplitMaxInputFileNumber(500);
174 plugin->SetGridWorkingDir(Form("%s/AOD048-049Filter5/data%d/",fname.Data(),sub));
176 FILE* listruns=fopen("RunListGrid-AOD046.txt","r");
181 plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis");
182 plugin->SetDataPattern("AOD090/*AliAOD.root");
183 plugin->SetRunPrefix("");
184 plugin->SetAnalysisMacro(Form("TaskAOD086PbPbMC%d.C",sub));
185 plugin->SetExecutable(Form("TaskAOD086PbPbMC%d.sh",sub));
186 plugin->SetJDLName(Form("TaskAOD086PbPbMC%d.jdl",sub));
187 //plugin->SetSplitMaxInputFileNumber(500);
188 plugin->SetGridWorkingDir(Form("%s/AOD086-090Filter10/mc%d/",fname.Data(),sub));
192 plugin->SetGridDataDir("/alice/data/2010/LHC10h");
193 plugin->SetDataPattern("ESDs/pass2/AOD086/*AliAOD.root");
194 plugin->SetRunPrefix("000");
195 plugin->SetAnalysisMacro(Form("TaskAOD086PbPbdata%d.C",sub));
196 plugin->SetExecutable(Form("TaskAOD086PbPbdata%d.sh",sub));
197 plugin->SetJDLName(Form("TaskAOD086PbPbdata%d.jdl",sub));
198 //plugin->SetSplitMaxInputFileNumber(500);
199 plugin->SetGridWorkingDir(Form("%s/AOD086-090Filter10/data%d/",fname.Data(),sub));
201 FILE* listruns=fopen("RunListGrid-AOD086.txt","r");
204 while(!feof(listruns)){
205 fscanf(listruns,"%d\n",&irun);
206 plugin->AddRunNumber(irun);
208 // Declare alien output directory. Relative to working directory.
209 //plugin->SetGridOutputDir("/alice/cern.ch/user/l/lmilano/AODAnalysis/AOD086TrackBit10/mc1/output/000/Stage_1"); // In this case will be $HOME/work/output
210 plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
211 plugin->SetNrunsPerMaster(60); //
214 // Declare the output file names separated by blancs.
215 // (can be like: file.root or file.root@ALICE::Niham::File)
216 //plugin->SetDefaultOutputs(0);
217 //plugin->SetOutputFiles("AnalysisResults.root.root");
218 plugin->SetMergeViaJDL(kTRUE);
219 plugin->SetOneStageMerging(kFALSE);
220 plugin->SetMaxMergeStages(2);
222 plugin->SetTTL(100000);
223 // Optionally set input format (default xml-single)
224 plugin->SetInputFormat("xml-single");
225 // Optionally modify job price (default 1)
227 // Optionally modify split mode (default 'se')
228 //plugin->SetSplitMaxInputFileNumber();
229 plugin->SetSplitMode("se");