]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/qaAnalysis/runTRDqaAnalysis.C
Create the rec-point branch even in the case of no digits. Please review and fix...
[u/mrichter/AliRoot.git] / TRD / qaAnalysis / 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 //
10
11 gSystem->Load("libANALYSIS.so");
12 gSystem->Load("libTRDqaAnalysis.so");
13
14 // Setup chain
15 TChain *chain = new TChain("esdTree");
16 //chain->SetBranchStatus("*",0);
17 //chain->SetBranchStatus("*fTracks*",1);
18 //esdTree->SetBranchStatus("ESDfriend*",1);
19
20 int nfiles = 0;
21 fstream coll(chainName, ios_base::in);
22 TString line;
23 while (line.ReadLine(coll)) {
24 cout << line.Data() << endl;
25 chain->Add(line.Data());
26 nfiles++;
27 if (limit && nfiles > limit) break;
28 }
29
30 // Create an analysis manager
31 AliAnalysisManager *mgr = new AliAnalysisManager("qaTasks", "No safety");
8e2f611a 32 AliAnalysisTask *tasks[4];
33 AliAnalysisDataContainer *out[4];
917559ee 34
35 tasks[0] = new AliTRDqaElectronSpectra("trdElectronSpectra");
36 tasks[1] = new AliTRDqaESDFriends("trdESDFriends");
37 tasks[2] = new AliTRDqaEnergyDeposit("trdEnergyDeposit");
8e2f611a 38 tasks[3] = new AliTRDqaJPsi("trdJPsi");
917559ee 39
40 AliAnalysisDataContainer *cinput =
41 mgr->CreateContainer("inputESD", TTree::Class(), AliAnalysisManager::kInputContainer);
42
43 out[0] = mgr->CreateContainer("oES", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
44 out[1] = mgr->CreateContainer("oEF", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
45 out[2] = mgr->CreateContainer("oED", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
8e2f611a 46 out[3] = mgr->CreateContainer("oEJ", TObjArray::Class(), AliAnalysisManager::kOutputContainer);
917559ee 47
48 // register
8e2f611a 49 for(int i=0; i<4; i++) {
917559ee 50 mgr->AddTask(tasks[i]);
51 mgr->ConnectInput(tasks[i],0,cinput);
52 mgr->ConnectOutput(tasks[i],0,out[i]);
53 }
54
55 // Connect input data
56 cout << "connect to data" << endl;
57 cinput->SetData(chain);
58 Long_t t0 = gSystem->Now();
59
60 TStopwatch sw;
61 sw.Start();
62
63 cout << "Initializing" << endl;
64 if (mgr->InitAnalysis()) {
65 mgr->PrintStatus();
66 mgr->StartAnalysis("local", chain);
67 }
68
69 sw.Stop();
70 sw.Print();
71
72 Long_t t1 = gSystem->Now();
73 double time = 1e-3 * (t1-t0);
74
75 //cout << "Size = " << mgr->GetNBytes()*1e-6 << " MB" << endl;
76 //cout << "Time = " << time << " s" << endl;
77 //cout << "Speed = " << 1e-6*mgr->GetNBytes()/time << " MB/s" << endl;
78 //cout << "Events = " << mgr->GetNEvents()/time << " Events/s" << endl;
79
80 //gSystem->Exit(0);
81
82
83}