QA of TRD tracking performance
[u/mrichter/AliRoot.git] / TRD / qaRec / run.C
1 Char_t *source = "/d/alice12/mfasel/train"; // To Be Changed
2
3 void run(const Char_t *list="list.txt", Int_t nmax=-1) {
4   TStopwatch timer;
5   timer.Start();
6   Char_t *source = Form("%s/TRD/qaRec",gSystem->ExpandPathName("$ALICE_ROOT"));
7
8 /*  gSystem->Load("libSTEERBase.so");               
9   gSystem->Load("libESD.so");
10   gSystem->Load("libVMC.so");
11   gSystem->Load("libAOD.so");*/
12   gSystem->Load("libANALYSIS.so");
13   gSystem->Load(Form("%s/AliTRDtrackInfo/libTRDtrackInfo.so",source));
14         
15   gROOT->LoadMacro(Form("%s/AliTRDtrackInfoGen.cxx+", source));
16   gROOT->LoadMacro(Form("%s/AliTRDtrackingEfficiency.cxx+", source));
17   gROOT->LoadMacro(Form("%s/AliTRDtrackingEfficiencyCombined.cxx+", source));
18
19   //____________________________________________//
20
21   TChain* chain = 0x0;
22   gROOT->LoadMacro(Form("%s/CreateESDChain.C", source));
23   chain = CreateESDChain(list,nmax);
24   //chain->SetBranchStatus("*", 0);
25   chain->SetBranchStatus("*FMD*",0);
26   chain->SetBranchStatus("*Calo*",0);
27   chain->SetBranchStatus("Tracks", 1);
28   chain->SetBranchStatus("ESDfriend*",1);
29   chain->Lookup();
30   chain->GetListOfFiles()->Print();
31   printf("\n ----> CHAIN HAS %d ENTRIES <----\n\n", (Int_t)chain->GetEntries());
32   
33   AliLog::SetGlobalLogLevel(AliLog::kError);
34
35   //____________________________________________
36   // Make the analysis manager
37   AliAnalysisManager *mgr = new AliAnalysisManager("TRD Track Info Manager");
38   //mgr->SetSpecialOutputLocation(source); // To Be Changed
39   AliVEventHandler* esdH = new AliESDInputHandler;
40   mgr->SetInputEventHandler(esdH);  
41   AliMCEventHandler *mc = new AliMCEventHandler();
42   mgr->SetMCtruthEventHandler(mc);
43   //mgr->SetDebugLevel(10);
44
45   //____________________________________________
46   // TRD track summary generator
47   AliTRDtrackInfoGen *task1 = new AliTRDtrackInfoGen();
48   task1->SetDebugLevel(1);
49   mgr->AddTask(task1);
50   // Create containers for input/output
51   AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("data", TChain::Class(), AliAnalysisManager::kInputContainer);
52   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("TrackInfoList", TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
53   mgr->ConnectInput( task1, 0, cinput1);
54   mgr->ConnectOutput(task1, 0, coutput1);
55
56   //____________________________________________
57   // TRD barrel tracking efficiency
58   AliTRDtrackingEfficiency *task2 = new AliTRDtrackingEfficiency();
59   task2->SetDebugLevel(1);
60   mgr->AddTask(task2);
61   //Create containers for input/output
62   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("TrackingEfficiency", TList::Class(), AliAnalysisManager::kOutputContainer, "TRD.TrackingEfficiency.root");
63   mgr->ConnectInput( task2, 0, coutput1);
64   mgr->ConnectOutput(task2, 0, coutput2);
65
66   //____________________________________________
67   // TRD combined tracking efficiency
68   AliTRDtrackingEfficiencyCombined *task3 = new AliTRDtrackingEfficiencyCombined();
69   task3->SetDebugLevel(0);
70   mgr->AddTask(task3);
71   // Create containers for input/output
72   AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("TrackingEfficiencyCombined", TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.TrackingEfficiencyCombined.root");
73   mgr->ConnectInput( task3, 0, coutput1);
74   mgr->ConnectOutput(task3, 0, coutput3);
75
76
77
78   if (!mgr->InitAnalysis()) return;
79   mgr->PrintStatus();
80   mgr->StartAnalysis("local",chain);
81
82   timer.Stop();
83   timer.Print();
84 }