1 class AliAnalysisManager;
2 class AliAnalysisAlien;
4 void runGrid(TString mode="test",Int_t mc=0,Int_t sub=0,Int_t hi=1,TString fname="AODAnalysis")
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");
21 gROOT->LoadMacro("AliSpectraAODTrackCuts.cxx+g");
22 gROOT->LoadMacro("AliSpectraAODEventCuts.cxx+g");
23 gROOT->LoadMacro("AliSpectraAODHistoManager.cxx+g");
24 gROOT->LoadMacro("AliAnalysisTaskSpectraAOD.cxx+g");
25 // Use AliRoot includes to compile our task
26 // Create and configure the alien handler plugin
28 AliAnalysisGrid *alienHandler = CreateAlienHandler(mode,mc,sub,fname);
29 if (!alienHandler) return;
30 // Create the analysis manager
31 AliAnalysisManager *mgr = new AliAnalysisManager("testAnalysis");
32 // Connect plug-in to the analysis manager
33 mgr->SetGridHandler(alienHandler);
34 AliAODInputHandler* aodH = new AliAODInputHandler();
35 mgr->SetInputEventHandler(aodH);
37 gROOT->LoadMacro("AliSpectraAODTrackCuts.cxx+g");
38 gROOT->LoadMacro("AliSpectraAODEventCuts.cxx+g");
39 gROOT->LoadMacro("AliSpectraAODHistoManager.cxx+g");
40 gROOT->LoadMacro("AliAnalysisTaskSpectraAOD.cxx+g");
43 gROOT->ProcessLine(".L $ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
44 // AliPhysicsSelectionTask * physicsSelectionTask = AddTaskPhysicsSelection(isMC,kTRUE,0);
45 AliPhysicsSelectionTask * physicsSelectionTask = AddTaskPhysicsSelection(mc,kTRUE,0);
46 // AliPhysicsSelectionTask * physicsSelectionTask = AddTaskPhysicsSelection(isMC,kFALSE,0);
47 if(!physicsSelectionTask ) { Printf("no physSelTask"); return; }
50 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
52 AliAnalysisTask * taskPID = AddTaskPIDResponse(mc);
53 mgr->AddTask(taskPID);
55 // gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
56 // AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
59 // gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
60 // AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
64 // AliMCEventHandler *mch = new AliMCEventHandler();
66 // mgr->SetMCtruthEventHandler(mch);
67 // // //physSelTask->GetPhysicsSelection()->SetAnalyzeMC();
68 // // //taskCentrality->SetMCInput();
70 // AliAODInputHandler *inputHandler = new AliAODInputHandler("handler","handler for D2H");
71 // inputHandler->AddFriend("./AliAOD.root");
72 // mgr->SetInputEventHandler(inputHandler);
74 //setting the analysis
76 Double_t CentCut[2]={0,5};
77 Double_t qVecCut[2]={0,100};
79 AliAnalysisTaskSpectraAOD *task = new AliAnalysisTaskSpectraAOD("TaskAODExercise");
82 task->SelectCollisionCandidates();
84 AliSpectraAODEventCuts * vcuts = new AliSpectraAODEventCuts("Event Cuts");
85 AliSpectraAODTrackCuts * tcuts = new AliSpectraAODTrackCuts("Track Cuts");
86 //tcuts->SetTrackType(5); //AOD 046 & 047. Standard Cut with loose DCA
87 tcuts->SetTrackType(6); //AOD 046 & 047. Standard Cut with tight DCA
90 tcuts->SetPtTOFMatching(0.6);
91 tcuts->SetQvecMin(qVecCut[0]);
92 tcuts->SetQvecMax(qVecCut[1]);
93 vcuts->SetCentralityCutMax(CentCut[0]);
94 vcuts->SetCentralityCutMin(CentCut[1]);
95 task->SetEventCuts(vcuts);
96 task->SetTrackCuts(tcuts);
97 task->SetNSigmaForIdentification(5.); // FIXME
103 task->SetIsMC(kTRUE);
104 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
105 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::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 *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::Class(), AliAnalysisManager::kOutputContainer,
108 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
109 AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::Class(), AliAnalysisManager::kOutputContainer,
110 Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCut[0],CentCut[1],qVecCut[0],qVecCut[1]));
112 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
113 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::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 *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::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 *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::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);
125 mgr->SetDebugLevel(2);
134 if (!mgr->InitAnalysis())return;
136 // Start analysis in grid.
137 mgr->StartAnalysis("grid");
141 AliAnalysisGrid* CreateAlienHandler(TString mode="test",Int_t mc=0,Int_t sub=0,TString fname){
142 AliAnalysisAlien *plugin = new AliAnalysisAlien();
143 plugin->SetOverwriteMode();
144 plugin->SetExecutableCommand("aliroot -q -b");
145 plugin->SetRunMode(mode.Data());
146 plugin->SetNtestFiles(1);
147 //Set versions of used packages
148 plugin->SetAPIVersion("V1.1x");
149 plugin->SetROOTVersion("v5-33-02b");
150 plugin->SetAliROOTVersion("v5-03-18-AN");
151 // Declare input data to be processed.
154 plugin->SetGridDataDir("/alice/sim/LHC11a10a");
155 plugin->SetDataPattern("AOD048/*AliAOD.root");
156 plugin->SetFriendChainName("./AliAOD.root");
157 plugin->SetRunPrefix("");
158 plugin->SetAnalysisMacro(Form("TaskAODPbPbMC%d.C",sub));
159 plugin->SetExecutable(Form("TaskAODPbPbMC%d.sh",sub));
160 plugin->SetJDLName(Form("TaskAODPbPbMC%d.jdl",sub));
161 //plugin->SetSplitMaxInputFileNumber(500);
162 plugin->SetGridWorkingDir(Form("%s/mc%d/",fname.Data(),sub));
166 plugin->SetGridDataDir("/alice/data/2010/LHC10h");
167 plugin->SetDataPattern("ESDs/pass2/AOD049/*AliAOD.root");
168 plugin->SetFriendChainName("./AliAOD.root");
169 plugin->SetRunPrefix("000");
170 plugin->SetAnalysisMacro(Form("TaskAODPbPbMC%d.C",sub));
171 plugin->SetExecutable(Form("TaskAODPbPbMC%d.sh",sub));
172 plugin->SetJDLName(Form("TaskAODPbPb%d.jdl",sub));
173 //plugin->SetSplitMaxInputFileNumber(500);
174 plugin->SetGridWorkingDir(Form("%s/data%d/",fname.Data(),sub));
178 FILE* listruns=fopen("RunListGrid.txt","r");
179 while(!feof(listruns)){
180 fscanf(listruns,"%d\n",&irun);
181 plugin->AddRunNumber(irun);
183 // Declare alien output directory. Relative to working directory.
184 plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
185 plugin->SetNrunsPerMaster(60); //
186 plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/TOF");
187 plugin->SetAnalysisSource("Histograms.h HistogramNames.h AliSpectraAODHistoManager.cxx+ AliSpectraAODEventCuts.cxx+ AliSpectraAODTrackCuts.cxx+ AliAnalysisTaskSpectraAOD.cxx+");
188 plugin->SetAdditionalLibs("Histograms.h HistogramNames.h AliSpectraAODHistoManager.cxx AliSpectraAODHistoManager.h AliSpectraAODEventCuts.cxx AliSpectraAODEventCuts.h AliSpectraAODTrackCuts.cxx AliSpectraAODTrackCuts.h AliAnalysisTaskSpectraAOD.cxx AliAnalysisTaskSpectraAOD.h");
189 // Declare the output file names separated by blancs.
190 // (can be like: file.root or file.root@ALICE::Niham::File)
191 //plugin->SetDefaultOutputs(0);
192 //plugin->SetOutputFiles("AnalysisResults.root.root");
193 plugin->SetMergeViaJDL(kTRUE);
194 plugin->SetOneStageMerging(kFALSE);
195 plugin->SetMaxMergeStages(2);
197 plugin->SetTTL(100000);
198 // Optionally set input format (default xml-single)
199 plugin->SetInputFormat("xml-single");
200 // Optionally modify job price (default 1)
202 // Optionally modify split mode (default 'se')
203 //plugin->SetSplitMaxInputFileNumber();
204 plugin->SetSplitMode("se");