c434f7dd70458031dc02161b612e9481f9bc2f37
[u/mrichter/AliRoot.git] / PWG1 / TRD / macros / AddTRDefficiency.C
1 #if ! defined (__CINT__) || defined (__MAKECINT__)
2 #include "TError.h"
3 #include "AliAnalysisManager.h"
4 #include "AliAnalysisDataContainer.h"
5 #include "PWG1/TRD/AliTRDpwg1Helper.h"
6 #include "PWG1/TRD/AliTRDefficiency.h"
7 #include "PWG1/TRD/AliTRDefficiencyMC.h"
8 #include "PWG1/TRD/AliTRDmultiplicity.h"
9 #endif
10
11 void AddTRDefficiency(AliAnalysisManager *mgr, Int_t map, AliAnalysisDataContainer **ci/*, AliAnalysisDataContainer **co*/)
12 {
13   Info("AddTRDefficiency", Form("[0]=\"%s\" [1]=\"%s\" [2]=\"%s\" [3]=\"%s\"", ci[0]->GetName(), ci[1]->GetName(), ci[2]->GetName(), ci[3]->GetName()));
14
15   AliAnalysisDataContainer *evInfoContainer = ci[3];
16   AliTRDrecoTask *eff(NULL);
17   mgr->AddTask(eff = new AliTRDefficiency((char*)"TRDefficiency"));
18   eff->SetDebugLevel(0);
19   //AliLog::SetClassDebugLevel("AliTRDefficiency", 5);  
20   Int_t trackStatus = 0; // barrel tracks
21 //                    = 1; // kink tracks
22 //                    = 2; // SA tracks
23   mgr->ConnectInput(eff, 0, mgr->GetCommonInputContainer());  // connect main (ESD) container
24   mgr->ConnectInput(eff, 1, ci[trackStatus]);                 // conect track info container
25   mgr->ConnectInput(eff, 2, evInfoContainer);                 // conect event info container
26   mgr->ConnectOutput(eff,1, mgr->CreateContainer(eff->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Performance", mgr->GetCommonFileName())));
27     
28
29   // TRD combined tracking efficiency
30   if(mgr->GetMCtruthEventHandler() && TESTBIT(map, AliTRDpwg1Helper::kEfficiencyMC)) {
31     mgr->AddTask(eff = new AliTRDefficiencyMC((char*)"TRDefficiencyMC"));
32     eff->SetDebugLevel(0);
33     //AliLog::SetClassDebugLevel("AliTRDefficiencyMC", 5);  
34
35     // Create containers for input/output
36     mgr->ConnectInput(eff, 0, mgr->GetCommonInputContainer());  
37     mgr->ConnectInput(eff, 1, ci[trackStatus]);
38     mgr->ConnectInput(eff, 2, evInfoContainer);
39     mgr->ConnectOutput(eff, 1, mgr->CreateContainer(eff->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Performance", mgr->GetCommonFileName())));
40   }
41
42   // TRD single track selection
43   if(!(TESTBIT(map, AliTRDpwg1Helper::kMultiplicity))) return;
44
45   mgr->AddTask(eff = new AliTRDmultiplicity((char*)"TRDmultiplicity"));
46   eff->SetDebugLevel(0);
47   //AliLog::SetClassDebugLevel("AliTRDmultiplicity", 5);  
48   mgr->ConnectInput(eff, 0, mgr->GetCommonInputContainer());  
49   mgr->ConnectInput(eff, 1, ci[0]);
50   mgr->ConnectOutput(eff, 1, mgr->CreateContainer(eff->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
51 }
52