Prototype of the QA analysis mini-train. It uses AliAnalysisTaskCosmic from PWG1...
[u/mrichter/AliRoot.git] / prod / acrcaf / qa / qa.C
1 void qa(Int_t runNumber) {
2   TStopwatch timer;
3   timer.Start();
4
5   gEnv->SetValue("XSec.GSI.DelegProxy","2");
6   // Select ROOT version
7   TProof::Mgr("aliprod@alicecaf")->SetROOTVersion("v5-24-00b-caf");
8   // Login to CAF
9   TProof::Open("aliprod@alicecaf");
10
11   // Enable AliRoot
12   gProof->UploadPackage("/afs/cern.ch/alice/caf/sw/ALICE/PARs/v4-17-Release.rec/AF-v4-17-rec.par");
13   gProof->EnablePackage("AF-v4-17-rec.par");
14
15   gProof->Load(Form("%s/AliAnalysisTaskCosmic.cxx++g",
16                     gSystem->ExpandPathName("$ALICE_ROOT/PWG1/cosmic"));
17
18   //____________________________________________//
19   // Make the analysis manager
20   AliAnalysisManager *mgr = new AliAnalysisManager("AnalysisQAManager");
21   AliESDInputHandler* esdH = new AliESDInputHandler();
22   mgr->SetInputEventHandler(esdH);  
23   mgr->SetDebugLevel(10);
24
25   //____________________________________________//
26   // 1st Cosmic task
27   AliAnalysisTaskCosmic *task1 = new AliAnalysisTaskCosmic("TaskCosmic");
28   mgr->AddTask(task1);
29
30   // Create containers for input/output
31   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("chist1",TList::Class(),AliAnalysisManager::kOutputContainer,
32                                                             Form("run%d.root",runNumber));
33
34   //____________________________________________//
35   mgr->ConnectInput  (task1,  0, mgr->GetCommonInputContainer());
36   mgr->ConnectOutput (task1,  1, coutput1);
37   
38   if (!mgr->InitAnalysis()) return;
39   mgr->PrintStatus();
40   mgr->StartAnalysis("proof",
41                      Form("ALIREC/aliprod/run%d",runNumber));
42
43   timer.Stop();
44   timer.Print();
45
46   plot(runNumber);
47 }
48
49 void plot(Int_t runNumber)
50 {
51   TFile* f = new TFile(Form("run%d.root",runNumber), "read");
52
53   // pt, phi ....
54   TCanvas* c1 = new TCanvas("c1", "pt,eta,phi", 10, 10, 1100, 800);
55   c1->Divide(2,2);
56   c1->cd(1);
57   c1->GetPad(1)->SetLogy();
58     
59   fhPtP = (TH1F*) chist1->FindObject("fhPtPC");
60   fhPtP->SetLineColor(2);
61   fhPtP->Draw();
62   fhPtN = (TH1F*) chist1->FindObject("fhPtNC");
63   fhPtN->SetLineColor(4);
64   fhPtN->Draw("same");
65
66   c1->cd(2);
67   fhPhiP = (TH1F*) chist1->FindObject("fhPhiPC");
68   fhPhiP->SetLineColor(2);
69   fhPhiP->Draw();
70   fhPhiN = (TH1F*) chist1->FindObject("fhPhiNC");
71   fhPhiN->SetLineColor(4);
72   fhPhiN->Draw("same");
73
74   c1->cd(3);
75   fhThetaP = (TH1F*) chist1->FindObject("fhThetaPC");
76   fhThetaP->SetLineColor(2);
77   fhThetaP->Draw();
78   fhThetaN = (TH1F*) chist1->FindObject("fhThetaNC");
79   fhThetaN->SetLineColor(4);
80   fhThetaN->Draw("same");
81
82     
83   // delta phi
84   TCanvas* c2 = new TCanvas("c2", "#Delta#phi", 10, 10, 1100, 800);
85   c2->Divide(2,2);
86   // pos/neg charge
87   c2->cd(1);
88   c2->GetPad(1)->SetLogy();
89   fhDPhiP = (TH1F*) chist1->FindObject("fhDPhiPC");
90   fhDPhiN = (TH1F*) chist1->FindObject("fhDPhiNC");
91   fhDPhiP->SetLineColor(2);
92   fhDPhiN->SetLineColor(4);
93   fhDPhiP->SetXTitle("#Delta#phi [rad]");
94   fhDPhiP->Draw();
95   fhDPhiN->Draw("same");
96
97   // pos/neg z
98   c2->cd(2);
99   c2->GetPad(2)->SetLogy();
100
101   fhDPhiZP = (TH1F*) chist1->FindObject("fhDPhiPZ");
102   fhDPhiZN = (TH1F*) chist1->FindObject("fhDPhiNZ");
103   fhDPhiBA = (TH1F*) chist1->FindObject("fhDPhi_Bad");
104   fhDPhiZP->SetLineColor(2);
105   fhDPhiZN->SetLineColor(4);
106   fhDPhiBA->SetLineColor(6);
107
108   fhDPhiZP->SetXTitle("#Delta#phi [rad]");
109   fhDPhiZP->Draw();
110   fhDPhiZN->Draw("same");
111   //  fhDPhiBA->Draw("same");
112
113     
114   // delta theta
115   // pos/neg charge
116   c2->cd(3);
117   c2->GetPad(3)->SetLogy();
118   fhDThetaP = (TH1F*) chist1->FindObject("fhDThetaPC");
119   fhDThetaN = (TH1F*) chist1->FindObject("fhDThetaNC");
120   fhDThetaP->SetLineColor(2);
121   fhDThetaN->SetLineColor(4);
122  
123
124   fhDThetaP->SetXTitle("#Delta#theta [rad]");
125   fhDThetaP->Draw();
126   fhDThetaN->Draw("same");
127
128   // pos/neg z
129   c2->cd(4);
130   c2->GetPad(4)->SetLogy();
131
132   fhDThetaZP = (TH1F*) chist1->FindObject("fhDThetaPZ");
133   fhDThetaZN = (TH1F*) chist1->FindObject("fhDThetaNZ");
134   fhDThetaBA = (TH1F*) chist1->FindObject("fhDTheta_Bad");
135   fhDThetaZP->SetLineColor(2);
136   fhDThetaZN->SetLineColor(4);
137   fhDThetaBA->SetLineColor(6);
138   fhDThetaZP->SetXTitle("#Delta#theta [rad]");
139   fhDThetaZP->Draw();
140
141   fhDThetaZN->Draw("same");
142   //    fhDThetaBA->Draw("same");
143
144     
145   // delta Pt
146   TCanvas* c3 = new TCanvas("c3", "#Delta p_{T}", 10, 10, 1100, 800);
147   c3->Divide(2,2);
148   // pos/neg charge
149   c3->cd(1);
150   c3->GetPad(1)->SetLogy();
151   fhDPtP = (TH1F*) chist1->FindObject("fhDPtPC");
152   fhDPtN = (TH1F*) chist1->FindObject("fhDPtNC");
153   fhDPtP->SetLineColor(2);
154   fhDPtN->SetLineColor(4);
155     
156   fhDPtP->Draw();
157   fhDPtN->Draw("same");
158
159   // pos/neg z
160   c3->cd(2);
161   c3->GetPad(2)->SetLogy();
162
163   fhDPtZP = (TH1F*) chist1->FindObject("fhDPtPZ");
164   fhDPtZN = (TH1F*) chist1->FindObject("fhDPtNZ");
165   fhDPtZP->SetLineColor(2);
166   fhDPtZN->SetLineColor(4);
167   fhDPtZP->Draw();
168   fhDPtZN->Draw("same");
169
170   c3->cd(3);
171
172   fpDPtP = (TH1F*) chist1->FindObject("fpDPtPC");
173   fpDPtN = (TH1F*) chist1->FindObject("fpDPtNC");
174   fpDPtP->SetLineColor(2);
175   fpDPtN->SetLineColor(4);
176   fpDPtP->Draw();
177   fpDPtN->Draw("same");
178
179   c3->cd(4);
180
181   fpDPtZP = (TH1F*) chist1->FindObject("fpDPtPZ");
182   fpDPtZN = (TH1F*) chist1->FindObject("fpDPtNZ");
183   fpDPtZP->SetLineColor(2);
184   fpDPtZN->SetLineColor(4);
185   fpDPtZP->Draw();
186   fpDPtZN->Draw("same");
187     
188
189   // dZ
190   TCanvas* c4 = new TCanvas("c4", "#Delta Z", 10, 10, 1100, 800);
191   c4->Divide(2,2);
192   // pos/neg charge
193   c4->cd(1);
194   c4->GetPad(1)->SetLogy();
195   fhDZP = (TH1F*) chist1->FindObject("fhDZPC");
196   fhDZN = (TH1F*) chist1->FindObject("fhDZNC");
197   fhDZP->SetLineColor(2);
198   fhDZN->SetLineColor(4);
199     
200   fhDZP->Draw();
201   fhDZN->Draw("same");
202   
203   // pos/neg z
204   c4->cd(2);
205   c4->GetPad(2)->SetLogy();
206
207   fhDZZP = (TH1F*) chist1->FindObject("fhDZPZ");
208   fhDZZN = (TH1F*) chist1->FindObject("fhDZNZ");
209   fhDZBA = (TH1F*) chist1->FindObject("fhDZ_Bad");
210
211   fhDZZP->SetLineColor(2);
212   fhDZZN->SetLineColor(4);
213   fhDZBA->SetLineColor(6);
214   
215   fhDZZP->Draw();
216   fhDZZN->Draw("same");
217   fhDZBA->Draw("same");
218
219   // dX
220   // pos/neg charge
221   c4->cd(3);
222   c4->GetPad(3)->SetLogy();
223   fhDXP = (TH1F*) chist1->FindObject("fhDXPC");
224   fhDXN = (TH1F*) chist1->FindObject("fhDXNC");
225   fhDXP->SetLineColor(2);
226   fhDXN->SetLineColor(4);
227     
228   fhDXP->Draw();
229   fhDXN->Draw("same");
230
231   // pos/neg z
232   c4->cd(4);
233   c4->GetPad(4)->SetLogy();
234
235   fhDXZP = (TH1F*) chist1->FindObject("fhDXPZ");
236   fhDXZN = (TH1F*) chist1->FindObject("fhDXNZ");
237   fhDXBA = (TH1F*) chist1->FindObject("fhDX_Bad");
238
239   fhDXZP->SetLineColor(2);
240   fhDXZN->SetLineColor(4);
241   fhDXBA->SetLineColor(6);
242
243   fhDXZP->Draw();
244   fhDXZN->Draw("same");
245   fhDXBA->Draw("same");
246
247   // dY
248   TCanvas* c4a = new TCanvas("c4a", "#Delta Y", 10, 10, 1100, 800);
249   c4a->Divide(2,2);
250   // pos/neg charge
251   c4a->cd(1);
252   c4a->GetPad(1)->SetLogy();
253   fhDYP = (TH1F*) chist1->FindObject("fhDYPC");
254   fhDYN = (TH1F*) chist1->FindObject("fhDYNC");
255   fhDYP->SetLineColor(2);
256   fhDYN->SetLineColor(4);
257   
258   fhDYP->Draw();
259   fhDYN->Draw("same");
260
261   // pos/neg z
262   c4a->cd(2);
263   c4a->GetPad(2)->SetLogy();
264
265   fhDYZP = (TH1F*) chist1->FindObject("fhDYPZ");
266   fhDYZN = (TH1F*) chist1->FindObject("fhDYNZ");
267   fhDYBA = (TH1F*) chist1->FindObject("fhDY_Bad");
268   
269   fhDYZP->SetLineColor(2);
270   fhDYZN->SetLineColor(4);
271   fhDYBA->SetLineColor(6);
272
273   fhDYZP->Draw();
274   fhDYZN->Draw("same");
275   fhDYBA->Draw("same");
276
277   // delta Pt
278   TCanvas* c5 = new TCanvas("c5", "#Delta p_{T} (n-sigma)", 10, 10, 1100, 800);
279   c5->Divide(2,2);
280   c5->cd(1);
281
282   fpDPtSP = (TH1F*) chist1->FindObject("fpDPtSPC");
283   fpDPtSN = (TH1F*) chist1->FindObject("fpDPtSNC");
284   fpDPtSP->SetLineColor(2);
285   fpDPtSN->SetLineColor(4);
286   fpDPtSP->Draw();
287   fpDPtSN->Draw("same");
288
289
290   c5->cd(2);
291
292   fpDPtSPZ = (TH1F*) chist1->FindObject("fpDPtSPZ");
293   fpDPtSNZ = (TH1F*) chist1->FindObject("fpDPtSNZ");
294   fpDPtSPZ->SetLineColor(2);
295   fpDPtSNZ->SetLineColor(4);
296   fpDPtSPZ->Draw();
297   fpDPtSNZ->Draw("same");
298
299   TCanvas* c6 = new TCanvas("c6", "Dz vs z", 10, 10, 1100, 800);
300   fhDZvsZ = (TH2F*) chist1->FindObject("fhDZvsZ");
301   fhDZvsZ->SetXTitle("z_{in} * sign(z_{in}) * sign(z_{out}) [cm]");
302   fhDZvsZ->SetYTitle("#DeltaZ [cm]");
303
304   gStyle->SetPalette(1);
305     
306   fhDZvsZ->Draw("colz");
307 }
308