TENDER becomes Tender
[u/mrichter/AliRoot.git] / PWGPP / TPC / macros / MakeResults.C
1 // Macro to make final QA spectra from information stored
2 // in QA performance objects. It is done in 2 steps:
3 // 1. Merging TPC QA performance train output
4 // 2. Analyse generic histograms to make final QA spectra 
5 //
6 // 
7 // One can merge all performance objects stored in the 
8 // output files or one of them:
9 // 
10 // ALL - all components only for simulaltion
11 // NO_MC - all components only for realdata
12 // RES (At DCA, at InnerTPC, at outerTPC)
13 // EFF
14 // DEDX
15 // DCA
16 // TPC
17 // Match (TPC+ITS, TPC+TRD, TPC Eff wrt ITS)
18 //
19 // It is recommeneded to merge particular components 
20 // for a big statistcs due to too big size of the output. For small
21 // dedicated productions (e.g. flat-p) all components can be merged at once.
22 //
23 //void MergeOutput(const char* filename = "list.txt", const char* comp = "ALL", Int_t max=2);
24 //void MakeFinalSpectra(const char* filename = "merged.root", const char* comp = "ALL");
25 void MergeOutput(const char* filename, const char* comp, Int_t max);
26 //void MakeFinalSpectra(const char* filename, const char* comp);
27 void MakeFinalSpectra(const char* comp);
28
29 void MakeResults(const char* filename = "parf.list", const char* comp = "NO_MC", Int_t max=-1)
30 {
31   gStyle->SetPalette(1);
32   gStyle->SetNumberContours(50);
33
34   gSystem->Load("libANALYSIS");
35   gSystem->Load("libANALYSISalice");
36   gSystem->Load("libTender");
37
38   gSystem->Load("libTPCcalib.so");
39   gSystem->Load("libPWGPP");
40
41   // Merge performance objects
42   MergeOutput(filename, comp, max);
43
44   // Make final spectra
45   MakeFinalSpectra(comp);
46 }
47
48
49 void MergeOutput(const char* filename, const char* comp, Int_t max)
50 {
51   //
52   if(!filename) 
53   { 
54     printf("ERROR file %s does not exist \n",filename);
55     return;
56   }
57
58   // Performance object 
59   TString str(comp);
60
61   // Create new collections
62   TList *collTPC = new TList;
63   TList *collRes = new TList;
64   TList *collResTPCInner = new TList;
65   TList *collResTPCOuter = new TList;
66   TList *collEff = new TList;
67   TList *colldEdxTPCInner = new TList;
68   TList *collDCA = new TList;
69   TList *collMatchTPCITS = new TList;
70   TList *collMatchTPCTRD = new TList;
71   TList *collMatchTPCEFF = new TList;
72
73   // Open the input stream
74   ifstream in;
75   in.open(filename);
76
77   // Read the input list of files and add them to the chain
78   TString perfile;
79   Int_t counter=0;
80   while(!in.eof()) {
81     in >> perfile;
82     if (!perfile.Contains("root")) continue; // protection
83     counter++;
84     if(max>0 && counter>max) break;
85     printf("%s \n",perfile.Data());
86     TFile::Open(perfile.Data());
87     gFile->cd();
88     TList *coutput = gFile->Get("TPC"); 
89
90     if(str.CompareTo("NO_MC")==0) {
91       collTPC->Add(coutput->FindObject("AliPerformanceTPC"));
92       colldEdxTPCInner->Add(coutput->FindObject("AliPerformanceDEdxTPCInner"));
93       collDCA->Add(coutput->FindObject("AliPerformanceDCA"));
94       collMatchTPCITS->Add(coutput->FindObject("AliPerformanceMatchTPCITS"));
95       collMatchTPCTRD->Add(coutput->FindObject("AliPerformanceMatchTPCTRD"));
96       collMatchTPCEFF->Add(coutput->FindObject("AliPerformanceMatchTPCEFF"));
97     } 
98
99     if(str.CompareTo("ALL")==0) {
100       collTPC->Add(coutput->FindObject("AliPerformanceTPC"));
101       collRes->Add(coutput->FindObject("AliPerformanceRes"));
102       collResTPCInner->Add(coutput->FindObject("AliPerformanceResTPCInner"));
103       collResTPCOuter->Add(coutput->FindObject("AliPerformanceResTPCOuter"));
104       collEff->Add(coutput->FindObject("AliPerformanceEff"));
105       colldEdxTPCInner->Add(coutput->FindObject("AliPerformanceDEdxTPCInner"));
106       collDCA->Add(coutput->FindObject("AliPerformanceDCA"));
107       collMatchTPCITS->Add(coutput->FindObject("AliPerformanceMatchTPCITS"));
108       collMatchTPCTRD->Add(coutput->FindObject("AliPerformanceMatchTPCTRD"));
109       collMatchTPCEFF->Add(coutput->FindObject("AliPerformanceMatchTPCEFF"));
110     } 
111     else if(str.CompareTo("TPC")==0) {
112       collTPC->Add(coutput->FindObject("AliPerformanceTPC"));
113     }
114     else if(str.CompareTo("RES")==0) {
115       collRes->Add(coutput->FindObject("AliPerformanceRes"));
116       collResTPCInner->Add(coutput->FindObject("AliPerformanceResTPCInner"));
117       collResTPCOuter->Add(coutput->FindObject("AliPerformanceResTPCOuter"));
118     }
119     else if(str.CompareTo("EFF")==0) {
120       collEff->Add(coutput->FindObject("AliPerformanceEff"));
121     }
122     else if(str.CompareTo("DEDX")==0) {
123       colldEdxTPCInner->Add(coutput->FindObject("AliPerformanceDEdxTPCInner"));
124     }
125     else if(str.CompareTo("DCA")==0) {
126       collDCA->Add(coutput->FindObject("AliPerformanceDCA"));
127     }
128     else if(str.CompareTo("MATCH")==0) {
129       collMatchTPCITS->Add(coutput->FindObject("AliPerformanceMatchTPCITS"));
130       collMatchTPCTRD->Add(coutput->FindObject("AliPerformanceMatchTPCTRD"));
131       collMatchTPCEFF->Add(coutput->FindObject("AliPerformanceMatchTPCEFF"));
132     }
133     else {
134      continue;
135     }
136   }
137   in.close();
138
139   //
140   AliPerformanceTPC *tpc = new AliPerformanceTPC("AliPerformanceTPC","AliPerformanceTPC",0,kFALSE);
141   AliPerformanceRes *res = new AliPerformanceRes("AliPerformanceRes","res",0,kFALSE);
142   AliPerformanceRes *resTPCInner = new AliPerformanceRes("AliPerformanceResTPCInner","AliPerformanceResTPCInner",3,kFALSE);
143   AliPerformanceRes *resTPCOuter = new AliPerformanceRes("AliPerformanceResTPCOuter","AliPerformanceResTPCOuter",4,kFALSE);
144   AliPerformanceEff *eff = new AliPerformanceEff("AliPerformanceEff","AliPerformanceEff",0,kFALSE);
145   AliPerformanceDEdx *dedx = new AliPerformanceDEdx("AliPerformanceDEdxTPCInner","AliPerformanceDEdxTPCInner",3,kFALSE);
146   AliPerformanceDCA *dca = new AliPerformanceDCA("AliPerformanceDCA","AliPerformanceDCA",0,kFALSE);
147   AliPerformanceMatch *matchTPCITS = new AliPerformanceMatch("AliPerformanceMatchTPCITS","AliPerformanceTPCITS",0,kFALSE);
148   AliPerformanceMatch *matchTPCTRD = new AliPerformanceMatch("AliPerformanceMatchTPCTRD","AliPerformanceTPCTRD",1,kFALSE);
149   AliPerformanceMatch *matchTPCEFF = new AliPerformanceMatch("AliPerformanceMatchTPCEFF","AliPerformanceTPCEFF",2,kFALSE);
150
151   // Create output list
152   TFolder *outList = new TFolder();
153   outList->SetOwner();
154   outList->SetName("coutput");
155
156   // merge objects and add to the list
157   if(!str.CompareTo("ALL")) {
158     tpc->Merge(collTPC); 
159     outList->Add(tpc);
160     res->Merge(collRes);
161     outList->Add(res);
162     resTPCInner->Merge(collResTPCInner);
163     outList->Add(resTPCInner);
164     resTPCOuter->Merge(collResTPCOuter);
165     outList->Add(resTPCOuter);
166     eff->Merge(collEff);
167     outList->Add(eff);
168     dedx->Merge(colldEdxTPCInner);
169     outList->Add(dedx);
170     dca->Merge(collDCA);
171     outList->Add(dca);
172     matchTPCITS->Merge(collMatchTPCITS);
173     outList->Add(matchTPCITS);
174     matchTPCTRD->Merge(collMatchTPCTRD);
175     outList->Add(matchTPCTRD);
176     matchTPCEFF->Merge(collMatchTPCEFF);
177     outList->Add(matchTPCEFF);
178   }
179   else if(!str.CompareTo("NO_MC")) {
180     tpc->Merge(collTPC); 
181     outList->Add(tpc);
182     dedx->Merge(colldEdxTPCInner);
183     outList->Add(dedx);
184     dca->Merge(collDCA);
185     outList->Add(dca);
186     matchTPCITS->Merge(collMatchTPCITS);
187     outList->Add(matchTPCITS);
188     matchTPCTRD->Merge(collMatchTPCTRD);
189     outList->Add(matchTPCTRD);
190     matchTPCEFF->Merge(collMatchTPCEFF);
191     outList->Add(matchTPCEFF);
192   }
193   else if(!str.CompareTo("TPC")) {
194     tpc->Merge(collTPC); 
195     outList->Add(tpc);
196   }
197   else if(!str.CompareTo("RES")) {
198     res->Merge(collRes);
199     outList->Add(res);
200     resTPCInner->Merge(collResTPCInner);
201     outList->Add(resTPCInner);
202     resTPCOuter->Merge(collResTPCOuter);
203     outList->Add(resTPCOuter);
204   }
205   else if(!str.CompareTo("EFF")) {
206     eff->Merge(collEff);
207     outList->Add(eff);
208   }
209   else if(!str.CompareTo("DEDX")) {
210     dedx->Merge(colldEdxTPCInner);
211     outList->Add(dedx);
212   }
213   else if(!str.CompareTo("DCA")) {
214     dca->Merge(collDCA);
215     outList->Add(dca);
216   }
217   else if(!str.CompareTo("MATCH")) {
218     matchTPCITS->Merge(collMatchTPCITS);
219     outList->Add(matchTPCITS);
220     matchTPCTRD->Merge(collMatchTPCTRD);
221     outList->Add(matchTPCTRD);
222     matchTPCEFF->Merge(collMatchTPCEFF);
223     outList->Add(matchTPCEFF);
224   }
225
226   //
227   
228   TFile *outFile = new TFile( Form("TPC.Performance.Merged.%s.root",comp),"recreate");
229   outFile->cd();
230   outList->Write();
231   outFile->Close();
232 }
233
234 void MakeFinalSpectra(const char* comp) 
235 {
236   // open proper input file
237   TFile *inFile = TFile::Open(Form("TPC.Performance.Merged.%s.root",comp));
238   inFile->cd();
239
240   // Performance object 
241   TString str(comp);
242
243   if(str.CompareTo("ALL") == 0) 
244   {
245     AliPerformanceTPC * compObjTPC = (AliPerformanceTPC*)coutput->FindObject("AliPerformanceTPC");
246     compObjTPC->Analyse();
247     compObjTPC->GetAnalysisFolder()->ls("*");
248     compObjTPC->PrintHisto(kTRUE,"PerformanceTPCQA.ps");
249     TFile fout("PerformanceTPCQA.root","recreate");
250     compObjTPC->GetAnalysisFolder()->Write();
251     fout.Close();
252
253   inFile->cd();
254     AliPerformanceEff * compObjEff = (AliPerformanceEff*)coutput->FindObject("AliPerformanceEff");
255     compObjEff->Analyse();
256     compObjEff->GetAnalysisFolder()->ls("*");
257     compObjEff->PrintHisto(kTRUE,"PerformanceEffQA.ps");
258     TFile fout("PerformanceEffQA.root","recreate");
259     compObjEff->GetAnalysisFolder()->Write();
260     fout.Close();
261
262   inFile->cd();
263     AliPerformanceDCA * compObjDCA = (AliPerformanceDCA*)coutput->FindObject("AliPerformanceDCA");
264     compObjDCA->Analyse();
265     compObjDCA->GetAnalysisFolder()->ls("*");
266     compObjDCA->PrintHisto(kTRUE,"PerformanceDCAQA.ps");
267     TFile fout("PerformanceDCAQA.root","recreate");
268     compObjDCA->GetAnalysisFolder()->Write();
269     fout.Close();
270
271   inFile->cd();
272     AliPerformanceRes * compObjRes = (AliPerformanceRes*)coutput->FindObject("AliPerformanceRes");
273     compObjRes->Analyse();
274     compObjRes->GetAnalysisFolder()->ls("*");
275     compObjRes->PrintHisto(kTRUE,"PerformanceResQA.ps");
276     TFile fout("PerformanceResQA.root","recreate");
277     compObjRes->GetAnalysisFolder()->Write();
278     fout.Close();
279
280   inFile->cd();
281     AliPerformanceRes * compObjRes = (AliPerformanceRes*)coutput->FindObject("AliPerformanceResTPCInner");
282     compObjRes->Analyse();
283     compObjRes->GetAnalysisFolder()->ls("*");
284     compObjRes->PrintHisto(kTRUE,"PerformanceResTPCInnerQA.ps");
285     TFile fout("PerformanceResTPCInnerQA.root","recreate");
286     compObjRes->GetAnalysisFolder()->Write();
287     fout.Close();
288
289   inFile->cd();
290     AliPerformanceRes * compObjRes = (AliPerformanceRes*)coutput->FindObject("AliPerformanceResTPCOuter");
291     compObjRes->Analyse();
292     compObjRes->GetAnalysisFolder()->ls("*");
293     compObjRes->PrintHisto(kTRUE,"PerformanceResTPCOuterQA.ps");
294     TFile fout("PerformanceResTPCOuterQA.root","recreate");
295     compObjRes->GetAnalysisFolder()->Write();
296     fout.Close();
297
298   inFile->cd();
299     AliPerformanceDEdx* compObjDEdx = (AliPerformanceDEdx*)coutput->FindObject("AliPerformanceDEdxTPCInner");
300     compObjDEdx->Analyse();
301     compObjDEdx->GetAnalysisFolder()->ls("*");
302     compObjDEdx->PrintHisto(kTRUE,"PerformanceDEdxTPCInnerQA.ps");
303     TFile fout("PerformanceDEdxTPCInnerQA.root","recreate");
304     compObjDEdx->GetAnalysisFolder()->Write();
305     fout.Close();
306
307  inFile->cd();
308     AliPerformanceMatch * compObjMatchTPCITS = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCITS");
309     compObjMatchTPCITS->Analyse();
310     compObjMatchTPCITS->GetAnalysisFolder()->ls("*");
311     compObjMatchTPCITS->PrintHisto(kTRUE,"PerformanceMatchTPCITSQA.ps");
312     TFile fout("PerformanceMatchTPCITSQA.root","recreate");
313     compObjMatchTPCITS->GetAnalysisFolder()->Write();
314     fout.Close();
315
316   inFile->cd();
317     AliPerformanceMatch * compObjMatchTPCTRD = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCTRD");
318     compObjMatchTPCTRD->Analyse();
319     compObjMatchTPCTRD->GetAnalysisFolder()->ls("*");
320     compObjMatchTPCTRD->PrintHisto(kTRUE,"PerformanceMatchTPCTRDQA.ps");
321     TFile fout("PerformanceMatchTPCTRDQA.root","recreate");
322     compObjMatchTPCTRD->GetAnalysisFolder()->Write();
323     fout.Close();
324
325 inFile->cd();
326     AliPerformanceMatch * compObjMatchTPCEFF = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCEFF");
327     compObjMatchTPCEFF->Analyse();
328     compObjMatchTPCEFF->GetAnalysisFolder()->ls("*");
329     compObjMatchTPCEFF->PrintHisto(kTRUE,"PerformanceMatchTPCEFFQA.ps");
330     TFile fout("PerformanceMatchTPCEFFQA.root","recreate");
331     compObjMatchTPCEFF->GetAnalysisFolder()->Write();
332     fout.Close();
333   }
334   else if(str.CompareTo("NO_MC") == 0) 
335   {
336     AliPerformanceTPC * compObjTPC = (AliPerformanceTPC*)coutput->FindObject("AliPerformanceTPC");
337     compObjTPC->Analyse();
338     compObjTPC->GetAnalysisFolder()->ls("*");
339     compObjTPC->PrintHisto(kTRUE,"PerformanceTPCQA.ps");
340     TFile fout("PerformanceTPCQA.root","recreate");
341     compObjTPC->GetAnalysisFolder()->Write();
342     fout.Close();
343
344   inFile->cd();
345     AliPerformanceDCA * compObjDCA = (AliPerformanceDCA*)coutput->FindObject("AliPerformanceDCA");
346     compObjDCA->Analyse();
347     compObjDCA->GetAnalysisFolder()->ls("*");
348     compObjDCA->PrintHisto(kTRUE,"PerformanceDCAQA.ps");
349     TFile fout("PerformanceDCAQA.root","recreate");
350     compObjDCA->GetAnalysisFolder()->Write();
351     fout.Close();
352
353   inFile->cd();
354     AliPerformanceDEdx* compObjDEdx = (AliPerformanceDEdx*)coutput->FindObject("AliPerformanceDEdxTPCInner");
355     compObjDEdx->Analyse();
356     compObjDEdx->GetAnalysisFolder()->ls("*");
357     compObjDEdx->PrintHisto(kTRUE,"PerformanceDEdxTPCInnerQA.ps");
358     TFile fout("PerformanceDEdxTPCInnerQA.root","recreate");
359     compObjDEdx->GetAnalysisFolder()->Write();
360     fout.Close();
361     
362   inFile->cd();
363     AliPerformanceMatch * compObjMatchTPCITS = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCITS");
364     compObjMatchTPCITS->Analyse();
365     compObjMatchTPCITS->GetAnalysisFolder()->ls("*");
366     compObjMatchTPCITS->PrintHisto(kTRUE,"PerformanceMatchTPCITSQA.ps");
367     TFile fout("PerformanceMatchTPCITSQA.root","recreate");
368     compObjMatchTPCITS->GetAnalysisFolder()->Write();
369     fout.Close();
370
371   inFile->cd();
372     AliPerformanceMatch * compObjMatchTPCTRD = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCTRD");
373     compObjMatchTPCTRD->Analyse();
374     compObjMatchTPCTRD->GetAnalysisFolder()->ls("*");
375     compObjMatchTPCTRD->PrintHisto(kTRUE,"PerformanceMatchTPCTRDQA.ps");
376     TFile fout("PerformanceMatchTPCTRDQA.root","recreate");
377     compObjMatchTPCTRD->GetAnalysisFolder()->Write();
378     fout.Close();
379    
380 inFile->cd();
381     AliPerformanceMatch * compObjMatchTPCEFF = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCEFF");
382     compObjMatchTPCEFF->Analyse();
383     compObjMatchTPCEFF->GetAnalysisFolder()->ls("*");
384     compObjMatchTPCEFF->PrintHisto(kTRUE,"PerformanceMatchTPCEFFQA.ps");
385     TFile fout("PerformanceMatchTPCEFFQA.root","recreate");
386     compObjMatchTPCEFF->GetAnalysisFolder()->Write();
387     fout.Close();
388   }
389   else if(str.CompareTo("TPC") == 0) 
390   {
391   inFile->cd();
392     AliPerformanceTPC * compObjTPC = (AliPerformanceTPC*)coutput->FindObject("AliPerformanceTPC");
393     compObjTPC->Analyse();
394     compObjTPC->GetAnalysisFolder()->ls("*");
395     compObjTPC->PrintHisto(kTRUE,"PerformanceTPCQA.ps");
396     TFile fout("PerformanceTPCQA.root","recreate");
397     compObjTPC->GetAnalysisFolder()->Write();
398     fout.Close();
399   }
400   else if(str.CompareTo("EFF") == 0) 
401   {
402   inFile->cd();
403     AliPerformanceEff * compObjEff = (AliPerformanceEff*)coutput->FindObject("AliPerformanceEff");
404     compObjEff->Analyse();
405     compObjEff->GetAnalysisFolder()->ls("*");
406     compObjEff->PrintHisto(kTRUE,"PerformanceEffQA.ps");
407     TFile fout("PerformanceEffQA.root","recreate");
408     compObjEff->GetAnalysisFolder()->Write();
409     fout.Close();
410   }
411   else if(str.CompareTo("RES") == 0) 
412   {
413   inFile->cd();
414     AliPerformanceRes * compObjRes = (AliPerformanceRes*)coutput->FindObject("AliPerformanceRes");
415     compObjRes->Analyse();
416     compObjRes->GetAnalysisFolder()->ls("*");
417     compObjRes->PrintHisto(kTRUE,"PerformanceResQA.ps");
418     TFile fout("PerformanceResQA.root","recreate");
419     compObjRes->GetAnalysisFolder()->Write();
420     fout.Close();
421
422   inFile->cd();
423     AliPerformanceRes * compObjRes = (AliPerformanceRes*)coutput->FindObject("AliPerformanceResTPCInner");
424     compObjRes->Analyse();
425     compObjRes->GetAnalysisFolder()->ls("*");
426     compObjRes->PrintHisto(kTRUE,"PerformanceResTPCInnerQA.ps");
427     TFile fout("PerformanceResTPCInnerQA.root","recreate");
428     compObjRes->GetAnalysisFolder()->Write();
429     fout.Close();
430   }
431   else if(str.CompareTo("DEDX") == 0) 
432   {
433   inFile->cd();
434     AliPerformanceDEdx* compObjDEdx = (AliPerformanceDEdx*)coutput->FindObject("AliPerformanceDEdxTPCInner");
435     compObjDEdx->Analyse();
436     compObjDEdx->GetAnalysisFolder()->ls("*");
437     compObjDEdx->PrintHisto(kTRUE,"PerformanceDEdxTPCInnerQA.ps");
438     TFile fout("PerformanceDEdxTPCInnerQA.root","recreate");
439     compObjDEdx->GetAnalysisFolder()->Write();
440     fout.Close();
441   }
442   else if(str.CompareTo("DCA") == 0) 
443   {
444   inFile->cd();
445     AliPerformanceDCA * compObjDCA = (AliPerformanceDCA*)coutput->FindObject("AliPerformanceDCA");
446     compObjDCA->Analyse();
447     compObjDCA->GetAnalysisFolder()->ls("*");
448     compObjDCA->PrintHisto(kTRUE,"PerformanceDCAQA.ps");
449     TFile fout("PerformanceDCAQA.root","recreate");
450     compObjDCA->GetAnalysisFolder()->Write();
451     fout.Close();
452   }
453   else if(str.CompareTo("MATCH") == 0) 
454   {
455   inFile->cd();
456     AliPerformanceMatch * compObjMatchTPCITS = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCITS");
457     compObjMatchTPCITS->Analyse();
458     compObjMatchTPCITS->GetAnalysisFolder()->ls("*");
459     compObjMatchTPCITS->PrintHisto(kTRUE,"PerformanceMatchTPCITSQA.ps");
460     TFile fout("PerformanceMatchTPCITSQA.root","recreate");
461     compObjMatchTPCITS->GetAnalysisFolder()->Write();
462     fout.Close();
463
464   inFile->cd();
465     AliPerformanceMatch * compObjMatchTPCTRD = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCTRD");
466     compObjMatchTPCTRD->Analyse();
467     compObjMatchTPCTRD->GetAnalysisFolder()->ls("*");
468     compObjMatchTPCTRD->PrintHisto(kTRUE,"PerformanceMatchTPCTRDQA.ps");
469     TFile fout("PerformanceMatchTPCTRDQA.root","recreate");
470     compObjMatchTPCTRD->GetAnalysisFolder()->Write();
471     fout.Close();
472
473 inFile->cd();
474     AliPerformanceMatch * compObjMatchTPCEFF = (AliPerformanceMatch*)coutput->FindObject("AliPerformanceMatchTPCEFF");
475     compObjMatchTPCEFF->Analyse();
476     compObjMatchTPCEFF->GetAnalysisFolder()->ls("*");
477     compObjMatchTPCEFF->PrintHisto(kTRUE,"PerformanceMatchTPCEFFQA.ps");
478     TFile fout("PerformanceMatchTPCEFFQA.root","recreate");
479     compObjMatchTPCEFF->GetAnalysisFolder()->Write();
480     fout.Close();
481   }
482 }