ROOT logo
AliEPSelectionTask *AddTaskEventplane(Bool_t useEtaGap=kFALSE,Float_t etaGap=0.,Bool_t posTPCAOD=kFALSE,TString containername = "EPStat",Bool_t doRecenter=kFALSE)
{
  // Macro to connect an event plane selection task to an existing analysis manager.

  if(useEtaGap && posTPCAOD){
    ::Error("AddTaskEventplane", "eta-splitting of events and one side of TPC not possible at same time!");
    return NULL;
  }
  
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskEventplane", "No analysis manager to connect to.");
    return NULL;
  }      
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskEventplane", "This task requires an input event handler");
    return NULL;
  }
  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
 
  
  AliEPSelectionTask *eventplaneTask = new AliEPSelectionTask("EventplaneSelection");
  eventplaneTask->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kSemiCentral | AliVEvent::kCentral);
  if (inputDataType == "AOD"){
    eventplaneTask->SetInput("AOD");
  }
  eventplaneTask->SetTrackType("TPC");
  eventplaneTask->SetUsePtWeight();
  eventplaneTask->SetUsePhiWeight();
  if(doRecenter) eventplaneTask->SetUseRecentering();
  eventplaneTask->SetSaveTrackContribution();
  if(useEtaGap){
    eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kEta); 
    eventplaneTask->SetEtaGap(etaGap); 
  }
  if(posTPCAOD){
    eventplaneTask->SetPersonalAODtrackCuts(128,0.,0.8,0.15,20.);
    eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kRandom);
  }

  
  mgr->AddTask(eventplaneTask);

  AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(containername,
                TList::Class(), AliAnalysisManager::kOutputContainer,
                "EventStat_temp.root");
  
  mgr->ConnectInput(eventplaneTask, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(eventplaneTask,1,coutput1);

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