TENDER becomes Tender, removing .so
[u/mrichter/AliRoot.git] / PWGCF / FLOW / Documentation / examples / manual / ttree / macros / runTTreeFilterOnGrid.C
CommitLineData
c920e723 1void runTTreeFilterOnGrid() {
2 // author: Redmer Alexander Bertens, Utrecht University
3 // rbertens@cern.ch , rbertens@nikhef.nl , r.a.bertens@uu.nl
4 //
5 // example which converts input data (in this case local aod's put into a chain)
6 // to a tree which holds
7 // - AliFlowTTreeEvent : event object
8 // - AliFlowTTreeTrack : track objects
9 // see source of these classes for more details
10 //
11 // note that in this example macro the source classes (AliFlowTTreeEvent, AliFlowTTreeTrack,
12 // AliAnalysisTaskTTreeFilter) are expected to be available in the folder
13 // from which this macro is launched
14
15 // load libraries
230b7aff 16 gSystem->Load("libCore");
17 gSystem->Load("libGeom");
18 gSystem->Load("libVMC");
19 gSystem->Load("libPhysics");
20 gSystem->Load("libTree");
21 gSystem->Load("libSTEERBase");
22 gSystem->Load("libESD");
23 gSystem->Load("libAOD");
24 gSystem->Load("libANALYSIS");
25 gSystem->Load("libANALYSISalice");
c920e723 26
27 // create and customize the alien plugin
28 AliAnalysisAlien *alienHandler = new AliAnalysisAlien();
29 alienHandler->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/OADB -I$ALICE_ROOT/PWG/FLOW/Base -I$ALICE_ROOT/PWG/FLOW/Tasks -g");
230b7aff 30 alienHandler->SetAdditionalLibs("libGui libProof libMinuit libXMLParser libRAWDatabase libRAWDatarec libCDB libSTEERBase libSTEER libTPCbase libTOFbase libTRDbase libVZERObase libVZEROrec libT0base libT0rec libTender libTenderSupplies libPWGflowBase libPWGflowTasks AliFlowTTreeEvent.cxx AliFlowTTreeTrack.cxx AliAnalysisTaskTTreeFilter.cxx AliFlowTTreeEvent.h AliFlowTTreeTrack.h AliAnalysisTaskTTreeFilter.h");
c920e723 31 alienHandler->SetAnalysisSource("AliFlowTTreeEvent.cxx AliFlowTTreeTrack.cxx AliAnalysisTaskTTreeFilter.cxx");
32 alienHandler->SetOverwriteMode();
33 alienHandler->SetRunMode("full");
34 alienHandler->SetNtestFiles(1);
35 alienHandler->SetAPIVersion("V1.1x");
36 alienHandler->SetROOTVersion("v5-34-08-6");
37 alienHandler->SetAliROOTVersion("vAN-20140911");
38 alienHandler->SetFileForTestMode("filelist.txt");
39 alienHandler->SetGridDataDir("/alice/data/2011/LHC11h_2");
40 alienHandler->SetDataPattern("*ESDs/pass2/AOD145/*AOD.root");
41 alienHandler->SetRunPrefix("000");
7d50cd6e 42 // runs from the 11h data taking period (36 from the 'good' tpc list, 28 from the 'semi good' list
c920e723 43 Int_t runs[] = {167813, 167988, 168066, 168068, 168069, 168076, 168104, 168212, 168311, 168322, 168325, 168341, 168361, 168362, 168458, 168460, 168461, 168992, 169091, 169094, 169138, 169143, 169167, 169417, 169835, 169837, 169838, 169846, 169855, 169858, 169859, 169923, 169956, 170027, 170036, 170081, 169975, 169981, 170038, 170040, 170083, 170084, 170085, 170088, 170089, 170091, 170152, 170155, 170159, 170163, 170193, 170195, 170203, 170204, 170205, 170228, 170230, 170264, 170268, 170269, 170270, 170306, 170308, 170309}; // 36 + 28 runs
44
45 // add the runnnumbers to the handler
7d50cd6e 46 for(int i = 0; i < 36; i++) alienHandler->AddRunNumber(runs[i]);
c920e723 47
48 alienHandler->SetDefaultOutputs();
49 alienHandler->SetAnalysisMacro("PhiV2.C");
50 alienHandler->SetSplitMaxInputFileNumber(40);
51 alienHandler->SetExecutable("runTTreeFilterOnGrid.sh");
52 alienHandler->SetTTL(10000);
53 alienHandler->SetInputFormat("xml-single");
54 alienHandler->SetJDLName("runTTreeFilterOnGrid.jdl");
55 alienHandler->SetPrice(1);
56 alienHandler->SetSplitMode("se");
57
58 alienHandler->SetOutputToRunNo(kTRUE);
59 alienHandler->SetKeepLogs(kTRUE);
60 alienHandler->SetMaxMergeStages(1);
61 alienHandler->SetMergeViaJDL(kTRUE);
62
63 // define the output folders
7d50cd6e 64 alienHandler->SetGridWorkingDir(Form("filteredTTree_runs_%i-%i", runs[0], runs[35]));
65 alienHandler->SetGridOutputDir(Form("filteredTTree_runs_%i-%i", runs[0], runs[35]));
c920e723 66
67 // create the analysis manager
68 AliAnalysisManager* mgr = new AliAnalysisManager("MyManager");
69 // connect the alien plugin to the manager
70 mgr->SetGridHandler(alienHandler);
71
72 AliVEventHandler* inputH = new AliAODInputHandler();
73 // and connect it to the manager
74 mgr->SetInputEventHandler(inputH);
75
76 // compile the relevant classes
77 gSystem->AddIncludePath("-Wno-deprecated");
78 gSystem->AddIncludePath("-I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/EMCAL");
79 gSystem->AddIncludePath("-I$ALICE_ROOT/PWGDQ/dielectron -I$ALICE_ROOT/PWGHF/hfe");
80 gSystem->AddIncludePath("-I$ALICE_ROOT/JETAN -I$ALICE_ROOT/JETAN/fastjet");
81
82 gROOT->LoadMacro("AliFlowTTreeEvent.cxx+");
83 gROOT->LoadMacro("AliFlowTTreeTrack.cxx+");
84 gROOT->LoadMacro("AliAnalysisTaskTTreeFilter.cxx+");
85
86 // load the addtask
87 gROOT->LoadMacro("AddTaskTTreeFilter.C");
88
89 // launch the task
90 AddTaskTTreeFilter();
91
92 // check if we can initialize the manager
93 if(!mgr->InitAnalysis()) return;
94 // print the status of the manager to screen
95 mgr->PrintStatus();
96 // print to screen how the analysis is progressing
97 mgr->SetUseProgressBar(1, 25);
98 // start the analysis locally, reading the events from the tchain
99 mgr->StartAnalysis("grid");
100}