1 #if ! defined (__CINT__) || defined (__MAKECINT__)
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"
12 #include "PWG1/TRD/macros/helper.C"
13 void AddTRDcheckPID(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContainer **ci/*, AliAnalysisDataContainer **co*/)
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"));
25 // define PID exchange container
26 ce = mgr->CreateContainer("InfoPID", TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
27 mgr->ConnectOutput(pid, 1, ce);
30 if(TSTBIT(map, kPIDRefMaker)){
31 // TRD pid reference maker
32 AliTRDpidRefMaker *ref = new AliTRDpidRefMaker();
34 ref->SetDebugLevel(3);
35 AliLog::SetClassDebugLevel("AliTRDpidRefMaker", 3);
36 ref->SetMCdata(mgr->GetMCtruthEventHandler());
37 ref->SetFriends(kTRUE);
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())));
46 // TRD pid reference maker LQ
47 AliTRDpidRefMakerLQ *lq = new AliTRDpidRefMakerLQ();
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())));