ROOT logo
#if ! defined (__CINT__) || defined (__MAKECINT__)
#include "TTree.h"
#include "TError.h"
#include "AliLog.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"
#include "PWGPP/TRD/AliTRDpwgppHelper.h"
#include "PWGPP/TRD/AliTRDcheckPID.h"
#include "PWGPP/TRD/AliTRDpidRefMaker.h"
#include "PWGPP/TRD/AliTRDpidRefMakerNN.h"
#include "PWGPP/TRD/AliTRDpidRefMakerLQ.h"
#endif

void AddTRDcheckPID(AliAnalysisManager *mgr, Int_t map, AliAnalysisDataContainer **ci, AliAnalysisDataContainer **co)
{
  Info("AddTRDcheckPID", "[0]=\"%s\" [1]=\"%s\" [2]=\"%s\"", 
       ci[0]->GetName(), ci[1]->GetName(), ci[2]->GetName());

  AliTRDcheckPID *pid(NULL);
  mgr->AddTask(pid = new AliTRDcheckPID((char*)"TRDcheckPID"));
  //AliLog::SetClassDebugLevel("AliTRDcheckPID", 5);  
  pid->SetDebugLevel(0);
  pid->SetMCdata(mgr->GetMCtruthEventHandler());

  // define PID exchange container
  co[0] = mgr->CreateContainer("InfoPID", TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
  mgr->ConnectInput (pid, 0, mgr->GetCommonInputContainer()); // connect main (ESD) container
  mgr->ConnectInput (pid, 1, ci[0]);                          // connect barrel tracks container
  mgr->ConnectInput (pid, 2, ci[1]);                          // connect event info container
  mgr->ConnectInput (pid, 3, ci[2]);                          // connect V0s container
  mgr->ConnectOutput(pid, 1, mgr->CreateContainer(pid->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Performance",mgr->GetCommonFileName())));
  mgr->ConnectOutput(pid, 2, co[0]);

  if(TESTBIT(map, AliTRDpwgppHelper::kPIDRefMaker)){

    //AliLog::SetClassDebugLevel("AliTRDpidRefMaker", 3);
    //AliLog::SetClassDebugLevel("AliTRDpidRefMakerNN", 3);
    //AliLog::SetClassDebugLevel("AliTRDpidRefMakerLQ", 3);
  
    // TRD pid reference maker NN
    AliTRDpidRefMaker *ref(NULL);
    mgr->AddTask(ref = new AliTRDpidRefMakerNN((char*)"TRDrefMakerNN"));
    ref->SetDebugLevel(3);
    ref->SetMCdata(mgr->GetMCtruthEventHandler());
    ref->SetFriends(kTRUE);
    mgr->ConnectInput( ref, 0, mgr->GetCommonInputContainer()); // connect main (ESD) container
    mgr->ConnectInput( ref, 1, ci[0]);                          // connect barrel tracks container
    mgr->ConnectInput( ref, 2, ci[1]);                          // connect event info container
    mgr->ConnectInput( ref, 3, ci[2]);                          // connect V0s container
    mgr->ConnectInput( ref, 4, co[0]);                          // connect pid Info container
    mgr->ConnectOutput(ref, 1, mgr->CreateContainer("MonitorNN", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration",mgr->GetCommonFileName())));
    mgr->ConnectOutput(ref, 2, mgr->CreateContainer(ref->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
  
    // TRD pid reference maker LQ 
    mgr->AddTask(ref = new AliTRDpidRefMakerLQ((char*)"TRDrefMakerLQ"));
    ref->SetDebugLevel(3);
    ref->SetMCdata(mgr->GetMCtruthEventHandler());
    ref->SetFriends(kTRUE);
    mgr->ConnectInput(ref, 0, mgr->GetCommonInputContainer()); // connect main (ESD) container
    mgr->ConnectInput(ref, 1, ci[0]);                          // connect barrel tracks container
    mgr->ConnectInput(ref, 2, ci[1]);                          // connect event info container
    mgr->ConnectInput(ref, 3, ci[2]);                          // connect V0s container
    mgr->ConnectInput(ref, 4, co[0]);                          // connect pid Info container
    mgr->ConnectOutput(ref, 1, mgr->CreateContainer("MonitorLQ", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
    mgr->ConnectOutput(ref, 2, mgr->CreateContainer(ref->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
    mgr->ConnectOutput(ref, 3, mgr->CreateContainer("PDF", TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
  }
}

 AddTRDcheckPID.C:1
 AddTRDcheckPID.C:2
 AddTRDcheckPID.C:3
 AddTRDcheckPID.C:4
 AddTRDcheckPID.C:5
 AddTRDcheckPID.C:6
 AddTRDcheckPID.C:7
 AddTRDcheckPID.C:8
 AddTRDcheckPID.C:9
 AddTRDcheckPID.C:10
 AddTRDcheckPID.C:11
 AddTRDcheckPID.C:12
 AddTRDcheckPID.C:13
 AddTRDcheckPID.C:14
 AddTRDcheckPID.C:15
 AddTRDcheckPID.C:16
 AddTRDcheckPID.C:17
 AddTRDcheckPID.C:18
 AddTRDcheckPID.C:19
 AddTRDcheckPID.C:20
 AddTRDcheckPID.C:21
 AddTRDcheckPID.C:22
 AddTRDcheckPID.C:23
 AddTRDcheckPID.C:24
 AddTRDcheckPID.C:25
 AddTRDcheckPID.C:26
 AddTRDcheckPID.C:27
 AddTRDcheckPID.C:28
 AddTRDcheckPID.C:29
 AddTRDcheckPID.C:30
 AddTRDcheckPID.C:31
 AddTRDcheckPID.C:32
 AddTRDcheckPID.C:33
 AddTRDcheckPID.C:34
 AddTRDcheckPID.C:35
 AddTRDcheckPID.C:36
 AddTRDcheckPID.C:37
 AddTRDcheckPID.C:38
 AddTRDcheckPID.C:39
 AddTRDcheckPID.C:40
 AddTRDcheckPID.C:41
 AddTRDcheckPID.C:42
 AddTRDcheckPID.C:43
 AddTRDcheckPID.C:44
 AddTRDcheckPID.C:45
 AddTRDcheckPID.C:46
 AddTRDcheckPID.C:47
 AddTRDcheckPID.C:48
 AddTRDcheckPID.C:49
 AddTRDcheckPID.C:50
 AddTRDcheckPID.C:51
 AddTRDcheckPID.C:52
 AddTRDcheckPID.C:53
 AddTRDcheckPID.C:54
 AddTRDcheckPID.C:55
 AddTRDcheckPID.C:56
 AddTRDcheckPID.C:57
 AddTRDcheckPID.C:58
 AddTRDcheckPID.C:59
 AddTRDcheckPID.C:60
 AddTRDcheckPID.C:61
 AddTRDcheckPID.C:62
 AddTRDcheckPID.C:63
 AddTRDcheckPID.C:64
 AddTRDcheckPID.C:65
 AddTRDcheckPID.C:66
 AddTRDcheckPID.C:67
 AddTRDcheckPID.C:68
 AddTRDcheckPID.C:69
 AddTRDcheckPID.C:70