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