#101318: Patch for various problems in AliROOT
[u/mrichter/AliRoot.git] / PWGPP / TRD / macros / AddTRDcheckPID.C
1 #if ! defined (__CINT__) || defined (__MAKECINT__)
2 #include "TTree.h"
3 #include "TError.h"
4 #include "AliLog.h"
5 #include "AliAnalysisManager.h"
6 #include "AliAnalysisDataContainer.h"
7 #include "PWGPP/TRD/AliTRDpwgppHelper.h"
8 #include "PWGPP/TRD/AliTRDcheckPID.h"
9 #include "PWGPP/TRD/AliTRDpidRefMaker.h"
10 #include "PWGPP/TRD/AliTRDpidRefMakerNN.h"
11 #include "PWGPP/TRD/AliTRDpidRefMakerLQ.h"
12 #endif
13
14 void AddTRDcheckPID(AliAnalysisManager *mgr, Int_t map, AliAnalysisDataContainer **ci, AliAnalysisDataContainer **co)
15 {
16   Info("AddTRDcheckPID", "[0]=\"%s\" [1]=\"%s\" [2]=\"%s\"", 
17        ci[0]->GetName(), ci[1]->GetName(), ci[2]->GetName());
18
19   AliTRDcheckPID *pid(NULL);
20   mgr->AddTask(pid = new AliTRDcheckPID((char*)"TRDcheckPID"));
21   //AliLog::SetClassDebugLevel("AliTRDcheckPID", 5);  
22   pid->SetDebugLevel(0);
23   pid->SetMCdata(mgr->GetMCtruthEventHandler());
24
25   // define PID exchange container
26   co[0] = mgr->CreateContainer("InfoPID", TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
27   mgr->ConnectInput (pid, 0, mgr->GetCommonInputContainer()); // connect main (ESD) container
28   mgr->ConnectInput (pid, 1, ci[0]);                          // connect barrel tracks container
29   mgr->ConnectInput (pid, 2, ci[1]);                          // connect event info container
30   mgr->ConnectInput (pid, 3, ci[2]);                          // connect V0s container
31   mgr->ConnectOutput(pid, 1, mgr->CreateContainer(pid->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Performance",mgr->GetCommonFileName())));
32   mgr->ConnectOutput(pid, 2, co[0]);
33
34   if(TESTBIT(map, AliTRDpwgppHelper::kPIDRefMaker)){
35
36     //AliLog::SetClassDebugLevel("AliTRDpidRefMaker", 3);
37     //AliLog::SetClassDebugLevel("AliTRDpidRefMakerNN", 3);
38     //AliLog::SetClassDebugLevel("AliTRDpidRefMakerLQ", 3);
39   
40     // TRD pid reference maker NN
41     AliTRDpidRefMaker *ref(NULL);
42     mgr->AddTask(ref = new AliTRDpidRefMakerNN((char*)"TRDrefMakerNN"));
43     ref->SetDebugLevel(3);
44     ref->SetMCdata(mgr->GetMCtruthEventHandler());
45     ref->SetFriends(kTRUE);
46     mgr->ConnectInput( ref, 0, mgr->GetCommonInputContainer()); // connect main (ESD) container
47     mgr->ConnectInput( ref, 1, ci[0]);                          // connect barrel tracks container
48     mgr->ConnectInput( ref, 2, ci[1]);                          // connect event info container
49     mgr->ConnectInput( ref, 3, ci[2]);                          // connect V0s container
50     mgr->ConnectInput( ref, 4, co[0]);                          // connect pid Info container
51     mgr->ConnectOutput(ref, 1, mgr->CreateContainer("MonitorNN", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration",mgr->GetCommonFileName())));
52     mgr->ConnectOutput(ref, 2, mgr->CreateContainer(ref->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
53   
54     // TRD pid reference maker LQ 
55     mgr->AddTask(ref = new AliTRDpidRefMakerLQ((char*)"TRDrefMakerLQ"));
56     ref->SetDebugLevel(3);
57     ref->SetMCdata(mgr->GetMCtruthEventHandler());
58     ref->SetFriends(kTRUE);
59     mgr->ConnectInput(ref, 0, mgr->GetCommonInputContainer()); // connect main (ESD) container
60     mgr->ConnectInput(ref, 1, ci[0]);                          // connect barrel tracks container
61     mgr->ConnectInput(ref, 2, ci[1]);                          // connect event info container
62     mgr->ConnectInput(ref, 3, ci[2]);                          // connect V0s container
63     mgr->ConnectInput(ref, 4, co[0]);                          // connect pid Info container
64     mgr->ConnectOutput(ref, 1, mgr->CreateContainer("MonitorLQ", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
65     mgr->ConnectOutput(ref, 2, mgr->CreateContainer(ref->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
66     mgr->ConnectOutput(ref, 3, mgr->CreateContainer("PDF", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
67   }
68 }
69