]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/macros/AddTRDcheckPID.C
correct usage of steering options for the PID task
[u/mrichter/AliRoot.git] / PWG1 / TRD / macros / AddTRDcheckPID.C
1 #if ! defined (__CINT__) || defined (__MAKECINT__)
2 #include "TTree.h"
3 #include "AliLog.h"
4 #include "AliAnalysisManager.h"
5 #include "AliAnalysisDataContainer.h"
6 #include "PWG1/TRD/macros/AliTRDperformanceTrain.h"
7 #include "PWG1/TRD/AliTRDcheckPID.h"
8 #include "PWG1/TRD/AliTRDpidRefMaker.h"
9 #include "PWG1/TRD/AliTRDpidRefMakerLQ.h"
10 #endif
11
12 #include "PWG1/TRD/macros/helper.C"
13 void AddTRDcheckPID(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContainer **ci/*, AliAnalysisDataContainer **co*/)
14 {
15   Int_t map = ParseOptions(trd);
16   AliAnalysisDataContainer *ce(NULL);
17   if(TSTBIT(map, kPIDRefMaker)){
18     AliTRDcheckPID *pid = 0x0;
19     mgr->AddTask(pid = new AliTRDcheckPID());
20     pid->SetDebugLevel(0);
21     pid->SetMCdata(mgr->GetMCtruthEventHandler());
22     mgr->ConnectInput(pid, 0, ci[0]);
23     mgr->ConnectOutput(pid, 0, mgr->CreateContainer(pid->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
24
25     // define PID exchange container
26     ce = mgr->CreateContainer("InfoPID", TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
27     mgr->ConnectOutput(pid, 1, ce);
28   }  
29
30   if(TSTBIT(map, kPIDRefMaker)){
31     // TRD pid reference maker 
32     AliTRDpidRefMaker *ref = new AliTRDpidRefMaker(); 
33     mgr->AddTask(ref);
34     ref->SetDebugLevel(3);
35     AliLog::SetClassDebugLevel("AliTRDpidRefMaker", 3);
36     ref->SetMCdata(mgr->GetMCtruthEventHandler());
37     ref->SetFriends(kTRUE);
38
39     // link basic ref maker
40     mgr->ConnectInput( ref, 0, ci[0]);
41     mgr->ConnectInput( ref, 1, ci[2]);
42     if(ce) mgr->ConnectInput( ref, 2, ce);
43     mgr->ConnectOutput(ref, 0, mgr->CreateContainer(Form("Moni%s", ref->GetName()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
44     mgr->ConnectOutput(ref, 1, mgr->CreateContainer(ref->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
45
46     // TRD pid reference maker LQ 
47     AliTRDpidRefMakerLQ *lq = new AliTRDpidRefMakerLQ(); 
48     mgr->AddTask(lq);
49     lq->SetDebugLevel(3);
50     AliLog::SetClassDebugLevel("AliTRDpidRefMakerLQ", 3);
51     lq->SetMCdata(mgr->GetMCtruthEventHandler());
52     lq->SetFriends(kTRUE);
53     mgr->ConnectInput(lq, 0, ci[0]);
54     mgr->ConnectInput(lq, 1, ci[2]);
55     if(ce) mgr->ConnectInput(lq, 2, ce);
56     mgr->ConnectOutput(lq, 0, mgr->CreateContainer(Form("Moni%s", lq->GetName()), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
57     mgr->ConnectOutput(lq, 1, mgr->CreateContainer(lq->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", ref->GetName())));
58     mgr->ConnectOutput(lq, 2, mgr->CreateContainer("PDF", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", lq->GetName())));
59   }
60 }
61