ROOT logo
#if ! defined (__CINT__) || defined (__MAKECINT__)
#include "TError.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"
#include "AliLog.h"
#include "PWGPP/TRD/AliTRDpwgppHelper.h"
#include "PWGPP/TRD/AliTRDefficiency.h"
#include "PWGPP/TRD/AliTRDefficiencyMC.h"
#include "PWGPP/TRD/AliTRDmultiplicity.h"
#endif

void AddTRDefficiency(AliAnalysisManager *mgr, Int_t map, AliAnalysisDataContainer **ci/*, AliAnalysisDataContainer **co*/)
{
  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()));

  //AliLog::SetClassDebugLevel("AliTRDefficiency", 5);
  AliAnalysisDataContainer *evInfoContainer = ci[3];
  AliTRDrecoTask *eff(NULL);
//        trackStatus = 0; // barrel tracks
//                    = 1; // ITS tracks
//                    = 2; // Kink tracks
  const Char_t *suffix[]={"", "ITS", "K"};
  for(Int_t its(0); its<1; its++){
    mgr->AddTask(eff = new AliTRDefficiency(Form("TRDefficiency%s", suffix[its])));
    eff->SetMCdata((Bool_t)mgr->GetMCtruthEventHandler());
    eff->SetDebugLevel(0);
    mgr->ConnectInput(eff, 0, mgr->GetCommonInputContainer());  // connect main (ESD) container
    mgr->ConnectInput(eff, 1, ci[its]);                 // conect track info container
    mgr->ConnectInput(eff, 2, evInfoContainer);                 // conect event info container
    mgr->ConnectInput(eff, 3, ci[4]);                 // conect clusters container
    mgr->ConnectOutput(eff,1, mgr->CreateContainer(eff->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Performance", mgr->GetCommonFileName())));
  }

  // TRD combined tracking efficiency
  if(mgr->GetMCtruthEventHandler() && TESTBIT(map, AliTRDpwgppHelper::kEfficiencyMC)) {
    mgr->AddTask(eff = new AliTRDefficiencyMC((char*)"TRDefficiencyMC"));
    eff->SetDebugLevel(0);
    //AliLog::SetClassDebugLevel("AliTRDefficiencyMC", 5);  

    // Create containers for input/output
    mgr->ConnectInput(eff, 0, mgr->GetCommonInputContainer());  
    mgr->ConnectInput(eff, 1, ci[0]);
    mgr->ConnectInput(eff, 2, evInfoContainer);
    mgr->ConnectOutput(eff, 1, mgr->CreateContainer(eff->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Performance", mgr->GetCommonFileName())));
  }

  // TRD single track selection
  if(!(TESTBIT(map, AliTRDpwgppHelper::kMultiplicity))) return;

  mgr->AddTask(eff = new AliTRDmultiplicity((char*)"TRDmultiplicity"));
  eff->SetDebugLevel(0);
  //AliLog::SetClassDebugLevel("AliTRDmultiplicity", 5);  
  mgr->ConnectInput(eff, 0, mgr->GetCommonInputContainer());  
  mgr->ConnectInput(eff, 1, ci[0]);
  mgr->ConnectOutput(eff, 1, mgr->CreateContainer(eff->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Calibration", mgr->GetCommonFileName())));
}

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