ROOT logo
AliAnalysisTaskSEPHOSpPbPi0* AddTaskPHOSpPbPi0(UInt_t triggerTag = 0, Bool_t isMCtruth=kFALSE, Bool_t useTOFCut=kFALSE, Double_t width = 0.)
{
// Creates a task to analysis pi0 in p-Pb collisions with PHOS
// Author: H. Zhu - 09/16/2014

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskPHOSpPbPi0", "No analysis manager to connect to.");
    return NULL;
  }
  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (!type.Contains("ESD") && !type.Contains("AOD")) {
    ::Error("AddTaskPHOSpPbPi0", "PHOSpPbPi0 task needs the manager to have an ESD or AOD input handler.");
    return NULL;
  }
  if (isMCtruth && type.Contains("ESD")) {
    AliMCEventHandler *mcH = mgr->GetMCtruthEventHandler();
    if (!mcH) {
      ::Error("AddTaskPHOSpPbPi0", "PHOSpPbPi0 task needs the manager to have an MC evnet handler.");
      return NULL;
    }
  }

  const Int_t nBins = 6;
  Float_t cBin[nBins+1] = {0., 20., 40., 60., 80., 90., 100.}; TArrayF tCent(nBins+1, cBin);
  Int_t   buffer[nBins] = { 40,  80,  80,  100, 100, 100    }; TArrayI tBuffer(nBins, buffer);

  Double_t cutsEvent[3] = { 10.,    // 0, max of VtxZ
                             0.,    // 1, min of Centrality
                           100.  }; // 2, max of Centrality

  Double_t cutsCaloCl[5] = { 0.3,    // 0, min of cluster Energy
                             2.,     // 1, min of NCells
                             0.2,    // 2, min of M02
                             2.5,    // 3, min of DistToBad
                             1e-7 }; // 4, max of TOF

  AliAnalysisTaskSEPHOSpPbPi0 *task = new AliAnalysisTaskSEPHOSpPbPi0("TaskPHOSpPbPi0");
  task->SetUseMC(isMCtruth);
  task->SetXBins(tCent, tBuffer);
  task->SetEventCuts(cutsEvent);
  task->SetCaloClCuts(cutsCaloCl);
  task->SetDecaliWidth(width);     // for decalibration
  task->SetRemovePileup(kTRUE);    // remove pileup events
  task->SetUseFiducialCut(kTRUE);  // use fiducial cut
  task->SetUseTOFCut(kTRUE);       // use TOF cut
  task->SetDebugLevel(-1);

  if (triggerTag==0) task->SelectCollisionCandidates(AliVEvent::kINT7);
  else if (triggerTag==1) task->SelectCollisionCandidates(AliVEvent::kPHI7);
  else if (triggerTag==2) task->SelectCollisionCandidates(AliVEvent::kMB);

  mgr->AddTask(task);

  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());

  AliAnalysisDataContainer *output1 = mgr->CreateContainer(Form("histosQA_TOF%i", useTOFCut), TList::Class(), AliAnalysisManager::kOutputContainer, "histosPHOS.root");
  mgr->ConnectOutput(task, 1, output1);
  AliAnalysisDataContainer *output2 = mgr->CreateContainer(Form("histosRD_TOF%i", useTOFCut), TList::Class(), AliAnalysisManager::kOutputContainer, "histosPHOS.root");
  mgr->ConnectOutput(task, 2, output2);

  if (isMCtruth) {
    AliAnalysisDataContainer *output3 = mgr->CreateContainer(Form("histosMC_TOF%i", useTOFCut), TList::Class(), AliAnalysisManager::kOutputContainer, "histosPHOS.root");
    mgr->ConnectOutput(task, 3, output3);
  }

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