]>
Commit | Line | Data |
---|---|---|
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 | 33 | enum rawexpert_t{pattern,patternnorm,layer3norm,layer4norm,layer3occ,layer4occ,rawtot}; |
0bca1a77 | 34 | enum nonrawexpert_t{layer3,layer4,nonrawtot}; |
35 | ||
2a250bc5 | 36 | enum rpexpert_t{rlocaldistro,rlayer3norm,rlayer4norm,rmodpattern,rmodpatternnorm,rphilayer3,rphilayer4,rrlayer3,rrlayer4,occlayer3,occlayer4,recraw2dlayer3,recraw2dlayer4,recrawlayer3,recrawlayer4,dedxlayer3,dedxlayer4,rtot}; |
0bca1a77 | 37 | enum rnonexpert_t{rphizlayer3,rphizlayer4,rglobalrz,rglobalxy,rchargelayer3,rchargelayer4,rtimelayer3,rtimelayer4,rlayer3,rlayer4,nrtot}; |
38 | ||
2a250bc5 | 39 | enum 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 | ||
43 | void 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 |