]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/macros/plotAnalysisTaskITSTPCalignment.C
dont process if detector container not present in the qa file to avoid overwriting...
[u/mrichter/AliRoot.git] / PWGPP / macros / plotAnalysisTaskITSTPCalignment.C
1 void plotAnalysisTaskITSTPCalignment(const char* option = "b")
2 {
3   gStyle->SetCanvasBorderMode(0);
4   gStyle->SetPadBorderMode(0);
5   gStyle->SetFrameBorderMode(0);
6   gStyle->SetCanvasColor(0);
7   gStyle->SetHistFillColor(17);
8
9   TString optionstr(option);
10   gROOT->LoadMacro("AliRelAlignerKalmanArray.cxx++");
11   TFile f("outputITSTPCalignment.root");
12
13   //////////////////////////////////////////////////////////////////////////////////////////////////
14   AliRelAlignerKalmanArray* fArray = dynamic_cast<AliRelAlignerKalmanArray*>(f.Get("outputArrayITSsa"));
15   if (!fArray)
16   {
17     printf("fArray cannot be read!\n");
18     return;
19   }
20   else
21   {
22     TCanvas* c1 = new TCanvas("c1","psi in time");
23     fArray->MakeGraph(0)->Draw("A*");
24     c1->SaveAs("graphpsi.eps");
25
26     TCanvas* c2 = new TCanvas("c2","theta in time");
27     fArray->MakeGraph(1)->Draw("A*");
28     c2->SaveAs("graphtheta.eps");
29
30     TCanvas* c3 = new TCanvas("c3","phi in time");
31     fArray->MakeGraph(2)->Draw("A*");
32     c3->SaveAs("graphphi.eps");
33
34     TCanvas* c4 = new TCanvas("c4","x in time");
35     fArray->MakeGraph(3)->Draw("A*");
36     c4->SaveAs("graphx.eps");
37
38     TCanvas* c5 = new TCanvas("c5","y in time");
39     fArray->MakeGraph(4)->Draw("A*");
40     c5->SaveAs("graphy.eps");
41
42     TCanvas* c6 = new TCanvas("c6","z in time");
43     fArray->MakeGraph(5)->Draw("A*");
44     c6->SaveAs("graphz.eps");
45
46     TCanvas* c7 = new TCanvas("c7","TPC vd correction in time");
47     fArray->MakeGraph(6)->Draw("A*");
48     c7->SaveAs("graphvd.eps");
49
50     TCanvas* c8 = new TCanvas("c8","TPC t0 correction in time");
51     fArray->MakeGraph(7)->Draw("A*");
52     c8->SaveAs("grapht0.eps");
53
54     TCanvas* c9 = new TCanvas("c9","TPC dv/dy in time");
55     fArray->MakeGraph(8)->Draw("A*");
56     c9->SaveAs("graphdvdy.eps");
57   }
58   
59   //////////////////////////////////////////////////////////////////////////////////////////////////
60   TList* fList = dynamic_cast<TList*>(f.Get("outputList"));
61   TList* pList = NULL;
62
63   TH1F* pMatchingEfficiency = dynamic_cast<TH1F*>(fList->At(3));
64   TCanvas* canvasMEff = new TCanvas();
65   pMatchingEfficiency->DrawCopy();
66   
67   
68   //------------------------------------------------------------------------------------
69   pList = dynamic_cast<TList*>(fList->At(0));
70   TH2F* pZYAResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(0));
71   TH2F* pZYCResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(1));
72   TH2F* pLPAResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(2));
73   TH2F* pLPCResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(3));
74   TH2F* pPhiYAResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(4));
75   TH2F* pPhiYCResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(5));
76   TH2F* pPhiZAResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(6));
77   TH2F* pPhiZCResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(7));
78   TH2F* pPtYAResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(8));
79   TH2F* pPtYCResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(9));
80   TH2F* pPtZAResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(10));
81   TH2F* pPtZCResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(11));
82   TH2F* pLowPtYAResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(12));
83   TH2F* pLowPtYCResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(13));
84   TH2F* pLowPtZAResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(14));
85   TH2F* pLowPtZCResidualsHistBpos = dynamic_cast<TH2F*>(pList->At(15));
86   
87   TH1D* resycBpos = pZYCResidualsHistBpos->ProjectionY();
88   resycBpos->SetTitle("r\\phi residual distribution side C (z<0), Bpos");
89   TH1D* reszcBpos = pZYCResidualsHistBpos->ProjectionX();
90   reszcBpos->SetTitle("z residual distribution side C (z<0), Bpos");
91   TH1D* respcBpos = pLPCResidualsHistBpos->ProjectionY();
92   respcBpos->SetTitle("sin(\\phi) residual distribution side C (z<0), Bpos");
93   TH1D* reslcBpos = pLPCResidualsHistBpos->ProjectionX();
94   reslcBpos->SetTitle("tan(\\lambda) residual distribution side C (z<0), Bpos");
95   TProfile* profphiycBpos = pPhiYCResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
96   profphiycBpos->SetTitle("\\phi profile of r\\phi residuals side C (z<0), Bpos");
97   profphiycBpos->SetYTitle("\\deltar\\phi [cm]");
98   TProfile* profphizcBpos = pPhiZCResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
99   profphizcBpos->SetTitle("\\phi profile of z residuals side C (z<0), Bpos");
100   profphizcBpos->SetYTitle("\\deltaz [cm]");
101   TProfile* profptycBpos = pPtYCResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
102   profptycBpos->SetTitle("pt profile of r\\phi residuals side C (z<0), Bpos");
103   profptycBpos->SetYTitle("\\deltar\\phi [cm]");
104   TProfile* profptzcBpos = pPtZCResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
105   profptzcBpos->SetTitle("pt profile of z residuals side C (z<0), Bpos");
106   profptzcBpos->SetYTitle("\\deltaz [cm]");
107   TProfile* proflowptycBpos = pLowPtYCResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
108   proflowptycBpos->SetTitle("pt profile of r\\phi residuals side C (z<0), Bpos");
109   proflowptycBpos->SetYTitle("\\deltar\\phi [cm]");
110   TProfile* proflowptzcBpos = pLowPtZCResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
111   proflowptzcBpos->SetTitle("pt profile of z residuals side C (z<0), Bpos");
112   proflowptzcBpos->SetYTitle("\\deltaz [cm]");
113
114   TH1D* resyaBpos = pZYAResidualsHistBpos->ProjectionY();
115   resyaBpos->SetTitle("r\\phi residual distribution side A (z>0), Bpos");
116   TH1D* reszaBpos = pZYAResidualsHistBpos->ProjectionX();
117   reszaBpos->SetTitle("z residual distribution side A (z>0), Bpos");
118   TH1D* respaBpos = pLPAResidualsHistBpos->ProjectionY();
119   respaBpos->SetTitle("sin(\\phi) residual distribution side A (z>0), Bpos");
120   TH1D* reslaBpos = pLPAResidualsHistBpos->ProjectionX();
121   reslaBpos->SetTitle("tan(\\lambda) residual distribution side A (z>0), Bpos");
122   TProfile* profphiyaBpos = pPhiYAResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
123   profphiyaBpos->SetTitle("\\phi profile of r\\phi residuals side A (z>0), Bpos");
124   profphiyaBpos->SetYTitle("\\deltar\\phi [cm]");
125   TProfile* profphizaBpos = pPhiZAResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
126   profphizaBpos->SetTitle("\\phi profile of z residuals side A (z>0), Bpos");
127   profphizaBpos->SetYTitle("\\deltaz [cm]");
128   TProfile* profptyaBpos = pPtYAResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
129   profptyaBpos->SetTitle("pt profile of r\\phi residuals side A (z>0), Bpos");
130   profptyaBpos->SetYTitle("\\deltar\\phi [cm]");
131   TProfile* profptzaBpos = pPtZAResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
132   profptzaBpos->SetTitle("pt profile of z residuals side A (z>0), Bpos");
133   profptzaBpos->SetYTitle("\\deltaz [cm]");
134   TProfile* proflowptyaBpos = pLowPtYAResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
135   proflowptyaBpos->SetTitle("pt profile of r\\phi residuals side A (z>0), Bpos");
136   proflowptyaBpos->SetYTitle("\\deltar\\phi [cm]");
137   TProfile* proflowptzaBpos = pLowPtZAResidualsHistBpos->ProfileX("_pfx",1,-1,"s");
138   proflowptzaBpos->SetTitle("pt profile of z residuals side A (z>0), Bpos");
139   proflowptzaBpos->SetYTitle("\\deltaz [cm]");
140
141   if (pZYAResidualsHistBpos->GetEntries()>0)
142   {
143   TCanvas* c1Bpos = new TCanvas("c1Bpos","Residuals ZY 2D, Bpos",800,300);
144   c1Bpos->Divide(2,1);
145   c1Bpos->cd(1); pZYAResidualsHistBpos->DrawCopy("col");
146   c1Bpos->cd(2); pZYCResidualsHistBpos->DrawCopy("col");
147   c1Bpos->cd(0);
148   c1Bpos->SaveAs("residualsZY2D-Bpos.eps");
149   
150   TCanvas* c2Bpos = new TCanvas("c2Bpos","Residuals LP 2D, Bpos",800,300);
151   c2Bpos->Divide(2,1);
152   c2Bpos->cd(1); pLPAResidualsHistBpos->DrawCopy("col");
153   c2Bpos->cd(2); pLPCResidualsHistBpos->DrawCopy("col");
154   c2Bpos->cd(0);
155   c2Bpos->SaveAs("residualsLP2D-Bpos.eps");
156
157   TCanvas* c3Bpos = new TCanvas("c3Bpos","Residuals z 1D, Bpos",800,300);
158   c3Bpos->Divide(2,1);
159   c3Bpos->cd(1); reszaBpos->DrawCopy(); 
160   c3Bpos->cd(2); reszcBpos->DrawCopy(); 
161   c3Bpos->cd(0);
162   c3Bpos->SaveAs("residualsZ-Bpos.eps");
163
164   TCanvas* c4Bpos = new TCanvas("c4Bpos","Residuals y 1D, Bpos",800,300);
165   c4Bpos->Divide(2,1);
166   c4Bpos->cd(1); resyaBpos->DrawCopy();
167   c4Bpos->cd(2); resycBpos->DrawCopy();
168   c4Bpos->cd(0);
169   c4Bpos->SaveAs("residualsY-Bpos.eps");
170
171   TCanvas* c5Bpos = new TCanvas("c5Bpos","Residuals phi 1D, Bpos",800,300);
172   c5Bpos->Divide(2,1);
173   c5Bpos->cd(1); respaBpos->DrawCopy(); 
174   c5Bpos->cd(2); respcBpos->DrawCopy(); 
175   c5Bpos->cd(0);
176   c5Bpos->SaveAs("residualsPhi-Bpos.eps");
177
178   TCanvas* c6Bpos = new TCanvas("c6Bpos","Residuals lambda 1D, Bpos",800,300);
179   c6Bpos->Divide(2,1);
180   c6Bpos->cd(1); reslaBpos->DrawCopy();
181   c6Bpos->cd(2); reslcBpos->DrawCopy();
182   c6Bpos->cd(0);
183   c6Bpos->SaveAs("residualsLambda-Bpos.eps");
184
185   TCanvas* c7Bpos = new TCanvas("c7Bpos","Profiles z in phi, Bpos",800,300);
186   c7Bpos->Divide(2,1);
187   c7Bpos->cd(1); profphizaBpos->DrawCopy();
188   c7Bpos->cd(2); profphizcBpos->DrawCopy();
189   c7Bpos->cd(0);
190   c7Bpos->SaveAs("residualsProfilePhiZ-Bpos.eps");
191
192   TCanvas* c8Bpos = new TCanvas("c8Bpos","Profiles y in phi, Bpos",800,300);
193   c8Bpos->Divide(2,1);
194   c8Bpos->cd(1); profphiyaBpos->DrawCopy();
195   c8Bpos->cd(2); profphiycBpos->DrawCopy();
196   c8Bpos->cd(0);
197   c8Bpos->SaveAs("residualsProfilePhiY-Bpos.eps");
198
199   TCanvas* c9Bpos = new TCanvas("c9Bpos", "Residuals Phi-Z 2D, Bpos",800,300);
200   c9Bpos->Divide(2,1);
201   c9Bpos->cd(1); pPhiZAResidualsHistBpos->DrawCopy("col");
202   c9Bpos->cd(2); pPhiZCResidualsHistBpos->DrawCopy("col");
203   c9Bpos->cd(0); 
204   c9Bpos->SaveAs("residualsPhiZ2D-Bpos.eps");
205
206   TCanvas* c1Bpos0 = new TCanvas("c1Bpos0", "Residuals Phi-Y 2D, Bpos",800,300);
207   c1Bpos0->Divide(2,1);
208   c1Bpos0->cd(1); pPhiYAResidualsHistBpos->DrawCopy("col");
209   c1Bpos0->cd(2); pPhiYCResidualsHistBpos->DrawCopy("col");
210   c1Bpos0->cd(0); 
211   c1Bpos0->SaveAs("residualsPhiY2D-Bpos.eps");
212
213   TCanvas* c11Bpos = new TCanvas("c11Bpos", "Residuals Pt-Z 2D, Bpos",800,300);
214   c11Bpos->Divide(2,1);
215   c11Bpos->cd(1); pPtZAResidualsHistBpos->DrawCopy("col");
216   c11Bpos->cd(2); pPtZCResidualsHistBpos->DrawCopy("col");
217   c11Bpos->cd(0);
218   c11Bpos->SaveAs("residualsPtZ2D-Bpos.eps");
219
220   TCanvas* c12Bpos = new TCanvas("c12Bpos", "Residuals Pt-Y 2D, Bpos",800,300);
221   c12Bpos->Divide(2,1);
222   c12Bpos->cd(1); pPtYAResidualsHistBpos->DrawCopy("col");
223   c12Bpos->cd(2); pPtYCResidualsHistBpos->DrawCopy("col");
224   c12Bpos->cd(0);
225   c12Bpos->SaveAs("residualsPtY2D-Bpos.eps");
226
227   TCanvas* c13Bpos = new TCanvas("c13Bpos","Profiles Pt-Z, Bpos",800,300);
228   c13Bpos->Divide(2,1);
229   c13Bpos->cd(1); profptzaBpos->DrawCopy();
230   c13Bpos->cd(2); profptzcBpos->DrawCopy();
231   c13Bpos->cd(0);
232   c13Bpos->SaveAs("residualsProfilePtZ-Bpos.eps");
233
234   TCanvas* c14Bpos = new TCanvas("c14Bpos","Profiles Pt-Y, Bpos",800,300);
235   c14Bpos->Divide(2,1);
236   c14Bpos->cd(1); profptyaBpos->DrawCopy();
237   c14Bpos->cd(2); profptycBpos->DrawCopy();
238   c14Bpos->cd(0);
239   c14Bpos->SaveAs("residualsProfilePtY-Bpos.eps");
240
241   TCanvas* c15Bpos = new TCanvas("c15Bpos", "Residuals low Pt-Z 2D, Bpos",800,300);
242   c15Bpos->Divide(2,1);
243   c15Bpos->cd(1); pLowPtZAResidualsHistBpos->DrawCopy("col");
244   c15Bpos->cd(2); pLowPtZCResidualsHistBpos->DrawCopy("col");
245   c15Bpos->cd(0);
246   c15Bpos->SaveAs("residualsLowPtZ2D-Bpos.eps");
247
248   TCanvas* c16Bpos = new TCanvas("c16Bpos", "Residuals in low PtY 2D, Bpos",800,300);
249   c16Bpos->Divide(2,1);
250   c16Bpos->cd(1); pLowPtYAResidualsHistBpos->DrawCopy("col");
251   c16Bpos->cd(2); pLowPtYCResidualsHistBpos->DrawCopy("col");
252   c16Bpos->cd(0);
253   c16Bpos->SaveAs("residualsLowPtY2D-Bpos.eps");
254
255   TCanvas* c17Bpos = new TCanvas("c17Bpos","Profiles low Pt-Z, Bpos",800,300);
256   c17Bpos->Divide(2,1);
257   c17Bpos->cd(1); proflowptzaBpos->DrawCopy();
258   c17Bpos->cd(2); proflowptzcBpos->DrawCopy();
259   c17Bpos->cd(0);
260   c17Bpos->SaveAs("residualsProfileLowPtZ-Bpos.eps");
261
262   TCanvas* c18Bpos = new TCanvas("c18Bpos","Profiles low Pt-Y, Bpos",800,300);
263   c18Bpos->Divide(2,1);
264   c18Bpos->cd(1); proflowptyaBpos->DrawCopy();
265   c18Bpos->cd(2); proflowptycBpos->DrawCopy();
266   c18Bpos->cd(0);
267   c18Bpos->SaveAs("residualsProfileLowPtY-Bpos.eps");
268   }
269
270   //------------------------------------------------------------------------------------
271   pList = dynamic_cast<TList*>(fList->At(1));
272   TH2F* pZYAResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(0));
273   TH2F* pZYCResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(1));
274   TH2F* pLPAResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(2));
275   TH2F* pLPCResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(3));
276   TH2F* pPhiYAResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(4));
277   TH2F* pPhiYCResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(5));
278   TH2F* pPhiZAResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(6));
279   TH2F* pPhiZCResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(7));
280   TH2F* pPtYAResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(8));
281   TH2F* pPtYCResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(9));
282   TH2F* pPtZAResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(10));
283   TH2F* pPtZCResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(11));
284   TH2F* pLowPtYAResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(12));
285   TH2F* pLowPtYCResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(13));
286   TH2F* pLowPtZAResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(14));
287   TH2F* pLowPtZCResidualsHistBneg = dynamic_cast<TH2F*>(pList->At(15));
288   
289   TH1D* resycBneg = pZYCResidualsHistBneg->ProjectionY();
290   resycBneg->SetTitle("r\\phi residual distribution side C (z<0), Bneg");
291   TH1D* reszcBneg = pZYCResidualsHistBneg->ProjectionX();
292   reszcBneg->SetTitle("z residual distribution side C (z<0), Bneg");
293   TH1D* respcBneg = pLPCResidualsHistBneg->ProjectionY();
294   respcBneg->SetTitle("sin(\\phi) residual distribution side C (z<0), Bneg");
295   TH1D* reslcBneg = pLPCResidualsHistBneg->ProjectionX();
296   reslcBneg->SetTitle("tan(\\lambda) residual distribution side C (z<0), Bneg");
297   TProfile* profphiycBneg = pPhiYCResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
298   profphiycBneg->SetTitle("\\phi profile of r\\phi residuals side C (z<0), Bneg");
299   profphiycBneg->SetYTitle("\\deltar\\phi [cm]");
300   TProfile* profphizcBneg = pPhiZCResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
301   profphizcBneg->SetTitle("\\phi profile of z residuals side C (z<0), Bneg");
302   profphizcBneg->SetYTitle("\\deltaz [cm]");
303   TProfile* profptycBneg = pPtYCResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
304   profptycBneg->SetTitle("pt profile of r\\phi residuals side C (z<0), Bneg");
305   profptycBneg->SetYTitle("\\deltar\\phi [cm]");
306   TProfile* profptzcBneg = pPtZCResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
307   profptzcBneg->SetTitle("pt profile of z residuals side C (z<0), Bneg");
308   profptzcBneg->SetYTitle("\\deltaz [cm]");
309   TProfile* proflowptycBneg = pLowPtYCResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
310   proflowptycBneg->SetTitle("pt profile of r\\phi residuals side C (z<0), Bneg");
311   proflowptycBneg->SetYTitle("\\deltar\\phi [cm]");
312   TProfile* proflowptzcBneg = pLowPtZCResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
313   proflowptzcBneg->SetTitle("pt profile of z residuals side C (z<0), Bneg");
314   proflowptzcBneg->SetYTitle("\\deltaz [cm]");
315
316   TH1D* resyaBneg = pZYAResidualsHistBneg->ProjectionY();
317   resyaBneg->SetTitle("r\\phi residual distribution side A (z>0), Bneg");
318   TH1D* reszaBneg = pZYAResidualsHistBneg->ProjectionX();
319   reszaBneg->SetTitle("z residual distribution side A (z>0), Bneg");
320   TH1D* respaBneg = pLPAResidualsHistBneg->ProjectionY();
321   respaBneg->SetTitle("sin(\\phi) residual distribution side A (z>0), Bneg");
322   TH1D* reslaBneg = pLPAResidualsHistBneg->ProjectionX();
323   reslaBneg->SetTitle("tan(\\lambda) residual distribution side A (z>0), Bneg");
324   TProfile* profphiyaBneg = pPhiYAResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
325   profphiyaBneg->SetTitle("\\phi profile of r\\phi residuals side A (z>0), Bneg");
326   profphiyaBneg->SetYTitle("\\deltar\\phi [cm]");
327   TProfile* profphizaBneg = pPhiZAResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
328   profphizaBneg->SetTitle("\\phi profile of z residuals side A (z>0), Bneg");
329   profphizaBneg->SetYTitle("\\deltaz [cm]");
330   TProfile* profptyaBneg = pPtYAResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
331   profptyaBneg->SetTitle("pt profile of r\\phi residuals side A (z>0), Bneg");
332   profptyaBneg->SetYTitle("\\deltar\\phi [cm]");
333   TProfile* profptzaBneg = pPtZAResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
334   profptzaBneg->SetTitle("pt profile of z residuals side A (z>0), Bneg");
335   profptzaBneg->SetYTitle("\\deltaz [cm]");
336   TProfile* proflowptyaBneg = pLowPtYAResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
337   proflowptyaBneg->SetTitle("pt profile of r\\phi residuals side A (z>0), Bneg");
338   proflowptyaBneg->SetYTitle("\\deltar\\phi [cm]");
339   TProfile* proflowptzaBneg = pLowPtZAResidualsHistBneg->ProfileX("_pfx",1,-1,"s");
340   proflowptzaBneg->SetTitle("pt profile of z residuals side A (z>0), Bneg");
341   proflowptzaBneg->SetYTitle("\\deltaz [cm]");
342
343   if (pZYAResidualsHistBneg->GetEntries()>0)
344   {
345   TCanvas* c1Bneg = new TCanvas("c1Bneg","Residuals ZY 2D, Bneg",800,300);
346   c1Bneg->Divide(2,1);
347   c1Bneg->cd(1); pZYAResidualsHistBneg->DrawCopy("col");
348   c1Bneg->cd(2); pZYCResidualsHistBneg->DrawCopy("col");
349   c1Bneg->cd(0);
350   c1Bneg->SaveAs("residualsZY2D-Bneg.eps");
351   
352   TCanvas* c2Bneg = new TCanvas("c2Bneg","Residuals LP 2D, Bneg",800,300);
353   c2Bneg->Divide(2,1);
354   c2Bneg->cd(1); pLPAResidualsHistBneg->DrawCopy("col");
355   c2Bneg->cd(2); pLPCResidualsHistBneg->DrawCopy("col");
356   c2Bneg->cd(0);
357   c2Bneg->SaveAs("residualsLP2D-Bneg.eps");
358
359   TCanvas* c3Bneg = new TCanvas("c3Bneg","Residuals z 1D, Bneg",800,300);
360   c3Bneg->Divide(2,1);
361   c3Bneg->cd(1); reszaBneg->DrawCopy(); 
362   c3Bneg->cd(2); reszcBneg->DrawCopy(); 
363   c3Bneg->cd(0);
364   c3Bneg->SaveAs("residualsZ-Bneg.eps");
365
366   TCanvas* c4Bneg = new TCanvas("c4Bneg","Residuals y 1D, Bneg",800,300);
367   c4Bneg->Divide(2,1);
368   c4Bneg->cd(1); resyaBneg->DrawCopy();
369   c4Bneg->cd(2); resycBneg->DrawCopy();
370   c4Bneg->cd(0);
371   c4Bneg->SaveAs("residualsY-Bneg.eps");
372
373   TCanvas* c5Bneg = new TCanvas("c5Bneg","Residuals phi 1D, Bneg",800,300);
374   c5Bneg->Divide(2,1);
375   c5Bneg->cd(1); respaBneg->DrawCopy(); 
376   c5Bneg->cd(2); respcBneg->DrawCopy(); 
377   c5Bneg->cd(0);
378   c5Bneg->SaveAs("residualsPhi-Bneg.eps");
379
380   TCanvas* c6Bneg = new TCanvas("c6Bneg","Residuals lambda 1D, Bneg",800,300);
381   c6Bneg->Divide(2,1);
382   c6Bneg->cd(1); reslaBneg->DrawCopy();
383   c6Bneg->cd(2); reslcBneg->DrawCopy();
384   c6Bneg->cd(0);
385   c6Bneg->SaveAs("residualsLambda-Bneg.eps");
386
387   TCanvas* c7Bneg = new TCanvas("c7Bneg","Profiles z in phi, Bneg",800,300);
388   c7Bneg->Divide(2,1);
389   c7Bneg->cd(1); profphizaBneg->DrawCopy();
390   c7Bneg->cd(2); profphizcBneg->DrawCopy();
391   c7Bneg->cd(0);
392   c7Bneg->SaveAs("residualsProfilePhiZ-Bneg.eps");
393
394   TCanvas* c8Bneg = new TCanvas("c8Bneg","Profiles y in phi, Bneg",800,300);
395   c8Bneg->Divide(2,1);
396   c8Bneg->cd(1); profphiyaBneg->DrawCopy();
397   c8Bneg->cd(2); profphiycBneg->DrawCopy();
398   c8Bneg->cd(0);
399   c8Bneg->SaveAs("residualsProfilePhiY-Bneg.eps");
400
401   TCanvas* c9Bneg = new TCanvas("c9Bneg", "Residuals Phi-Z 2D, Bneg",800,300);
402   c9Bneg->Divide(2,1);
403   c9Bneg->cd(1); pPhiZAResidualsHistBneg->DrawCopy("col");
404   c9Bneg->cd(2); pPhiZCResidualsHistBneg->DrawCopy("col");
405   c9Bneg->cd(0); 
406   c9Bneg->SaveAs("residualsPhiZ2D-Bneg.eps");
407
408   TCanvas* c1Bneg0 = new TCanvas("c1Bneg0", "Residuals Phi-Y 2D, Bneg",800,300);
409   c1Bneg0->Divide(2,1);
410   c1Bneg0->cd(1); pPhiYAResidualsHistBneg->DrawCopy("col");
411   c1Bneg0->cd(2); pPhiYCResidualsHistBneg->DrawCopy("col");
412   c1Bneg0->cd(0); 
413   c1Bneg0->SaveAs("residualsPhiY2D-Bneg.eps");
414
415   TCanvas* c11Bneg = new TCanvas("c11Bneg", "Residuals Pt-Z 2D, Bneg",800,300);
416   c11Bneg->Divide(2,1);
417   c11Bneg->cd(1); pPtZAResidualsHistBneg->DrawCopy("col");
418   c11Bneg->cd(2); pPtZCResidualsHistBneg->DrawCopy("col");
419   c11Bneg->cd(0);
420   c11Bneg->SaveAs("residualsPtZ2D-Bneg.eps");
421
422   TCanvas* c12Bneg = new TCanvas("c12Bneg", "Residuals Pt-Y 2D, Bneg",800,300);
423   c12Bneg->Divide(2,1);
424   c12Bneg->cd(1); pPtYAResidualsHistBneg->DrawCopy("col");
425   c12Bneg->cd(2); pPtYCResidualsHistBneg->DrawCopy("col");
426   c12Bneg->cd(0);
427   c12Bneg->SaveAs("residualsPtY2D-Bneg.eps");
428
429   TCanvas* c13Bneg = new TCanvas("c13Bneg","Profiles Pt-Z, Bneg",800,300);
430   c13Bneg->Divide(2,1);
431   c13Bneg->cd(1); profptzaBneg->DrawCopy();
432   c13Bneg->cd(2); profptzcBneg->DrawCopy();
433   c13Bneg->cd(0);
434   c13Bneg->SaveAs("residualsProfilePtZ-Bneg.eps");
435
436   TCanvas* c14Bneg = new TCanvas("c14Bneg","Profiles Pt-Y, Bneg",800,300);
437   c14Bneg->Divide(2,1);
438   c14Bneg->cd(1); profptyaBneg->DrawCopy();
439   c14Bneg->cd(2); profptycBneg->DrawCopy();
440   c14Bneg->cd(0);
441   c14Bneg->SaveAs("residualsProfilePtY-Bneg.eps");
442
443   TCanvas* c15Bneg = new TCanvas("c15Bneg", "Residuals low Pt-Z 2D, Bneg",800,300);
444   c15Bneg->Divide(2,1);
445   c15Bneg->cd(1); pLowPtZAResidualsHistBneg->DrawCopy("col");
446   c15Bneg->cd(2); pLowPtZCResidualsHistBneg->DrawCopy("col");
447   c15Bneg->cd(0);
448   c15Bneg->SaveAs("residualsLowPtZ2D-Bneg.eps");
449
450   TCanvas* c16Bneg = new TCanvas("c16Bneg", "Residuals in low PtY 2D, Bneg",800,300);
451   c16Bneg->Divide(2,1);
452   c16Bneg->cd(1); pLowPtYAResidualsHistBneg->DrawCopy("col");
453   c16Bneg->cd(2); pLowPtYCResidualsHistBneg->DrawCopy("col");
454   c16Bneg->cd(0);
455   c16Bneg->SaveAs("residualsLowPtY2D-Bneg.eps");
456
457   TCanvas* c17Bneg = new TCanvas("c17Bneg","Profiles low Pt-Z, Bneg",800,300);
458   c17Bneg->Divide(2,1);
459   c17Bneg->cd(1); proflowptzaBneg->DrawCopy();
460   c17Bneg->cd(2); proflowptzcBneg->DrawCopy();
461   c17Bneg->cd(0);
462   c17Bneg->SaveAs("residualsProfileLowPtZ-Bneg.eps");
463
464   TCanvas* c18Bneg = new TCanvas("c18Bneg","Profiles low Pt-Y, Bneg",800,300);
465   c18Bneg->Divide(2,1);
466   c18Bneg->cd(1); proflowptyaBneg->DrawCopy();
467   c18Bneg->cd(2); proflowptycBneg->DrawCopy();
468   c18Bneg->cd(0);
469   c18Bneg->SaveAs("residualsProfileLowPtY-Bneg.eps");
470   }
471
472   //------------------------------------------------------------------------------------
473   pList = dynamic_cast<TList*>(fList->At(2));
474   TH2F* pZYAResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(0));
475   TH2F* pZYCResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(1));
476   TH2F* pLPAResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(2));
477   TH2F* pLPCResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(3));
478   TH2F* pPhiYAResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(4));
479   TH2F* pPhiYCResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(5));
480   TH2F* pPhiZAResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(6));
481   TH2F* pPhiZCResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(7));
482   TH2F* pPtYAResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(8));
483   TH2F* pPtYCResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(9));
484   TH2F* pPtZAResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(10));
485   TH2F* pPtZCResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(11));
486   TH2F* pLowPtYAResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(12));
487   TH2F* pLowPtYCResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(13));
488   TH2F* pLowPtZAResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(14));
489   TH2F* pLowPtZCResidualsHistBnil = dynamic_cast<TH2F*>(pList->At(15));
490   
491   TH1D* resycBnil = pZYCResidualsHistBnil->ProjectionY();
492   resycBnil->SetTitle("r\\phi residual distribution side C (z<0), Bnil");
493   TH1D* reszcBnil = pZYCResidualsHistBnil->ProjectionX();
494   reszcBnil->SetTitle("z residual distribution side C (z<0), Bnil");
495   TH1D* respcBnil = pLPCResidualsHistBnil->ProjectionY();
496   respcBnil->SetTitle("sin(\\phi) residual distribution side C (z<0), Bnil");
497   TH1D* reslcBnil = pLPCResidualsHistBnil->ProjectionX();
498   reslcBnil->SetTitle("tan(\\lambda) residual distribution side C (z<0), Bnil");
499   TProfile* profphiycBnil = pPhiYCResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
500   profphiycBnil->SetTitle("\\phi profile of r\\phi residuals side C (z<0), Bnil");
501   profphiycBnil->SetYTitle("\\deltar\\phi [cm]");
502   TProfile* profphizcBnil = pPhiZCResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
503   profphizcBnil->SetTitle("\\phi profile of z residuals side C (z<0), Bnil");
504   profphizcBnil->SetYTitle("\\deltaz [cm]");
505   TProfile* profptycBnil = pPtYCResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
506   profptycBnil->SetTitle("pt profile of r\\phi residuals side C (z<0), Bnil");
507   profptycBnil->SetYTitle("\\deltar\\phi [cm]");
508   TProfile* profptzcBnil = pPtZCResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
509   profptzcBnil->SetTitle("pt profile of z residuals side C (z<0), Bnil");
510   profptzcBnil->SetYTitle("\\deltaz [cm]");
511   TProfile* proflowptycBnil = pLowPtYCResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
512   proflowptycBnil->SetTitle("pt profile of r\\phi residuals side C (z<0), Bnil");
513   proflowptycBnil->SetYTitle("\\deltar\\phi [cm]");
514   TProfile* proflowptzcBnil = pLowPtZCResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
515   proflowptzcBnil->SetTitle("pt profile of z residuals side C (z<0), Bnil");
516   proflowptzcBnil->SetYTitle("\\deltaz [cm]");
517
518   TH1D* resyaBnil = pZYAResidualsHistBnil->ProjectionY();
519   resyaBnil->SetTitle("r\\phi residual distribution side A (z>0), Bnil");
520   TH1D* reszaBnil = pZYAResidualsHistBnil->ProjectionX();
521   reszaBnil->SetTitle("z residual distribution side A (z>0), Bnil");
522   TH1D* respaBnil = pLPAResidualsHistBnil->ProjectionY();
523   respaBnil->SetTitle("sin(\\phi) residual distribution side A (z>0), Bnil");
524   TH1D* reslaBnil = pLPAResidualsHistBnil->ProjectionX();
525   reslaBnil->SetTitle("tan(\\lambda) residual distribution side A (z>0), Bnil");
526   TProfile* profphiyaBnil = pPhiYAResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
527   profphiyaBnil->SetTitle("\\phi profile of r\\phi residuals side A (z>0), Bnil");
528   profphiyaBnil->SetYTitle("\\deltar\\phi [cm]");
529   TProfile* profphizaBnil = pPhiZAResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
530   profphizaBnil->SetTitle("\\phi profile of z residuals side A (z>0), Bnil");
531   profphizaBnil->SetYTitle("\\deltaz [cm]");
532   TProfile* profptyaBnil = pPtYAResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
533   profptyaBnil->SetTitle("pt profile of r\\phi residuals side A (z>0), Bnil");
534   profptyaBnil->SetYTitle("\\deltar\\phi [cm]");
535   TProfile* profptzaBnil = pPtZAResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
536   profptzaBnil->SetTitle("pt profile of z residuals side A (z>0), Bnil");
537   profptzaBnil->SetYTitle("\\deltaz [cm]");
538   TProfile* proflowptyaBnil = pLowPtYAResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
539   proflowptyaBnil->SetTitle("pt profile of r\\phi residuals side A (z>0), Bnil");
540   proflowptyaBnil->SetYTitle("\\deltar\\phi [cm]");
541   TProfile* proflowptzaBnil = pLowPtZAResidualsHistBnil->ProfileX("_pfx",1,-1,"s");
542   proflowptzaBnil->SetTitle("pt profile of z residuals side A (z>0), Bnil");
543   proflowptzaBnil->SetYTitle("\\deltaz [cm]");
544
545   if (pZYAResidualsHistBnil->GetEntries()>0)
546   {
547   TCanvas* c1Bnil = new TCanvas("c1Bnil","Residuals ZY 2D, Bnil",800,300);
548   c1Bnil->Divide(2,1);
549   c1Bnil->cd(1); pZYAResidualsHistBnil->DrawCopy("col");
550   c1Bnil->cd(2); pZYCResidualsHistBnil->DrawCopy("col");
551   c1Bnil->cd(0);
552   c1Bnil->SaveAs("residualsZY2D-Bnil.eps");
553   
554   TCanvas* c2Bnil = new TCanvas("c2Bnil","Residuals LP 2D, Bnil",800,300);
555   c2Bnil->Divide(2,1);
556   c2Bnil->cd(1); pLPAResidualsHistBnil->DrawCopy("col");
557   c2Bnil->cd(2); pLPCResidualsHistBnil->DrawCopy("col");
558   c2Bnil->cd(0);
559   c2Bnil->SaveAs("residualsLP2D-Bnil.eps");
560
561   TCanvas* c3Bnil = new TCanvas("c3Bnil","Residuals z 1D, Bnil",800,300);
562   c3Bnil->Divide(2,1);
563   c3Bnil->cd(1); reszaBnil->DrawCopy(); 
564   c3Bnil->cd(2); reszcBnil->DrawCopy(); 
565   c3Bnil->cd(0);
566   c3Bnil->SaveAs("residualsZ-Bnil.eps");
567
568   TCanvas* c4Bnil = new TCanvas("c4Bnil","Residuals y 1D, Bnil",800,300);
569   c4Bnil->Divide(2,1);
570   c4Bnil->cd(1); resyaBnil->DrawCopy();
571   c4Bnil->cd(2); resycBnil->DrawCopy();
572   c4Bnil->cd(0);
573   c4Bnil->SaveAs("residualsY-Bnil.eps");
574
575   TCanvas* c5Bnil = new TCanvas("c5Bnil","Residuals phi 1D, Bnil",800,300);
576   c5Bnil->Divide(2,1);
577   c5Bnil->cd(1); respaBnil->DrawCopy(); 
578   c5Bnil->cd(2); respcBnil->DrawCopy(); 
579   c5Bnil->cd(0);
580   c5Bnil->SaveAs("residualsPhi-Bnil.eps");
581
582   TCanvas* c6Bnil = new TCanvas("c6Bnil","Residuals lambda 1D, Bnil",800,300);
583   c6Bnil->Divide(2,1);
584   c6Bnil->cd(1); reslaBnil->DrawCopy();
585   c6Bnil->cd(2); reslcBnil->DrawCopy();
586   c6Bnil->cd(0);
587   c6Bnil->SaveAs("residualsLambda-Bnil.eps");
588
589   TCanvas* c7Bnil = new TCanvas("c7Bnil","Profiles z in phi, Bnil",800,300);
590   c7Bnil->Divide(2,1);
591   c7Bnil->cd(1); profphizaBnil->DrawCopy();
592   c7Bnil->cd(2); profphizcBnil->DrawCopy();
593   c7Bnil->cd(0);
594   c7Bnil->SaveAs("residualsProfilePhiZ-Bnil.eps");
595
596   TCanvas* c8Bnil = new TCanvas("c8Bnil","Profiles y in phi, Bnil",800,300);
597   c8Bnil->Divide(2,1);
598   c8Bnil->cd(1); profphiyaBnil->DrawCopy();
599   c8Bnil->cd(2); profphiycBnil->DrawCopy();
600   c8Bnil->cd(0);
601   c8Bnil->SaveAs("residualsProfilePhiY-Bnil.eps");
602
603   TCanvas* c9Bnil = new TCanvas("c9Bnil", "Residuals Phi-Z 2D, Bnil",800,300);
604   c9Bnil->Divide(2,1);
605   c9Bnil->cd(1); pPhiZAResidualsHistBnil->DrawCopy("col");
606   c9Bnil->cd(2); pPhiZCResidualsHistBnil->DrawCopy("col");
607   c9Bnil->cd(0); 
608   c9Bnil->SaveAs("residualsPhiZ2D-Bnil.eps");
609
610   TCanvas* c1Bnil0 = new TCanvas("c1Bnil0", "Residuals Phi-Y 2D, Bnil",800,300);
611   c1Bnil0->Divide(2,1);
612   c1Bnil0->cd(1); pPhiYAResidualsHistBnil->DrawCopy("col");
613   c1Bnil0->cd(2); pPhiYCResidualsHistBnil->DrawCopy("col");
614   c1Bnil0->cd(0); 
615   c1Bnil0->SaveAs("residualsPhiY2D-Bnil.eps");
616
617   TCanvas* c11Bnil = new TCanvas("c11Bnil", "Residuals Pt-Z 2D, Bnil",800,300);
618   c11Bnil->Divide(2,1);
619   c11Bnil->cd(1); pPtZAResidualsHistBnil->DrawCopy("col");
620   c11Bnil->cd(2); pPtZCResidualsHistBnil->DrawCopy("col");
621   c11Bnil->cd(0);
622   c11Bnil->SaveAs("residualsPtZ2D-Bnil.eps");
623
624   TCanvas* c12Bnil = new TCanvas("c12Bnil", "Residuals Pt-Y 2D, Bnil",800,300);
625   c12Bnil->Divide(2,1);
626   c12Bnil->cd(1); pPtYAResidualsHistBnil->DrawCopy("col");
627   c12Bnil->cd(2); pPtYCResidualsHistBnil->DrawCopy("col");
628   c12Bnil->cd(0);
629   c12Bnil->SaveAs("residualsPtY2D-Bnil.eps");
630
631   TCanvas* c13Bnil = new TCanvas("c13Bnil","Profiles Pt-Z, Bnil",800,300);
632   c13Bnil->Divide(2,1);
633   c13Bnil->cd(1); profptzaBnil->DrawCopy();
634   c13Bnil->cd(2); profptzcBnil->DrawCopy();
635   c13Bnil->cd(0);
636   c13Bnil->SaveAs("residualsProfilePtZ-Bnil.eps");
637
638   TCanvas* c14Bnil = new TCanvas("c14Bnil","Profiles Pt-Y, Bnil",800,300);
639   c14Bnil->Divide(2,1);
640   c14Bnil->cd(1); profptyaBnil->DrawCopy();
641   c14Bnil->cd(2); profptycBnil->DrawCopy();
642   c14Bnil->cd(0);
643   c14Bnil->SaveAs("residualsProfilePtY-Bnil.eps");
644
645   TCanvas* c15Bnil = new TCanvas("c15Bnil", "Residuals low Pt-Z 2D, Bnil",800,300);
646   c15Bnil->Divide(2,1);
647   c15Bnil->cd(1); pLowPtZAResidualsHistBnil->DrawCopy("col");
648   c15Bnil->cd(2); pLowPtZCResidualsHistBnil->DrawCopy("col");
649   c15Bnil->cd(0);
650   c15Bnil->SaveAs("residualsLowPtZ2D-Bnil.eps");
651
652   TCanvas* c16Bnil = new TCanvas("c16Bnil", "Residuals in low PtY 2D, Bnil",800,300);
653   c16Bnil->Divide(2,1);
654   c16Bnil->cd(1); pLowPtYAResidualsHistBnil->DrawCopy("col");
655   c16Bnil->cd(2); pLowPtYCResidualsHistBnil->DrawCopy("col");
656   c16Bnil->cd(0);
657   c16Bnil->SaveAs("residualsLowPtY2D-Bnil.eps");
658
659   TCanvas* c17Bnil = new TCanvas("c17Bnil","Profiles low Pt-Z, Bnil",800,300);
660   c17Bnil->Divide(2,1);
661   c17Bnil->cd(1); proflowptzaBnil->DrawCopy();
662   c17Bnil->cd(2); proflowptzcBnil->DrawCopy();
663   c17Bnil->cd(0);
664   c17Bnil->SaveAs("residualsProfileLowPtZ-Bnil.eps");
665
666   TCanvas* c18Bnil = new TCanvas("c18Bnil","Profiles low Pt-Y, Bnil",800,300);
667   c18Bnil->Divide(2,1);
668   c18Bnil->cd(1); proflowptyaBnil->DrawCopy();
669   c18Bnil->cd(2); proflowptycBnil->DrawCopy();
670   c18Bnil->cd(0);
671   c18Bnil->SaveAs("residualsProfileLowPtY-Bnil.eps");
672   }
673 }
674