2 #define BIT(n) (1 << (n))
3 #define TESTBIT(n,i) ((Bool_t)(((n) & BIT(i)) != 0))
6 const Int_t fSteerTask = 0xffffffff;
7 Char_t *fTaskClass[fknTasks] = {
9 ,"AliTRDtrackingEfficiency"
10 ,"AliTRDtrackingEfficiencyCombined"
11 ,"AliTRDtrackingResolution"
16 const Int_t nlibs = 3;
17 Char_t *libs[] = {"libProofPlayer.so", "libANALYSIS.so", "libTRDqaRec.so"};
18 void makeResults(Char_t *dir=".")
20 for(Int_t ilib=0; ilib<nlibs; ilib++){
21 if(!gSystem->Load(libs[ilib])) continue;
22 printf("Failed to load %s.\n", libs[ilib]);
29 TFileMerger *fFM = new TFileMerger();
32 TObjArray *fContainer = 0x0;
33 AliTRDrecoTask *task = 0x0;
35 printf("\n\tPROCESSING DATA FOR TASKS:\n");
36 for(Int_t itask = 3; itask < fknTasks; itask++){
37 if(!TESTBIT(fSteerTask, itask)) continue;
39 ctask = new TClass(fTaskClass[itask]);
40 task = (AliTRDrecoTask*)ctask->New();
41 printf("\t%s\n", task->GetTitle());
43 fFM = new(fFM) TFileMerger(kTRUE);
44 fFM->OutputFile(Form("merge/TRD.Task%s.root", task->GetName()));
48 fFM->AddFile(Form("./TRD.Task%s.root"/*, dir[idir++]*/, task->GetName()));
54 task->Load(Form("TRD.Task%s.root", task->GetName()));
56 //fContainer = dynamic_cast<TObjArray*>(task->GetOutputData(0));
57 for(Int_t ipic=0; ipic<task->GetNRefFigures(); ipic++){
59 task->GetRefFigure(ipic, ifirst, ilast);
60 if(!(o = fContainer->At(ifirst))) continue;
62 if(o->InheritsFrom("TH1")){
63 h = dynamic_cast<TH1*>(o);
65 } else if(o->InheritsFrom("TGraph")){
66 g = dynamic_cast<TGraph*>(o);
69 printf("No idea how to plot object of type %s.\n", o->IsA()->GetName());
70 printf("Please teach me.\n");
75 /* for(Int_t ig=ifirst+1; ig<ilast; ig++){
76 if(!(o = fContainer->At(ifirst))) continue;
78 h = dynamic_cast<TH1*>(o);
81 g = dynamic_cast<TGraph*>(o);
84 gPad->SaveAs(Form("%s_fig%d.gif", task->GetName(), ipic));