ROOT logo
AliAnalysisTaskPi0Flow* AddTaskPHOSPi0Flow (const char* name = "PHOSPi0Flow",
					    const char* options = "",
					    UInt_t offlineTriggerMask = AliVEvent::kCentral,
					    AliAnalysisTaskPi0Flow::TriggerSelection internalTriggerSelection = AliAnalysisTaskPi0Flow::kNoSelection )
{
  //Add a task AliAnalysisTaskPi0Flow to the analysis train
  //Author: Henrik Qvigstad
  /* $Id$ */

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskPHOSPi0Flow", "No analysis manager to connect to");
    return NULL;
  }
  
  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskPHOSPi0Flow", "This task requires an input event handler");
    return NULL;
  }

  AliAnalysisTaskPi0Flow* task = new AliAnalysisTaskPi0Flow(Form("%sTask", name));

  // Binning
  // Central:
  if( AliVEvent::kCentral == offlineTriggerMask ) {
    const int nbins = 4;
    Double_t cbin[nbins+1] = {0., 5., 8., 9., 10.};
    TArrayD tbin(nbins+1, cbin);
    Int_t    nMixed[nbins] = {6, 6, 6, 6};
    TArrayI tNMixed(nbins, nMixed);
    task->SetCentralityBinning(tbin, tNMixed);
  }
  // SemiCentral:
  if( AliVEvent::kSemiCentral == offlineTriggerMask ) {
    const int nbins = 8;
    Double_t cbin[nbins+1] = {10., 11., 12., 13., 15., 20., 30., 40., 50.};
    TArrayD tbin(nbins+1, cbin);
    Int_t    nMixed[nbins] = {40, 40, 40, 40, 40, 40, 40, 40};
    TArrayI tNMixed(nbins, nMixed);
    task->SetCentralityBinning(tbin, tNMixed);
  }
  // MB or PHOS Trigger:
  if( AliVEvent::kMB == offlineTriggerMask || AliVEvent::kPHOSPb == offlineTriggerMask ) {
    const int nbins = 8;
    Double_t cbin[nbins+1] = {0., 10., 20., 30., 40., 50., 60., 70., 80.};
    TArrayD tbin(nbins+1, cbin);
    Int_t    nMixed[nbins] = {6, 40, 40, 40, 40, 80, 80, 80};
    TArrayI tNMixed(nbins, nMixed);
    task->SetCentralityBinning(tbin, tNMixed);
  }

  //task->SetEventMixingRPBinning(9);
  //task->SetMixingArraysLength(10);
  task->SelectCollisionCandidates(offlineTriggerMask);
  task->SetInternalTriggerSelection(internalTriggerSelection);
  task->EnableTOFCut(true, 100.e-9, true);
  
  if( TString(options).Contains("11h") )
    task->SetPeriod( AliAnalysisTaskPi0Flow::kLHC11h );

  mgr->AddTask(task);
  mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer() );
  
  TString cname(Form("%sCoutput1", name));
  TString pname(Form("%s:%s", AliAnalysisManager::GetCommonFileName(), name));
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(cname.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, pname.Data());
  mgr->ConnectOutput(task, 1, coutput1);
  
  return task;
}
 AddTaskPHOSPi0Flow.C:1
 AddTaskPHOSPi0Flow.C:2
 AddTaskPHOSPi0Flow.C:3
 AddTaskPHOSPi0Flow.C:4
 AddTaskPHOSPi0Flow.C:5
 AddTaskPHOSPi0Flow.C:6
 AddTaskPHOSPi0Flow.C:7
 AddTaskPHOSPi0Flow.C:8
 AddTaskPHOSPi0Flow.C:9
 AddTaskPHOSPi0Flow.C:10
 AddTaskPHOSPi0Flow.C:11
 AddTaskPHOSPi0Flow.C:12
 AddTaskPHOSPi0Flow.C:13
 AddTaskPHOSPi0Flow.C:14
 AddTaskPHOSPi0Flow.C:15
 AddTaskPHOSPi0Flow.C:16
 AddTaskPHOSPi0Flow.C:17
 AddTaskPHOSPi0Flow.C:18
 AddTaskPHOSPi0Flow.C:19
 AddTaskPHOSPi0Flow.C:20
 AddTaskPHOSPi0Flow.C:21
 AddTaskPHOSPi0Flow.C:22
 AddTaskPHOSPi0Flow.C:23
 AddTaskPHOSPi0Flow.C:24
 AddTaskPHOSPi0Flow.C:25
 AddTaskPHOSPi0Flow.C:26
 AddTaskPHOSPi0Flow.C:27
 AddTaskPHOSPi0Flow.C:28
 AddTaskPHOSPi0Flow.C:29
 AddTaskPHOSPi0Flow.C:30
 AddTaskPHOSPi0Flow.C:31
 AddTaskPHOSPi0Flow.C:32
 AddTaskPHOSPi0Flow.C:33
 AddTaskPHOSPi0Flow.C:34
 AddTaskPHOSPi0Flow.C:35
 AddTaskPHOSPi0Flow.C:36
 AddTaskPHOSPi0Flow.C:37
 AddTaskPHOSPi0Flow.C:38
 AddTaskPHOSPi0Flow.C:39
 AddTaskPHOSPi0Flow.C:40
 AddTaskPHOSPi0Flow.C:41
 AddTaskPHOSPi0Flow.C:42
 AddTaskPHOSPi0Flow.C:43
 AddTaskPHOSPi0Flow.C:44
 AddTaskPHOSPi0Flow.C:45
 AddTaskPHOSPi0Flow.C:46
 AddTaskPHOSPi0Flow.C:47
 AddTaskPHOSPi0Flow.C:48
 AddTaskPHOSPi0Flow.C:49
 AddTaskPHOSPi0Flow.C:50
 AddTaskPHOSPi0Flow.C:51
 AddTaskPHOSPi0Flow.C:52
 AddTaskPHOSPi0Flow.C:53
 AddTaskPHOSPi0Flow.C:54
 AddTaskPHOSPi0Flow.C:55
 AddTaskPHOSPi0Flow.C:56
 AddTaskPHOSPi0Flow.C:57
 AddTaskPHOSPi0Flow.C:58
 AddTaskPHOSPi0Flow.C:59
 AddTaskPHOSPi0Flow.C:60
 AddTaskPHOSPi0Flow.C:61
 AddTaskPHOSPi0Flow.C:62
 AddTaskPHOSPi0Flow.C:63
 AddTaskPHOSPi0Flow.C:64
 AddTaskPHOSPi0Flow.C:65
 AddTaskPHOSPi0Flow.C:66
 AddTaskPHOSPi0Flow.C:67
 AddTaskPHOSPi0Flow.C:68
 AddTaskPHOSPi0Flow.C:69
 AddTaskPHOSPi0Flow.C:70
 AddTaskPHOSPi0Flow.C:71