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: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