TENDER becomes Tender
[u/mrichter/AliRoot.git] / PWGPP / PilotTrain / runPilot.C
1 void runPilot() {
2   TStopwatch timer;
3   timer.Start();
4   gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT -I$ALICE_ROOT/TRD");
5   gSystem->Load("libANALYSIS.so");
6   gSystem->Load("libANALYSISalice.so");
7   gSystem->Load("libTender.so");
8   gSystem->Load("libCORRFW.so");
9   gSystem->Load("libPWG0base.so");
10   gSystem->Load("libPWG0dep.so");
11   gSystem->Load("libPWG0selectors.so");
12   gSystem->Load("libPWGPP.so");
13   gSystem->Load("libPWG2.so");
14   gSystem->Load("libPWGmuon.so");
15   gSystem->Load("libPWGmuondep.so");
16   gSystem->Load("libPWG2forward.so");
17   gSystem->Load("libPWG4PartCorrBase.so");
18   gSystem->Load("libPWG4PartCorrDep.so");
19  
20
21
22   Bool_t doQAsym        = 1;   // (data)
23   Bool_t doVZERO        = 1;   // (data)
24   Bool_t doVertex       = 1;   // (data)
25   Bool_t doSPD          = 1;   // (data/RP)   
26   Bool_t doFMD          = 1;   // (data)
27   Bool_t doTPC          = 1;   // AliPerformanceTask (data/MCtruth)
28   Bool_t doEventStat    = 1;   // (data)
29   Bool_t doSDD          = 1;   // (data/RP)
30   Bool_t doTRD          = 1;   // TRD 
31   Bool_t doITS          = 1;   // ITS
32   Bool_t doCALO         = 1;   // Calorimeter
33   Bool_t doMUONTrig     = 1;   // MUON trigger
34   Bool_t doMUONEff      = 0;   // MUON efficiency  NEEDS geometry
35   Bool_t doV0           = 0;   // V0 recosntruction performance NEEDS MCtruth
36    
37   //
38   //
39   // Tasks that need MC information
40   //
41
42   
43   
44    //____________________________________________//
45   // Make the analysis manager
46   AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
47   mgr->SetDebugLevel(10);
48   
49
50   AliInputEventHandler* esdH = new AliESDInputHandlerRP();
51   esdH->SetActiveBranches("ESDfriend");
52   mgr->SetInputEventHandler(esdH);  
53
54   // Chain 
55   // TGrid::Connect("alien://");
56   
57   TChain* chain = new TChain("esdTree");
58   //chain->AddFile("alien:///alice/data/2009/LHC09d/000104321/ESDs/pass1/09000104321018.10/AliESDs.root");
59   //chain->AddFile("alien:///alice/data/2009/LHC09d/000104321/ESDs/pass1/09000104321018.20/AliESDs.root");
60   chain->AddFile("/home/morsch/AliRoot/trunk/PWGPP/PilotTrain/data/AliESDs.root");
61   
62
63   //
64   // Wagons running on data
65   //
66   //
67   //
68   // VZERO QA  (C. Cheshkov)
69   //
70   if (doVZERO) {
71       gROOT->LoadMacro("AddTaskVZEROQA.C");
72       AliAnalysisTaskSE* task2 =  AddTaskVZEROQA(0);
73 //      task2->SelectCollisionCandidates();
74   }
75   
76   //
77   // Vertexing (A. Dainese)
78   // 
79   if (doVertex) {
80       gROOT->LoadMacro("$(ALICE_ROOT)/PWGPP/macros/AddTaskVertexESD.C");
81       AliAnalysisTaskVertexESD* task3 =  AddTaskVertexESD();
82       task3->SelectCollisionCandidates();
83   }
84
85   //
86   // ITS
87   // 
88   if (doITS) {
89       gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskPerformanceITS.C");
90       AliAnalysisTaskITSTrackingCheck *itsQA = AddTaskPerformanceITS(kFALSE);
91   }
92   
93   //
94   // SPD (A. Mastroserio)
95   //
96   if (doSPD) {
97       gROOT->LoadMacro("AddTaskSPDQA.C");
98       AliAnalysisTaskSE* task4 = AddTaskSPDQA();
99   }
100
101   //
102   // SDD (F. Prino)
103   //
104   if (doSDD) {
105       gROOT->LoadMacro("AddSDDPoints.C");
106       AliAnalysisTaskSE* task5 = AddSDDPoints();
107       task5->SelectCollisionCandidates();
108   }
109   
110   //
111   // FMD (Hans Hjersing Dalsgaard)
112   //
113   if (doFMD) {
114       gROOT->LoadMacro("AddTaskFMD.C");
115       AliAnalysisTaskSE* task6 = AddTaskFMD();
116       task6->SelectCollisionCandidates();
117   }
118
119   // TPC QA (E. Sicking)
120   //
121   if (doQAsym) {
122       gROOT->LoadMacro("AddTaskQAsym.C");
123       AliAnalysisTaskSE* task1 = AddTaskQAsym();
124       task1->SelectCollisionCandidates();
125   }
126   //
127   // TPC (Jacek Otwinowski)
128   //
129   if (doTPC) {
130       // 
131       // Optionally MC information can be used by setting the 1st argument to true
132       gROOT->LoadMacro("$(ALICE_ROOT)/PWGPP/TPC/macros/AddTaskPerformanceTPCQA.C");
133       AliPerformanceTask *tpcQA = AddTaskPerformanceTPCQA(kFALSE, kTRUE);
134   }
135   
136   //
137   // TRD (Alex Bercuci, M. Fasel) 
138   //
139   if(doTRD) {
140     gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTrainPerformanceTRD.C");
141     AddTrainPerformanceTRD("ALL");
142   }
143
144   //
145   // Event Statistics (Jan Fiete)
146   //
147   if (doEventStat) {
148       gROOT->LoadMacro("AddTaskPhysicsSelection.C");
149       AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
150       AliPhysicsSelection* physSel = physSelTask->GetPhysicsSelection();
151       physSel->AddBackgroundIdentification(new AliBackgroundSelection());
152   }
153
154   if(doCALO) {
155       gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/QA/AddTaskCalorimeterQA.C");
156       AliAnalysisTaskParticleCorrelation *taskCaloQA = AddTaskCalorimeterQA("ESD", kTRUE, kFALSE);
157       taskCaloQA->SetDebugLevel(0);
158   }
159
160   if(doMUONTrig) {
161       gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskMTRchamberEfficiency.C");
162       AliAnalysisTaskTrigChEff *taskMuonTrig = AddTaskMTRchamberEfficiency();
163   }
164
165   if(doMUONEff) {
166       gROOT->LoadMacro("$ALICE_ROOT/PWG3/muondep/AddTaskMUONTrackingEfficiency.C");
167       AliAnalysisTaskMuonTrackingEff *taskMuonTrackEff = AddTaskMUONTrackingEfficiency();
168   }
169   
170   if (doV0) {
171       gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskV0QA.C");
172       AliAnalysisTaskV0QA *taskv0QA = AddTaskV0QA(kFALSE);
173   }
174
175
176   //
177   // Wagons that need MC
178   //
179   
180   
181   // Init
182   if (!mgr->InitAnalysis()) 
183       mgr->PrintStatus();
184       mgr->PrintStatus();
185   // Run on dataset
186   mgr->StartAnalysis("local", chain);
187   timer.Stop();
188   timer.Print();
189 }
190