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