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

  if(useEtaGap && posTPC){
    ::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();
  eventplaneTask->SetSaveTrackContribution();
  if(useEtaGap){
    eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kEta); 
    eventplaneTask->SetEtaGap(etaGap); 
  }
  if(posTPC){
    if(inputDataType == "AOD")
      {
	eventplaneTask->SetPersonalAODtrackCuts(128,0.,0.8,0.15,20.);
	eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kRandom);
      }
    else {
      AliESDtrackCuts *trackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
      trackCuts->SetPtRange(0.15,20.);
      trackCuts->SetEtaRange(0.0,0.8);
      eventplaneTask->SetPersonalESDtrackCuts(trackCuts);
      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;
}
 AddTaskEventPlaneTPC.C:1
 AddTaskEventPlaneTPC.C:2
 AddTaskEventPlaneTPC.C:3
 AddTaskEventPlaneTPC.C:4
 AddTaskEventPlaneTPC.C:5
 AddTaskEventPlaneTPC.C:6
 AddTaskEventPlaneTPC.C:7
 AddTaskEventPlaneTPC.C:8
 AddTaskEventPlaneTPC.C:9
 AddTaskEventPlaneTPC.C:10
 AddTaskEventPlaneTPC.C:11
 AddTaskEventPlaneTPC.C:12
 AddTaskEventPlaneTPC.C:13
 AddTaskEventPlaneTPC.C:14
 AddTaskEventPlaneTPC.C:15
 AddTaskEventPlaneTPC.C:16
 AddTaskEventPlaneTPC.C:17
 AddTaskEventPlaneTPC.C:18
 AddTaskEventPlaneTPC.C:19
 AddTaskEventPlaneTPC.C:20
 AddTaskEventPlaneTPC.C:21
 AddTaskEventPlaneTPC.C:22
 AddTaskEventPlaneTPC.C:23
 AddTaskEventPlaneTPC.C:24
 AddTaskEventPlaneTPC.C:25
 AddTaskEventPlaneTPC.C:26
 AddTaskEventPlaneTPC.C:27
 AddTaskEventPlaneTPC.C:28
 AddTaskEventPlaneTPC.C:29
 AddTaskEventPlaneTPC.C:30
 AddTaskEventPlaneTPC.C:31
 AddTaskEventPlaneTPC.C:32
 AddTaskEventPlaneTPC.C:33
 AddTaskEventPlaneTPC.C:34
 AddTaskEventPlaneTPC.C:35
 AddTaskEventPlaneTPC.C:36
 AddTaskEventPlaneTPC.C:37
 AddTaskEventPlaneTPC.C:38
 AddTaskEventPlaneTPC.C:39
 AddTaskEventPlaneTPC.C:40
 AddTaskEventPlaneTPC.C:41
 AddTaskEventPlaneTPC.C:42
 AddTaskEventPlaneTPC.C:43
 AddTaskEventPlaneTPC.C:44
 AddTaskEventPlaneTPC.C:45
 AddTaskEventPlaneTPC.C:46
 AddTaskEventPlaneTPC.C:47
 AddTaskEventPlaneTPC.C:48
 AddTaskEventPlaneTPC.C:49
 AddTaskEventPlaneTPC.C:50
 AddTaskEventPlaneTPC.C:51
 AddTaskEventPlaneTPC.C:52
 AddTaskEventPlaneTPC.C:53
 AddTaskEventPlaneTPC.C:54
 AddTaskEventPlaneTPC.C:55
 AddTaskEventPlaneTPC.C:56
 AddTaskEventPlaneTPC.C:57
 AddTaskEventPlaneTPC.C:58
 AddTaskEventPlaneTPC.C:59
 AddTaskEventPlaneTPC.C:60
 AddTaskEventPlaneTPC.C:61
 AddTaskEventPlaneTPC.C:62
 AddTaskEventPlaneTPC.C:63
 AddTaskEventPlaneTPC.C:64
 AddTaskEventPlaneTPC.C:65