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