]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/EvTrkSelection/macros/RunCFSingleTrackEfficiencyTask.C
.so cleanup: removed from gSystem->Load()
[u/mrichter/AliRoot.git] / PWGPP / EvTrkSelection / macros / RunCFSingleTrackEfficiencyTask.C
1 class AliAnalysisGrid;
2 class AliAnalysisAlien;
3
4 //_______________________________| Loading Libraries |________________________________
5 void Load() {
6     
7   gSystem->SetIncludePath("-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/STEER -I$ALICE_ROOT/STEER/STEERBase -I$ALICE_ROOT/STEER/ESD -I$ALICE_ROOT/STEER/AOD -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS  -I$ALICE_ROOT/OADB -I$ALICE_ROOT/PWGPP -g"); 
8
9   //load the required aliroot libraries
10   gSystem->Load("libTree");
11   gSystem->Load("libGeom");
12   gSystem->Load("libPhysics");
13   gSystem->Load("libVMC");
14   gSystem->Load("libMinuit");
15   gSystem->Load("libSTEERBase");
16   gSystem->Load("libESD");
17   gSystem->Load("libAOD");
18   gSystem->Load("libANALYSIS");
19   gSystem->Load("libOADB");
20   gSystem->Load("libANALYSISalice");
21   gSystem->Load("libCORRFW");
22   gSystem->Load("libPWGPP");
23 }
24
25 //_______________________________| Running on Grid |________________________________
26 void RunCFSingleTrackEfficiencyTask()
27 {
28
29   const Bool_t readAOD = 1;
30
31   TString        analysisMode    =  "local"; // "local", "grid", or "proof"
32   TString           inputMode    =  "list"; // "list", "xml", or "dataset"
33   Long64_t           nentries    =   123567890,firstentry=0;
34   Bool_t       useAlienPlugin    =   kTRUE;
35   TString          pluginmode    =   "test";
36   TString testfileslistWithPlugin="filesAOD.txt"; // list of local files to test a la "files.txt" to use by the plugin
37
38   TBenchmark benchmark;
39   benchmark.Start("AliCFSingleTrackEfficiencyTask");
40
41   Load();
42
43   if(analysisMode=="grid") {
44     TGrid::Connect("alien://") ;    //  Create an AliRunTagCuts and an AliEventTagCuts Object
45   }
46
47   if(useAlienPlugin) {
48     AliAnalysisGrid *alienHandler = CreateAlienHandler(pluginmode,testfileslistWithPlugin,readAOD);
49     if(!alienHandler) return;
50   }
51
52   printf("CREATE ANALYSIS MANAGER\n");
53   AliAnalysisManager *mgr = new AliAnalysisManager("My Manager","My Manager");
54   mgr->SetDebugLevel(10);
55   if(useAlienPlugin) mgr->SetGridHandler(alienHandler);
56
57   AliMCEventHandler*  mcHandler = new AliMCEventHandler();
58   if (!readAOD) mgr->SetMCtruthEventHandler(mcHandler);
59          
60   AliInputEventHandler* dataHandler;
61   if   (readAOD) dataHandler = new AliAODInputHandler();
62   else           dataHandler = new AliESDInputHandler();
63   mgr->SetInputEventHandler(dataHandler);
64          
65   //CREATE THE TASK
66   printf("Prepare to create the task\n");
67
68   // Run physics selection if not reading AODs
69   if (!readAOD) {
70     gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
71     AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kTRUE);
72   }
73
74   // Add new tasks
75   //
76   // First add the task for the PID response setting
77   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
78   AliAnalysisTaskSE *setupTask = AddTaskPIDResponse(kTRUE,kTRUE);
79          
80   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDqa.C");
81   AliAnalysisTaskPIDqa *pidQA = AddTaskPIDqa();
82
83   // gROOT->LoadMacro("AliSingleTrackEffCuts.cxx++g");
84   // gROOT->LoadMacro("AliCFSingleTrackEfficiencyTask.cxx++g");
85   gROOT->LoadMacro("AddSingleTrackEfficiencyTask.C");
86   AliCFSingleTrackEfficiencyTask *task = AddSingleTrackEfficiencyTask(readAOD,"Nch");
87   AliCFSingleTrackEfficiencyTask *taskPi = AddSingleTrackEfficiencyTask(readAOD,"Pion",AliPID::kPion,211);
88   AliCFSingleTrackEfficiencyTask *taskKa = AddSingleTrackEfficiencyTask(readAOD,"Kaon",AliPID::kKaon,321);
89  
90   // Run the analysis
91   TChain * analysisChain=0;
92          
93   if(analysisChain) printf("CHAIN HAS %d ENTRIES\n",(Int_t)analysisChain->GetEntries());
94   if(!mgr->InitAnalysis()) return;
95   mgr->PrintStatus();
96   if(analysisMode=="grid" && !useAlienPlugin) analysisMode="local";
97   if(analysisMode!="proof") {
98     mgr->StartAnalysis(analysisMode.Data(),analysisChain,nentries,firstentry);
99   }
100          
101   benchmark.Stop("AliCFSingleTrackEfficiencyTask");
102   benchmark.Show("AliCFSingleTrackEfficiencyTask");
103          
104   return;  
105 }
106
107
108 //_______________________________| CreateAlienHandler |________________________________
109 AliAnalysisGrid* CreateAlienHandler(TString pluginmode="test", TString testfileslistWithPlugin="", const Bool_t readAOD=kTRUE)
110 {
111
112   AliAnalysisAlien *plugin = new AliAnalysisAlien();
113   plugin->SetRunMode(pluginmode.Data());
114   plugin->SetUser("zconesa");
115   plugin->SetAPIVersion("V1.1x");
116   plugin->SetROOTVersion("v5-34-08");
117   plugin->SetAliROOTVersion("v5-05-03-AN");
118   plugin->SetNtestFiles(1);
119
120   // Set data file list to test on local mode  
121   plugin->SetFileForTestMode(testfileslistWithPlugin.Data());
122
123   // Set data search pattern for DATA grid Mode
124   plugin->SetGridDataDir("/alice/sim/2013/LHC13d3"); // specify MC sample
125   if(readAOD) plugin->SetDataPattern("AOD/*AliAOD.root");// specify AOD set
126   else plugin->SetDataPattern("*/AliESDs.root");
127   
128   Int_t totruns=0;
129   gROOT->LoadMacro("$ALICE_ROOT/PWGHF/vertexingHF/AddGoodRuns.C");
130   totruns += AddGoodRuns(plugin,"LHC13b","LHC13b");
131   totruns += AddGoodRuns(plugin,"LHC13c","LHC13c");
132   plugin->SetNrunsPerMaster(totruns);
133   
134   // plugin->AddDataFile("/alice/cern.ch/user/z/zconesa/sim/LHC13d3/195483_195529.xml");
135
136   plugin->SetGridWorkingDir("sim/LHC13d3/ST290713");
137   plugin->SetGridOutputDir("out"); 
138   
139   plugin->SetExecutable("ST290713.sh");
140   plugin->SetAnalysisSource("AliSingleTrackEffCuts.cxx AliCFSingleTrackEfficiencyTask.cxx");
141   plugin->SetAdditionalLibs("AliSingleTrackEffCuts.h AliSingleTrackEffCuts.cxx AliCFSingleTrackEfficiencyTask.cxx AliCFSingleTrackEfficiencyTask.h");  
142   plugin->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/STEER -I$ALICE_ROOT/STEER/STEERBase -I$ALICE_ROOT/STEER/ESD -I$ALICE_ROOT/STEER/AOD -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/OADB -g"); 
143   
144   plugin->SetDefaultOutputs(kTRUE);
145   // merging via jdl
146   plugin->SetMergeViaJDL(kTRUE);
147   plugin->SetOneStageMerging(kFALSE);
148   plugin->SetMaxMergeStages(2);
149   
150   plugin->SetSplitMaxInputFileNumber(5);
151   
152   plugin->SetAnalysisMacro("ST290713.C");
153   plugin->SetJDLName("TaskHFST290713.jdl");
154   
155   return plugin;
156 }