]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TPC/macros/RunPerformanceTask.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / TPC / macros / RunPerformanceTask.C
1 // Macro to run TPC performance task (locally, proof).
2 //
3 // By default 8 performance components are added to 
4 // the task. Look inside AddTaskPerformanceTPC.C
5 //
6
7 /*
8  
9   //1. Run locally e.g.
10
11   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/LoadMyLibs.C");
12
13   gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
14   TChain* chain = CreateESDChain("esds_test.txt",10, 0);
15   chain->Lookup();
16
17   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/RunPerformanceTask.C");
18   RunPerformanceTask(chain, kFALSE, kTRUE, kFALSE);
19
20   //2. Run on PROOF Lite e.g.
21
22   TProof::Open(""); 
23
24   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/ProofEnableAliRoot.C");
25   ProofEnableAliRoot("/u/jacek/alice/AliRoot/trunk");
26
27   gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
28   TChain* chain = CreateESDChain("list_flatP_JB.txt",20, 0);
29   chain->Lookup();
30
31   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/RunPerformanceTask.C");
32   RunPerformanceTask(chain, kTRUE, kTRUE, kTRUE);
33
34
35   //3. Run only on PoD at GSI e.g.
36   TProofMgr * proofmgr = TProof::Mgr("lxialpod2.gsi.de:21001");
37   TProof * proof = proofmgr->CreateSession();
38   proof->SetParameter("PROOF_MaxSlavesPerNode", (Long_t)10000);
39
40   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/ProofEnableAliRoot.C");
41   ProofEnableAliRoot("/d/alice11/jacek/alice/x86_64/AliRoot/trunk");
42
43   gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
44   TChain* chain = CreateESDChain("../input/ffprod_v4-17-Rev-19_900kPythia6D6T.list", 200, 0);
45   chain->Lookup();
46
47   //gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/RunPerformanceTask.C");
48   gROOT->LoadMacro("/d/alice11/jacek/alice/TPC/macros/RunPerformanceTask.C");
49   RunPerformanceTask(chain, kFALSE, kTRUE, kTRUE); 
50
51   //4. Make final spectra and store them in the
52   // output folder and generate control pictures e.g.
53
54   TFile f("TPC.Performance.root");
55   AliPerformanceRes * compObjRes = (AliPerformanceRes*)coutput->FindObject("AliPerformanceResTPCOuter");
56   compObjRes->Analyse();
57   compObjRes->GetAnalysisFolder()->ls("*");
58   // create pictures
59   compObjRes->PrintHisto(kTRUE,"PerformanceResTPCOuterQA.ps");
60   // store output QA histograms in file
61   TFile fout("PerformanceResTPCOuterQAHisto.root","recreate");
62   compObjRes->GetAnalysisFolder()->Write();
63   fout.Close();
64   f.Close();
65
66 */
67
68 //_____________________________________________________________________________
69 void RunPerformanceTask(TChain *chain, Bool_t bUseMCInfo=kTRUE, Bool_t bUseESDfriend=kTRUE,  Bool_t bProof=kTRUE)
70 {
71   if(!chain) 
72   {
73     AliDebug(AliLog::kError, "ERROR: No input chain available");
74     return;
75   }
76   //
77   // Swtich off all AliInfo (too much output!)
78   //
79   AliLog::SetGlobalLogLevel(AliLog::kError);
80
81   //
82   // Create analysis manager
83   //
84   AliAnalysisManager *mgr = new AliAnalysisManager;
85   if(!mgr) { 
86     Error("runTPCQA","AliAnalysisManager not set!");
87     return;
88   }
89
90   //
91   // Set ESD input handler
92   //
93   AliESDInputHandler* esdH = new AliESDInputHandler;
94   if(!esdH) { 
95     Error("runTPCQA","AliESDInputHandler not created!");
96     return;
97   }
98   if(bUseESDfriend) esdH->SetActiveBranches("ESDfriend");
99   mgr->SetInputEventHandler(esdH);
100
101   //
102   // Set MC input handler
103   //
104   if(bUseMCInfo) {
105     AliMCEventHandler* mcH = new AliMCEventHandler;
106     if(!esdH) { 
107       Error("runTPCQA","AliMCEventHandler not created!");
108       return;
109     }
110     mcH->SetReadTR(kTRUE);
111     mgr->SetMCtruthEventHandler(mcH);
112   }
113   //
114   // Add task to AliAnalysisManager
115   //
116   //gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskPerformanceTPC.C");
117   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/TPC/macros/AddTaskPerformanceTPCQA.C");
118   AliPerformanceTask *tpcQA = AddTaskPerformanceTPCQA(bUseMCInfo,bUseESDfriend);
119   if(!tpcQA) { 
120       Error("runTPCQA","TaskPerformanceTPC not created!");
121       return;
122   }
123
124   // Enable debug printouts
125   mgr->SetDebugLevel(0);
126
127   if (!mgr->InitAnalysis())
128     return;
129
130   mgr->PrintStatus();
131
132   if(bProof) mgr->StartAnalysis("proof",chain);
133   else mgr->StartAnalysis("local",chain);
134 }
135