]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/macrosSDD/PlotQASDD.C
Bug fix
[u/mrichter/AliRoot.git] / ITS / macrosSDD / PlotQASDD.C
CommitLineData
0bca1a77 1#if !defined(__CINT__) || defined(__MAKECINT__)
2#include <TFile.h>
3#include <TFileMerger.h>
4#include <TAlienFile.h>
5#include <TSystem.h>
6#include <TGrid.h>
7#include <TGridResult.h>
8#include <Riostream.h>
9#include <TObjArray.h>
10#include <TClass.h>
11#include <TKey.h>
2a250bc5 12#include <TFile.h>
13#include <TFileMerger.h>
14#include <TAlienFile.h>
15//#include <TExec.h>
16#include <TSystem.h>
17#include <TGrid.h>
18#include <TGridResult.h>
19#include <Riostream.h>
20#include <TObjArray.h>
21#include <TClass.h>
22#include <TH1F.h>
23#include <TH2D.h>
24#include <TH2F.h>
25#include <TF1.h>
26#include <TStyle.h>
27#include <TCanvas.h>
28#include <TLegend.h>
29#include <TMath.h>
30#include "AliRecoParam.h"
0bca1a77 31#endif
32
2a250bc5 33enum rawexpert_t{pattern,patternnorm,layer3norm,layer4norm,layer3occ,layer4occ,rawtot};
0bca1a77 34enum nonrawexpert_t{layer3,layer4,nonrawtot};
35
2a250bc5 36enum rpexpert_t{rlocaldistro,rlayer3norm,rlayer4norm,rmodpattern,rmodpatternnorm,rphilayer3,rphilayer4,rrlayer3,rrlayer4,occlayer3,occlayer4,recraw2dlayer3,recraw2dlayer4,recrawlayer3,recrawlayer4,dedxlayer3,dedxlayer4,rtot};
0bca1a77 37enum rnonexpert_t{rphizlayer3,rphizlayer4,rglobalrz,rglobalxy,rchargelayer3,rchargelayer4,rtimelayer3,rtimelayer4,rlayer3,rlayer4,nrtot};
38
2a250bc5 39enum canvsname_t{canvname0,canvname1,canvname2,canvname3,canvname4,canvname5,canvname6,canvname7,canvname8,canvname9,canvname10,canvname11,canvname12,canvname13,canvname14,canvname15,canvname16,canvname17,canvname18,canvname19,canvname20,canvname21,canvname22,canvname23};//
0bca1a77 40
2a250bc5 41
42
43void PlotQASDD(Char_t fileName[100]="File.QA.111333.2010.LHC09b.pass2.root",Char_t eventspecie[25]="LowMultiplicity",Bool_t kDoEps=kFALSE)
0bca1a77 44{
2a250bc5 45 const TString Rawsexpertname[]={"SDDModPattern","SDDModPatternNORM","SDDphizL3","SDDphizL4","SDDL3_RelativeOccupancy","SDDL4_RelativeOccupancy"};//6
46 const TString Rawsnonexpertname[]={"SDDphizL3NORM","SDDphizL4NORM"};//2
47
48 const TString RecPointsexpertname[]={"SDDLocalCoordDistrib","SDDModPatternL3RP","SDDModPatternL4RP","SDDModPatternRP","SDDModPatternRPNORM","SDDphidistrib_Layer3","SDDphidistrib_Layer4","SDDrdistrib_Layer3","SDDrdistrib_Layer4","SDDL3_RelativeOccupancy","SDDL4_RelativeOccupancy","SDDL3_Rec2Raw_2D","SDDL4_Rec2Raw_2D","SDDL3_Rec2Raw","SDDL4_Rec2Raw","SDDL3_dedx","SDDL4_dedx"};//17
49 const TString RecPointsnonexpertname[]={"SDDGlobalCoordDistribL3PHIZ","SDDGlobalCoordDistribL4PHIZ","SDDGlobalCoordDistribRZ","SDDGlobalCoordDistribYX","SDDLay3TotCh","SDDLay4TotCh","SDDdrifttime_Layer3","SDDdrifttime_Layer4","SDDModPatternL3RPNORM","SDDModPatternL4RPNORM"};//10
0bca1a77 50
2a250bc5 51 const TString canvassavedname[]={"RawLayers","Rawpatterns","RawLayersNORM","RawLayersRelOcc","RawLayersRelOccBoth","RecPointsphiz","RecPointsGlobalDistributions","RecPointsCharge","RecPointsDriftTime","RecPointsLocalDistribution","RecPointsLayers","RecPointsLayersNORM","RecPointsLayersPatterns","RecPointsPhiDistribution","RecPointsRDistribution","RecPointsChargeBothLayers","RecPointsDriftTimeBothLayers","RecPointsRelLayersOcc","RecPointsLayersRelOccBoth","RecPointsLayersRecRaw2D","RecPointsLayersRecRaw","RecPointsLayersRecRaw","RecPointsLayersRecRawBoth","RecPointsLayersdedx","RecPointsLayersdedxBoth"};//15
52
53 Char_t trendfile[25]="FileQAtrend.root";
0bca1a77 54
0bca1a77 55
56 gStyle->SetPalette(1);
2a250bc5 57 // gStyle->SetOptStat("ne");
58 if(gSystem->Exec(Form("ls %s >/dev/null 2>&1", fileName))!=0)
59 {
60 printf(" No file created --- Exit");
0bca1a77 61 return;
62 }
2a250bc5 63 TFile mergedfile(fileName);
64 if(mergedfile.GetKey("ITS")==0x0){
65 printf("In this run ITS QA has not been executed.\n\nExit macro \n\n");
66 return;
67 }
0bca1a77 68 Char_t filepath[100];
69 Char_t namecanvas[50];
70 TDirectory *directory=NULL;
71 TDirectory *directory2=NULL;
72 Char_t histoname[200];
73 TH2D *historaw=NULL;
74 TH1F *historaw2=NULL;
75 TH2F *histodraw=NULL;
2a250bc5 76
77 TH1F *histo2save[9];
78 for(Int_t i=0;i<9;i++){histo2save[i]=NULL;}
79
80 TF1 *f1 = new TF1("f1","1",-100000,100000); // this is the function defined to multiply histograms
81 Char_t layer[10];
82 float fmax=0.;
83 float fmaxold=0.;
84 float fmaxmargin;
85
86 Int_t cannum=0;
87 Int_t histo2savenumber[9]={4,5,6,7,7,8,3,5,1};
0bca1a77 88 TCanvas *canvas1 = new TCanvas("canvas1","SDD QA Plot",1000,600);
2a250bc5 89 // TLegend *legend=new TLegend(0.83,0.8,0.97,0.7);
90 TLegend *legend=new TLegend(0.81,0.895,0.95,0.995);
91 Bool_t updatecanvas[2];
92 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
0bca1a77 93
2a250bc5 94 // -------------This part is to read the number of chunks that were merged
95 Float_t fChnknmbr=0.;
96 FILE * pChunkNumber = fopen ("ChunkNumber.txt","r");
88522cc1 97 if(pChunkNumber){
98 Int_t rv=fscanf(pChunkNumber, "%f", &fChnknmbr);
2a250bc5 99 fclose (pChunkNumber);
88522cc1 100 }
101 else fChnknmbr=1.;
102
2a250bc5 103 gStyle->SetPalette(1);
104 float fCNinv=1./fChnknmbr;
105 // printf("\n====================>%f\n\n", fCNinv);
0bca1a77 106
0bca1a77 107 if(!mergedfile.IsOpen()){return;}else{printf("file is open\n");}
108 for(Int_t ispecie=0;ispecie<AliRecoParam::kNSpecies;ispecie++){
109 //__________________________________________________________________
110 //raw data
111 sprintf(filepath,"ITS/Raws/%s",AliRecoParam::GetEventSpecieName(ispecie));
112 printf("%s",filepath);
113 TString especie(filepath);
114 if(!especie.Contains(eventspecie)){printf("...Found and Skipped\n");continue;}
115 canvas1->Print("SDDQAPlot.ps[");
116 directory=(TDirectory*)mergedfile.Get(filepath);
117 if(!directory){printf("...Not Found\n ");}//faccio l'istogramma
118 else{
119 printf("...Found: The histograms of this EventSpecie will be displayed\n");
120 printf("1\n");
121 canvas1->Clear();
122 canvas1->Divide(2,1);
2a250bc5 123
0bca1a77 124 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
2a250bc5 125 for(Int_t iraws=2;iraws<4;iraws++){//non expert raws
126 canvas1->cd(iraws-1);
127
128 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[iraws].Data());
129 printf("histo name %s ",Rawsexpertname[iraws].Data());
0bca1a77 130 historaw=(TH2D*)mergedfile.Get(histoname);
131 if(historaw){printf("...Found\n");historaw->DrawCopy("colz");}
2a250bc5 132 else{updatecanvas[iraws-2]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
0bca1a77 133 historaw=NULL;
134 }//end for
2a250bc5 135
0bca1a77 136 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
137 {
138 canvas1->Update();
2a250bc5 139 if(kDoEps){
140 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
141 canvas1->SaveAs(namecanvas);
142 }
0bca1a77 143 canvas1->Print("SDDQAPlot.ps");
144 }
145 //else{delete canvas1; canvas1=NULL;}
146 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
2a250bc5 147 canvas1->Clear();
148 canvas1->Divide(1,2);
149 printf("2 \n");
150 cannum++;
151 for(Int_t inraws=0;inraws<2;inraws++){//non expert raws
152 canvas1->cd(inraws+1);
153 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[inraws].Data());
154 printf("histo name %s ",Rawsexpertname[inraws].Data());
155 historaw2=(TH1F*)mergedfile.Get(histoname);
156
157
158 // -----------------This is the part were I divide between the number of chunks to normalize the histogram----------------
159
160
161 if(historaw2)
0bca1a77 162 {
2a250bc5 163 printf("...Found\n");
164 if (inraws==1)
165 {
166 historaw2->Multiply(f1,fCNinv);
167
168 }
169 historaw2->DrawCopy();
170 }
171 else{updatecanvas[inraws]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
172 historaw2=NULL;
173 }//end for
174 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
175 {
176 canvas1->Update();
177 if(kDoEps){
178 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 179 canvas1->SaveAs(namecanvas);
2a250bc5 180 }
181 canvas1->Print("SDDQAPlot.ps");
182 }
183 //else{delete canvas2; canvas2=NULL;}
184
185 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
186 printf("3\n");
187 cannum++;
188 canvas1->Clear();
189 canvas1->Divide(2,1);
190 for(Int_t iraws=0;iraws<2;iraws++){//non expert raws
191 canvas1->cd(iraws+1);
192
193 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsnonexpertname[iraws].Data());
194 printf("histo name %s",Rawsnonexpertname[iraws].Data());
195 historaw=(TH2D*)mergedfile.Get(histoname);
196 if(historaw){
197 printf("...Found\n");
198 historaw->Multiply(f1,fCNinv);
199 historaw->DrawCopy("colz");
200 }
201 else
202 {updatecanvas[iraws]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
203 historaw=NULL;
204 }//end for
205 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
206 {
207 canvas1->Update();
208 if(kDoEps){
209 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
210 canvas1->SaveAs(namecanvas);
211 }
212 canvas1->Print("SDDQAPlot.ps");
213 }
214 //else{delete canvas3; canvas3=NULL;}
215
216 //--------------------- new plots
217 printf("================= 4\n");
218 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
219 cannum++;
220 canvas1->Clear();
221 canvas1->Divide(2,1);
222 for(Int_t iraws=4;iraws<rawtot;iraws++){//non expert raws
223 canvas1->cd(iraws-3);
224 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[iraws].Data());
225 printf("histo name %s",Rawsexpertname[iraws].Data());
226 historaw2=(TH1F*)mergedfile.Get(histoname);
227 if(historaw2)
0bca1a77 228 {
2a250bc5 229 printf("...Found\n");
230 historaw2->DrawCopy();
231 }else
232 {
233 updatecanvas[iraws-4]=kFALSE;
234 printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");
235 }
236 historaw2=NULL;
237 }//end for
238 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
239 {
240 canvas1->Update();
241 if(kDoEps){
242 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 243 canvas1->SaveAs(namecanvas);
2a250bc5 244 }
245 canvas1->Print("SDDQAPlot.ps");
246 }
247 //else{delete canvas3; canvas3=NULL;}
248
249
250 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
251 canvas1->Clear();
252 legend->Clear();
253 printf("14\n");
254 cannum++;
255 for (Int_t i=4;i<rawtot;i++){
256 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[i].Data());
257 historaw2=(TH1F*)mergedfile.Get(histoname);
258 if(historaw2){
259 fmax=historaw2->GetMaximum();
260 if (i==4){
261 fmaxold=fmax;}
262 if (i!=4){
263 if(fmaxold<fmax){
264 fmaxold=fmax;
265 }
266 }
0bca1a77 267 }
2a250bc5 268 historaw2=NULL;
269 }
270 fmaxmargin=1.1*fmaxold;
271 for(Int_t irrpp=4;irrpp<rawtot;irrpp++){//non expert raws
272
273 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[irrpp].Data());
274 printf("histo name %s",Rawsexpertname[irrpp].Data());
275 sprintf(layer, "layer %d",irrpp-1);
276 historaw2=(TH1F*)mergedfile.Get(histoname);
277 gStyle->SetOptStat(0);
278
279 if(historaw2)
0bca1a77 280 {
2a250bc5 281 printf("...Found\n");
282 historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
283 historaw2->SetTitle("Raw Relative Occupancy");
284 if (irrpp==4) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
285 if (irrpp!=4) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
286 legend->AddEntry(historaw2,layer,"l");
287 legend->Draw();
0bca1a77 288 canvas1->Update();
2a250bc5 289 }
290 else{updatecanvas[irrpp-4]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
291 historaw2=NULL;
292 }//end for
293 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
294 {
295 canvas1->Update();
296 if(kDoEps){
297 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
298 canvas1->SaveAs(namecanvas);
299 }
300 canvas1->Print("SDDQAPlot.ps");
301 }
302
303 }//end if directory
304
305
306
307 //_______________________________________________________________________________
308 //rec point
309 sprintf(filepath,"ITS/RecPoints/%s",AliRecoParam::GetEventSpecieName(ispecie));
310 printf("%s\n",filepath);
311 directory2=(TDirectory*)mergedfile.Get(filepath);
312 if(directory2){
313 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
314 canvas1->Clear();
315 canvas1->Divide(2,1);
316 printf("4\n");
317 cannum++;
318 for(Int_t irp=0;irp<2;irp++){//non expert rec point
319 canvas1->cd(irp+1);
320
321 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irp].Data());
322 printf("histo name %s ",RecPointsnonexpertname[irp].Data());
323 histodraw=(TH2F*)mergedfile.Get(histoname);
324 if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[irp]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
325 histodraw=NULL;
326 }
327 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
328 {
329 canvas1->Update();
330 if(kDoEps){
331 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 332 canvas1->SaveAs(namecanvas);
0bca1a77 333 }
2a250bc5 334 canvas1->Print("SDDQAPlot.ps");
335 }
336 // else{delete canvas4; canvas4=NULL;}
337
338
339 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
340 canvas1->Clear();
341 canvas1->Divide(2,1);
342 printf("5\n");
343 cannum++;
344 for(Int_t irrp=2;irrp<4;irrp++){//non expert raws
345 canvas1->cd(irrp-1);
346
347 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irrp].Data());
348 printf("histo name %s",RecPointsnonexpertname[irrp].Data() );
349 histodraw=(TH2F*)mergedfile.Get(histoname);
350 if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[irrp-2]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
351 histodraw=NULL;
352 }
353 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
354 {
355 canvas1->Update();
356 if(kDoEps){
357 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
358 canvas1->SaveAs(namecanvas);
359 }
360 canvas1->Print("SDDQAPlot.ps");
361 }
362 //else{delete canvas5; canvas5=NULL;}
363
364
365 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
366 canvas1->Clear();
367 canvas1->Divide(1,2);
368 printf("6\n");
369 cannum++;
370 for(Int_t irrpp=4;irrpp<6;irrpp++){//non expert raws
371 canvas1->cd(irrpp-3);
372
373 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irrpp].Data());
374 printf("histo name %s",RecPointsnonexpertname[irrpp].Data());
375 historaw2=(TH1F*)mergedfile.Get(histoname);
376
377 if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[irrpp-4]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
378 historaw2=NULL;
379 }//end for
380 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
381 {
382 canvas1->Update();
383 if(kDoEps){
384 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
385 canvas1->SaveAs(namecanvas);
386 }
387 canvas1->Print("SDDQAPlot.ps");
388 }
389 //else{delete canvas6; canvas6=NULL;}
390
391 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
392 canvas1->Clear();
393 canvas1->Divide(1,2);
394 printf("7\n");
395 cannum++;
396 for(Int_t irrpp=6;irrpp<8;irrpp++){//non expert raws
397 canvas1->cd(irrpp-5);
398 // printf("histo name\n");
399 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irrpp].Data());
400 printf("histo name %s",RecPointsnonexpertname[irrpp].Data());
401 historaw2=(TH1F*)mergedfile.Get(histoname);
402 if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[irrpp-6]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
403 historaw2=NULL;
404 }//end for
405 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
406 {
407 canvas1->Update();
408 if(kDoEps){
409 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
410 canvas1->SaveAs(namecanvas);
411 }
412 canvas1->Print("SDDQAPlot.ps");
413 }
414 //else{delete canvas7; canvas7=NULL;}
415
416 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
417 canvas1->Clear();
418 printf("8\n");
419 cannum++;
420 //canvas1->Divide(2,1);
421 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[rlocaldistro].Data());
422 printf("histo name %s",RecPointsexpertname[rlocaldistro].Data());
423 histodraw=(TH2F*)mergedfile.Get(histoname);
424
425 if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[0]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
426 histodraw=NULL;
427 if(updatecanvas[0]==kTRUE){
428 canvas1->Update();
429 if(kDoEps){
430 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
431 canvas1->SaveAs(namecanvas);
432 }
433 canvas1->Print("SDDQAPlot.ps");
434 }
435 //else{delete canvas8; canvas8=NULL;}
0bca1a77 436
2a250bc5 437 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
438 canvas1->Clear();
439 canvas1->Divide(2,1);
440 printf("9\n");
441 cannum++;
442 for(Int_t i=1;i<3;i++)
443 {
444 canvas1->cd(i);
0bca1a77 445
2a250bc5 446 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
447 printf("histo name %s",RecPointsexpertname[i].Data());
0bca1a77 448 histodraw=(TH2F*)mergedfile.Get(histoname);
2a250bc5 449
450 if(histodraw){printf("...Found\n");histodraw->DrawCopy("colz");}else{updatecanvas[i-1]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
0bca1a77 451 histodraw=NULL;
452 }
2a250bc5 453 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
454 {
455 canvas1->Update();
456 if(kDoEps){
457 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
458 canvas1->SaveAs(namecanvas);
459 }
460 canvas1->Print("SDDQAPlot.ps");
461 }
462 //else{delete canvas9; canvas9=NULL;}
463 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
464 canvas1->Clear();
465 canvas1->Divide(2,1);
466 printf("10\n");
467 cannum++;
468 for(Int_t i=8;i<10;i++)
469 {
470 canvas1->cd(i-7);
471
472 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[i].Data());
473 histodraw=(TH2F*)mergedfile.Get(histoname);
474 printf("histo name %s",RecPointsnonexpertname[i].Data());
475
476 if(histodraw){
477 printf("...Found\n");histodraw->Multiply(f1,fCNinv);
478 histodraw->DrawCopy("colz");
479 }else{updatecanvas[i-8]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
480 histodraw=NULL;
481 }
482 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
483 {
484 canvas1->Update();
485 if(kDoEps){
486 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 487 canvas1->SaveAs(namecanvas);
0bca1a77 488 }
2a250bc5 489 canvas1->Print("SDDQAPlot.ps");
490 }
491 //else{delete canvas10; canvas10=NULL;}
0bca1a77 492
2a250bc5 493 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
494 canvas1->Clear();
495 canvas1->Divide(1,2);
496 printf("11\n");
497 cannum++;
498 for(Int_t i=3;i<5;i++)
499 {
500 canvas1->cd(i-2);
501
502 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
503 printf("histo name %s",RecPointsexpertname[i].Data());
0bca1a77 504 historaw2=(TH1F*)mergedfile.Get(histoname);
2a250bc5 505
506 if(historaw2)
507 {
508 printf("...Found\n");
509 if (i==4){historaw2->Multiply(f1,fCNinv);}
510 historaw2->DrawCopy();
511 }
512 else{updatecanvas[i-3]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
0bca1a77 513 historaw2=NULL;
2a250bc5 514 }
515 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
516 {
517 canvas1->Update();
518 if(kDoEps){
519 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 520 canvas1->SaveAs(namecanvas);
0bca1a77 521 }
2a250bc5 522 canvas1->Print("SDDQAPlot.ps");
523 }
524 //else{delete canvas11; canvas11=NULL;}
525
526 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
527 canvas1->Clear();
528 canvas1->Divide(2,1);
529 printf("12\n");
530 cannum++;
531 for(Int_t i=5;i<7;i++)
532 {
533 canvas1->cd(i-4);
534
535 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
536 printf("histo name %s",RecPointsexpertname[i].Data());
0bca1a77 537 historaw2=(TH1F*)mergedfile.Get(histoname);
2a250bc5 538
539 if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-5]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
0bca1a77 540 historaw2=NULL;
2a250bc5 541 }
542 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
543 {
544 canvas1->Update();
545 if(kDoEps){
546 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 547 canvas1->SaveAs(namecanvas);
0bca1a77 548 }
2a250bc5 549 canvas1->Print("SDDQAPlot.ps");
550 }
551 //else{delete canvas12; canvas12=NULL;}
0bca1a77 552
2a250bc5 553 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
554 canvas1->Clear();
555 canvas1->Divide(2,1);
556 printf("13\n");
557 cannum++;
558 for(Int_t i=7;i<9;i++)
559 {
560 canvas1->cd(i-6);
561 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
562 printf("histo name %s",RecPointsexpertname[i].Data());
563 historaw2=(TH1F*)mergedfile.Get(histoname);
0bca1a77 564
2a250bc5 565 if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-7]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
566 historaw2=NULL;
567 }
568 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
569 {
0bca1a77 570 canvas1->Update();
2a250bc5 571 if(kDoEps){
572 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
573 canvas1->SaveAs(namecanvas);
574 }
0bca1a77 575 canvas1->Print("SDDQAPlot.ps");
576 }
2a250bc5 577
0bca1a77 578
2a250bc5 579 //superimposed
580 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
581 canvas1->Clear();
582 legend->Clear();
583 printf("14\n");
584 cannum++;
585 for (Int_t i=4;i<6;i++){
586 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[i].Data());
587 historaw2=(TH1F*)mergedfile.Get(histoname);
588 if(historaw2){
589 fmax=historaw2->GetMaximum();
590 if (i==4){
591 fmaxold=fmax;}
592 if (i!=4){
593 if(fmaxold<fmax){
594 fmaxold=fmax;
595 }
0bca1a77 596 }
2a250bc5 597 }
598 historaw2=NULL;
599 }
600 fmaxmargin=1.1*fmaxold;
601 for(Int_t irrpp=4;irrpp<6;irrpp++){//non expert raws
602
603 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irrpp].Data());
604 printf("histo name %s",RecPointsnonexpertname[irrpp].Data());
605 sprintf(layer, "layer %d",irrpp-1);
606 historaw2=(TH1F*)mergedfile.Get(histoname);
607 gStyle->SetOptStat(0);
608
609 if(historaw2)
0bca1a77 610 {
2a250bc5 611 printf("...Found\n");
612 historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
613 historaw2->SetTitle("Charge");
88522cc1 614 historaw2->SetFillColor(0);
2a250bc5 615 if (irrpp==4) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
616 if (irrpp!=4) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
617 legend->AddEntry(historaw2,layer,"l");
618 legend->Draw();
0bca1a77 619 canvas1->Update();
2a250bc5 620 }
621 else{updatecanvas[irrpp-4]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
622 historaw2=NULL;
623 }//end for
624 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
625 {
626 canvas1->Update();
627 if(kDoEps){
628 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 629 canvas1->SaveAs(namecanvas);
0bca1a77 630 }
2a250bc5 631 canvas1->Print("SDDQAPlot.ps");
632 }
633
634 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
635 canvas1->Clear();
636 legend->Clear();
637 printf("15\n");
638 cannum++;
639 for (Int_t i=6;i<8;i++){
640 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[i].Data());
641 historaw2=(TH1F*)mergedfile.Get(histoname);
642 if(historaw2){
643 fmax=historaw2->GetMaximum();
644 if (i==6){
645 fmaxold=fmax;}
646 if (i!=6){
647 if(fmaxold<fmax){
648 fmaxold=fmax;}}}
649 fmaxmargin=1.1*fmaxold;
650 }
651 for(Int_t irrpp=6;irrpp<8;irrpp++){//non expert raws
652
653 sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[irrpp].Data());
654 printf("histo name %s",RecPointsnonexpertname[irrpp].Data());
655 sprintf(layer, "layer %d",irrpp-3);
656 historaw2=(TH1F*)mergedfile.Get(histoname);
657 gStyle->SetOptStat(0);
658
659 if(historaw2)
0bca1a77 660 {
2a250bc5 661 printf("...Found\n");
662 historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
663 historaw2->SetTitle("Drift Time");
88522cc1 664 historaw2->SetFillColor(0);
2a250bc5 665 if (irrpp==6) {historaw2->SetStats(0); historaw2->SetLineColor(2);historaw2->DrawCopy();}
666 if (irrpp!=6) {historaw2->SetStats(0); historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
667 legend->AddEntry(historaw2,layer,"l");
668 legend->Draw();
0bca1a77 669 canvas1->Update();
2a250bc5 670 }
671 else{updatecanvas[irrpp-6]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
672 printf("%s\n%s\n",historaw2->GetName(),historaw2->GetTitle());
673 historaw2=NULL;
674 }//end for
675 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
676 {
677 canvas1->Update();
678 if(kDoEps){
679 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 680 canvas1->SaveAs(namecanvas);
0bca1a77 681 }
2a250bc5 682 canvas1->Print("SDDQAPlot.ps");
683 }
0bca1a77 684
2a250bc5 685 //------------------------------------------- new plot
0bca1a77 686
2a250bc5 687 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
688 canvas1->Clear();
689 canvas1->Divide(2,1);
690 printf("13\n");
691 cannum++;
692 for(Int_t i=9;i<11;i++)
693 {
694 canvas1->cd(i-8);
695 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
696 printf("histo name %s",RecPointsexpertname[i].Data());
697 historaw2=(TH1F*)mergedfile.Get(histoname);
0bca1a77 698
2a250bc5 699 if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-9]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
700 historaw2=NULL;
701 }
702 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
703 {
704 canvas1->Update();
705 if(kDoEps){
706 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
707 canvas1->SaveAs(namecanvas);
708 }
709 canvas1->Print("SDDQAPlot.ps");
710 }
711
712 //------------------------------------
713 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
714 canvas1->Clear();
715 legend->Clear();
716 printf("14\n");
717 cannum++;
718 for (Int_t i=9;i<11;i++){
719 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
720 historaw2=(TH1F*)mergedfile.Get(histoname);
721 if(historaw2){
722 fmax=historaw2->GetMaximum();
723 if (i==4){
724 fmaxold=fmax;}
725 if (i!=4){
726 if(fmaxold<fmax){
727 fmaxold=fmax;
728 }
0bca1a77 729 }
2a250bc5 730 }
731 historaw2=NULL;
732 }
733 fmaxmargin=1.1*fmaxold;
734 for(Int_t irrpp=9;irrpp<11;irrpp++){//non expert raws
735
736 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[irrpp].Data());
737 printf("histo name %s",RecPointsexpertname[irrpp].Data());
738 sprintf(layer, "layer %d",irrpp-6);
739 historaw2=(TH1F*)mergedfile.Get(histoname);
740 gStyle->SetOptStat(0);
741
742 if(historaw2)
0bca1a77 743 {
2a250bc5 744 printf("...Found\n");
745 historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
746 historaw2->SetTitle("RecPoint Relative Occupancy");
747 if (irrpp==9) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
748 if (irrpp!=9) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
749 legend->AddEntry(historaw2,layer,"l");
750 legend->Draw();
0bca1a77 751 canvas1->Update();
2a250bc5 752 }
753 else{updatecanvas[irrpp-9]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
754 historaw2=NULL;
755 }//end for
756 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
757 {
758 canvas1->Update();
759 if(kDoEps){
760 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 761 canvas1->SaveAs(namecanvas);
0bca1a77 762 }
2a250bc5 763 canvas1->Print("SDDQAPlot.ps");
764 }
765
766
767 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
768 canvas1->Clear();
769 canvas1->Divide(2,1);
770 printf("13\n");
771 cannum++;
772 for(Int_t i=11;i<13;i++)
773 {
774 canvas1->cd(i-10);
775 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
776 printf("histo name %s",RecPointsexpertname[i].Data());
777 historaw=(TH2D*)mergedfile.Get(histoname);
778
779 if(historaw){printf("...Found\n");historaw->DrawCopy("colz");}else{updatecanvas[i-11]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
780 historaw2=NULL;
781 }
782 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
783 {
784 canvas1->Update();
785 if(kDoEps){
786 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
787 canvas1->SaveAs(namecanvas);
788 }
789 canvas1->Print("SDDQAPlot.ps");
790 }
791
0bca1a77 792
0bca1a77 793
2a250bc5 794 //-----------------
795 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
796 canvas1->Clear();
797 canvas1->Divide(2,1);
798 printf("13\n");
799 cannum++;
800 for(Int_t i=13;i<15;i++)
801 {
802 canvas1->cd(i-12);
803 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
804 printf("histo name %s",RecPointsexpertname[i].Data());
805 historaw2=(TH1F*)mergedfile.Get(histoname);
806
807 if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-13]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
808 historaw2=NULL;
809 }
810 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
811 {
812 canvas1->Update();
813 if(kDoEps){
814 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
815 canvas1->SaveAs(namecanvas);
816 }
817 canvas1->Print("SDDQAPlot.ps");
818 }
819 //--------------------------------------------
0bca1a77 820
2a250bc5 821 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
822 canvas1->Clear();
823 legend->Clear();
824 printf("14\n");
825 cannum++;
826 for (Int_t i=13;i<15;i++){
827 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
828 historaw2=(TH1F*)mergedfile.Get(histoname);
829 if(historaw2){
830 fmax=historaw2->GetMaximum();
831 if (i==13){
832 fmaxold=fmax;}
833 if (i!=13){
834 if(fmaxold<fmax){
835 fmaxold=fmax;
836 }
0bca1a77 837 }
2a250bc5 838 }
839 historaw2=NULL;
840 }
841 fmaxmargin=1.1*fmaxold;
842 for(Int_t irrpp=13;irrpp<15;irrpp++){//non expert raws
843
844 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[irrpp].Data());
845 printf("histo name %s",RecPointsexpertname[irrpp].Data());
846 sprintf(layer, "layer %d",irrpp-10);
847 historaw2=(TH1F*)mergedfile.Get(histoname);
848 gStyle->SetOptStat(0);
849
850 if(historaw2)
0bca1a77 851 {
2a250bc5 852 printf("...Found\n");
853 historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
854 historaw2->SetTitle("Rec2Raw Ratio");
855 if (irrpp==13) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
856 if (irrpp!=13) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
857 legend->AddEntry(historaw2,layer,"l");
858 legend->Draw();
0bca1a77 859 canvas1->Update();
2a250bc5 860 }
861 else{updatecanvas[irrpp-13]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
862 historaw2=NULL;
863 }//end for
864 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
865 {
866 canvas1->Update();
867 if(kDoEps){
868 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 869 canvas1->SaveAs(namecanvas);
0bca1a77 870 }
2a250bc5 871 canvas1->Print("SDDQAPlot.ps");
872 }
0bca1a77 873
2a250bc5 874
875 //--------------------------------------
876
877 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
878 canvas1->Clear();
879 canvas1->Divide(2,1);
880 printf("13\n");
881 cannum++;
882 for(Int_t i=15;i<17;i++)
883 {
884 canvas1->cd(i-14);
885 sprintf(histoname,"ITS/RecPoints/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
886 printf("histo name %s",RecPointsexpertname[i].Data());
887 historaw2=(TH1F*)mergedfile.Get(histoname);
888
889 if(historaw2){printf("...Found\n");historaw2->DrawCopy();}else{updatecanvas[i-15]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
890 historaw2=NULL;
891 }
892 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
893 {
894 canvas1->Update();
895 if(kDoEps){
896 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
897 canvas1->SaveAs(namecanvas);
898 }
899 canvas1->Print("SDDQAPlot.ps");
900 }
901
0bca1a77 902
2a250bc5 903 //--------------------------------------------
904
905 for(Int_t i=0;i<2;i++){updatecanvas[i]=kTRUE;}
906 canvas1->Clear();
907 legend->Clear();
908 printf("14\n");
909 cannum++;
910 for (Int_t i=15;i<17;i++){
911 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[i].Data());
912 historaw2=(TH1F*)mergedfile.Get(histoname);
913 if(historaw2){
914 fmax=historaw2->GetMaximum();
915 if (i==15){
916 fmaxold=fmax;}
917 if (i!=15){
918 if(fmaxold<fmax){fmaxold=fmax;}
0bca1a77 919 }
2a250bc5 920 }
921 historaw2=NULL;
922 }
923 fmaxmargin=1.1*fmaxold;
924 for(Int_t irrpp=15;irrpp<17;irrpp++){//non expert raws
925
926 sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[irrpp].Data());
927 printf("histo name %s",RecPointsexpertname[irrpp].Data());
928 sprintf(layer, "layer %d",irrpp-12);
929 historaw2=(TH1F*)mergedfile.Get(histoname);
930 gStyle->SetOptStat(0);
931
932 if(historaw2)
0bca1a77 933 {
2a250bc5 934 printf("...Found\n");
935 historaw2->GetYaxis()->SetRangeUser(0,fmaxmargin);
936 historaw2->SetTitle("RecPoint dEdx");
937 if (irrpp==15) {historaw2->SetStats(0);historaw2->SetLineColor(2);historaw2->DrawCopy();}
938 if (irrpp!=15) {historaw2->SetStats(0);historaw2->SetLineColor(4);historaw2->DrawCopy("same");}
939 legend->AddEntry(historaw2,layer,"l");
940 legend->Draw();
0bca1a77 941 canvas1->Update();
2a250bc5 942 }
943 else{updatecanvas[irrpp-15]=kFALSE;printf("...Not Found: the histogram or this QA has been done before the histograms was added to QA\n");}
944 historaw2=NULL;
945 }//end for
946 if(updatecanvas[0]==kTRUE||updatecanvas[1]==kTRUE)
947 {
948 canvas1->Update();
949 if(kDoEps){
950 sprintf(namecanvas,"%s.eps",canvassavedname[cannum].Data());
0bca1a77 951 canvas1->SaveAs(namecanvas);
0bca1a77 952 }
2a250bc5 953 canvas1->Print("SDDQAPlot.ps");
954 }
955 canvas1->Print("SDDQAPlot.ps]");
956
957
958 for(Int_t isave=0;isave<9;isave++){
959 if(isave<4)sprintf(histoname,"%s/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsnonexpertname[histo2savenumber[isave]].Data());
960 if(isave>4&&isave<7)sprintf(histoname,"%s/Expert/%s_%s",filepath,AliRecoParam::GetEventSpecieName(ispecie),RecPointsexpertname[histo2savenumber[isave]].Data());
961 if(isave>7)sprintf(histoname,"ITS/Raws/%s/Expert/%s_%s",AliRecoParam::GetEventSpecieName(ispecie),AliRecoParam::GetEventSpecieName(ispecie),Rawsexpertname[histo2savenumber[isave]].Data());
962 printf("file2save name:\t %s\n",histoname);
963 histo2save[isave]=(TH1F*)mergedfile.Get(histoname);
964 }
965
966 TFile file2savefortrend(trendfile,"recreate");
967 file2savefortrend.cd();
968 for(Int_t iss=0;iss<9;iss++){printf("Saved %d\n",iss); histo2save[iss]->Write();}
969 file2savefortrend.Close();
970
971 //else{delete canvas13; canvas13=NULL;}
972 //directory2=NULL;
973 }//end directory
974
975
976
0bca1a77 977 }//end for
978
2a250bc5 979
980
981
0bca1a77 982 delete directory;
983 directory=NULL;
984 delete directory2;
985 directory2=NULL;
986
987}//end macro
988
989