]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/TRDqaAnalysis/runTRDqaAnalysis.C
.so cleanup: removed from gSystem->Load()
[u/mrichter/AliRoot.git] / TRD / TRDqaAnalysis / runTRDqaAnalysis.C
CommitLineData
917559ee 1
2void runTRDqaAnalysis(const char *chainName, int limit = 0) {
3 //
4 // runs the analysis train
5 // parameters:
6 // chainName -- a name of a file with a list of ESDs
7 // limit -- number of files to be processed
8 //
9 //
9bff9978 10
11 /**/
4070f709 12 gSystem->Load("libTree");
13 gSystem->Load("libGeom");
14 gSystem->Load("libVMC");
15 gSystem->Load("libSTEERBase");
16 gSystem->Load("libESD");
9bff9978 17 /**/
917559ee 18
4070f709 19 gSystem->Load("libANALYSIS");
20 gSystem->Load("libANALYSISalice");
21 gSystem->Load("libTRDqaAnalysis");
917559ee 22
9bff9978 23 // Setup chain
917559ee 24 TChain *chain = new TChain("esdTree");
25 //chain->SetBranchStatus("*",0);
26 //chain->SetBranchStatus("*fTracks*",1);
9bff9978 27 //chain->SetBranchStatus("ESDfriend*",1);
28 //chain->SetBranchStatus("ESDfriend.*",1);
917559ee 29
30 int nfiles = 0;
31 fstream coll(chainName, ios_base::in);
32 TString line;
33 while (line.ReadLine(coll)) {
34 cout << line.Data() << endl;
35 chain->Add(line.Data());
36 nfiles++;
37 if (limit && nfiles > limit) break;
38 }
39
40 // Create an analysis manager
9bff9978 41 AliAnalysisManager *mgr = new AliAnalysisManager("qaTasks", "title");
42 AliAnalysisTask *tasks[5];
43 AliAnalysisDataContainer *out[5];
917559ee 44
45 tasks[0] = new AliTRDqaElectronSpectra("trdElectronSpectra");
46 tasks[1] = new AliTRDqaESDFriends("trdESDFriends");
47 tasks[2] = new AliTRDqaEnergyDeposit("trdEnergyDeposit");
9bff9978 48 tasks[3] = new AliTRDqaBasic("trdBasic");
49 tasks[4] = new AliTRDqaJPsi("trdJPsi");
917559ee 50
51 AliAnalysisDataContainer *cinput =
52 mgr->CreateContainer("inputESD", TTree::Class(), AliAnalysisManager::kInputContainer);
53
54 out[0] = mgr->CreateContainer("oES", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
55 out[1] = mgr->CreateContainer("oEF", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
56 out[2] = mgr->CreateContainer("oED", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
9bff9978 57 out[3] = mgr->CreateContainer("oBS", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
58 out[4] = mgr->CreateContainer("oEJ", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
917559ee 59
60 // register
8e2f611a 61 for(int i=0; i<4; i++) {
917559ee 62 mgr->AddTask(tasks[i]);
63 mgr->ConnectInput(tasks[i],0,cinput);
64 mgr->ConnectOutput(tasks[i],0,out[i]);
65 }
66
67 // Connect input data
68 cout << "connect to data" << endl;
69 cinput->SetData(chain);
70 Long_t t0 = gSystem->Now();
71
72 TStopwatch sw;
73 sw.Start();
74
75 cout << "Initializing" << endl;
76 if (mgr->InitAnalysis()) {
77 mgr->PrintStatus();
78 mgr->StartAnalysis("local", chain);
79 }
80
81 sw.Stop();
82 sw.Print();
83
84 Long_t t1 = gSystem->Now();
85 double time = 1e-3 * (t1-t0);
86
87 //cout << "Size = " << mgr->GetNBytes()*1e-6 << " MB" << endl;
88 //cout << "Time = " << time << " s" << endl;
89 //cout << "Speed = " << 1e-6*mgr->GetNBytes()/time << " MB/s" << endl;
90 //cout << "Events = " << mgr->GetNEvents()/time << " Events/s" << endl;
91
92 //gSystem->Exit(0);
93
94
95}