AliAnalysisTask *AddTaskFlowTPCEMCalEP(Double_t openingAngle = 0.1,
Double_t invMass = 0.01,
TString nonHFEalgorithm = "KF")
{
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
Error("AddTaskFlowTPCEMCalEP", "No analysis manager found.");
return NULL;
}
if (!mgr->GetInputEventHandler()) {
::Error("AddTaskFlowTPCEMCalEP", "This task requires an input event handler");
return NULL;
}
TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
if (type=="AOD"){
::Error("AddTaskFlowTPCEMCalEP", "The tasks exits because AODs are in input");
return NULL;
}
Bool_t MCthere=kFALSE;
AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*>(mgr->GetMCtruthEventHandler());
if(!mcH){
MCthere=kFALSE;
}else{
MCthere=kTRUE;
}
//Event plane task
AliEPSelectionTask *eventplaneTask = new AliEPSelectionTask("EventplaneSelection");
eventplaneTask->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kSemiCentral | AliVEvent::kCentral | AliVEvent::kEMCEGA | AliVEvent::kEMCEJE);
eventplaneTask->SetTrackType("TPC");
eventplaneTask->SetUsePtWeight();
eventplaneTask->SetUsePhiWeight();
eventplaneTask->SetSaveTrackContribution();
mgr->AddTask(eventplaneTask);
TString containerName3 = mgr->GetCommonFileName();
containerName3 += ":PWGHF_hfeCalEventPlane";
AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("EPStat",TList::Class(), AliAnalysisManager::kOutputContainer,containerName3.Data());
mgr->ConnectInput(eventplaneTask, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(eventplaneTask,1,coutput1);
//analysis task
// gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/AliAnalysisTaskFlowTPCEMCalEP.cxx++g");
gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFE_FLOW_TPCEMCal_EP.C");
AliAnalysisTaskFlowTPCEMCalEP *taskMB = ConfigHFE_FLOW_TPCEMCal_EP(MCthere,openingAngle,invMass,nonHFEalgorithm);
AliAnalysisTaskFlowTPCEMCalEP *taskcorrMB = ConfigHFE_FLOW_TPCEMCal_EP(MCthere,openingAngle,invMass,nonHFEalgorithm);
AliAnalysisTaskFlowTPCEMCalEP *taskTR = ConfigHFE_FLOW_TPCEMCal_EP(MCthere,openingAngle,invMass,nonHFEalgorithm);
mgr->AddTask(taskcorrMB);
mgr->AddTask(taskMB);
mgr->AddTask(taskTR);
// Flattened semi central trigger
taskcorrMB->SelectCollisionCandidates(AliVEvent::kAny);
TString containerName = mgr->GetCommonFileName();
containerName += ":PWGHF_hfeCalcorrSemiCentralV2";
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histcorrMB", TList::Class(),AliAnalysisManager::kOutputContainer, containerName.Data());
mgr->ConnectInput(taskcorrMB, 0, cinput);
mgr->ConnectOutput(taskcorrMB, 1, coutput1);
// Central trigger
taskMB->SelectCollisionCandidates(AliVEvent::kSemiCentral | AliVEvent::kCentral);
TString containerName = mgr->GetCommonFileName();
containerName += ":PWGHF_hfeCalCentralV2";
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histMB", TList::Class(),AliAnalysisManager::kOutputContainer, containerName.Data());
mgr->ConnectInput(taskMB, 0, cinput);
mgr->ConnectOutput(taskMB, 1, coutput1);
//L1 gamma and jet trigger
taskTR->SelectCollisionCandidates(AliVEvent::kEMCEGA | AliVEvent::kEMCEJE);
TString containerName2 = mgr->GetCommonFileName();
containerName2 += ":PWGHF_hfeCalL1GammaV2";
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histTR", TList::Class(),AliAnalysisManager::kOutputContainer, containerName2.Data());
mgr->ConnectInput(taskTR, 0, cinput);
mgr->ConnectOutput(taskTR, 1, coutput1);
if(MCthere){
AliAnalysisTaskFlowTPCEMCalEP *taskMC = ConfigHFE_FLOW_TPCEMCal_EP(MCthere,openingAngle,invMass,nonHFEalgorithm);
mgr->AddTask(taskMC);
taskMC->SelectCollisionCandidates(AliVEvent::kMB);
TString containerName3 = mgr->GetCommonFileName();
containerName3 += ":PWGHF_hfeCalMCV2";
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histMC", TList::Class(),AliAnalysisManager::kOutputContainer, containerName3.Data());
mgr->ConnectInput(taskMC, 0, cinput);
mgr->ConnectOutput(taskMC, 1, coutput1);
}
return NULL;
}
AddTaskFlowTPCEMCalEP.C:1 AddTaskFlowTPCEMCalEP.C:2 AddTaskFlowTPCEMCalEP.C:3 AddTaskFlowTPCEMCalEP.C:4 AddTaskFlowTPCEMCalEP.C:5 AddTaskFlowTPCEMCalEP.C:6 AddTaskFlowTPCEMCalEP.C:7 AddTaskFlowTPCEMCalEP.C:8 AddTaskFlowTPCEMCalEP.C:9 AddTaskFlowTPCEMCalEP.C:10 AddTaskFlowTPCEMCalEP.C:11 AddTaskFlowTPCEMCalEP.C:12 AddTaskFlowTPCEMCalEP.C:13 AddTaskFlowTPCEMCalEP.C:14 AddTaskFlowTPCEMCalEP.C:15 AddTaskFlowTPCEMCalEP.C:16 AddTaskFlowTPCEMCalEP.C:17 AddTaskFlowTPCEMCalEP.C:18 AddTaskFlowTPCEMCalEP.C:19 AddTaskFlowTPCEMCalEP.C:20 AddTaskFlowTPCEMCalEP.C:21 AddTaskFlowTPCEMCalEP.C:22 AddTaskFlowTPCEMCalEP.C:23 AddTaskFlowTPCEMCalEP.C:24 AddTaskFlowTPCEMCalEP.C:25 AddTaskFlowTPCEMCalEP.C:26 AddTaskFlowTPCEMCalEP.C:27 AddTaskFlowTPCEMCalEP.C:28 AddTaskFlowTPCEMCalEP.C:29 AddTaskFlowTPCEMCalEP.C:30 AddTaskFlowTPCEMCalEP.C:31 AddTaskFlowTPCEMCalEP.C:32 AddTaskFlowTPCEMCalEP.C:33 AddTaskFlowTPCEMCalEP.C:34 AddTaskFlowTPCEMCalEP.C:35 AddTaskFlowTPCEMCalEP.C:36 AddTaskFlowTPCEMCalEP.C:37 AddTaskFlowTPCEMCalEP.C:38 AddTaskFlowTPCEMCalEP.C:39 AddTaskFlowTPCEMCalEP.C:40 AddTaskFlowTPCEMCalEP.C:41 AddTaskFlowTPCEMCalEP.C:42 AddTaskFlowTPCEMCalEP.C:43 AddTaskFlowTPCEMCalEP.C:44 AddTaskFlowTPCEMCalEP.C:45 AddTaskFlowTPCEMCalEP.C:46 AddTaskFlowTPCEMCalEP.C:47 AddTaskFlowTPCEMCalEP.C:48 AddTaskFlowTPCEMCalEP.C:49 AddTaskFlowTPCEMCalEP.C:50 AddTaskFlowTPCEMCalEP.C:51 AddTaskFlowTPCEMCalEP.C:52 AddTaskFlowTPCEMCalEP.C:53 AddTaskFlowTPCEMCalEP.C:54 AddTaskFlowTPCEMCalEP.C:55 AddTaskFlowTPCEMCalEP.C:56 AddTaskFlowTPCEMCalEP.C:57 AddTaskFlowTPCEMCalEP.C:58 AddTaskFlowTPCEMCalEP.C:59 AddTaskFlowTPCEMCalEP.C:60 AddTaskFlowTPCEMCalEP.C:61 AddTaskFlowTPCEMCalEP.C:62 AddTaskFlowTPCEMCalEP.C:63 AddTaskFlowTPCEMCalEP.C:64 AddTaskFlowTPCEMCalEP.C:65 AddTaskFlowTPCEMCalEP.C:66 AddTaskFlowTPCEMCalEP.C:67 AddTaskFlowTPCEMCalEP.C:68 AddTaskFlowTPCEMCalEP.C:69 AddTaskFlowTPCEMCalEP.C:70 AddTaskFlowTPCEMCalEP.C:71 AddTaskFlowTPCEMCalEP.C:72 AddTaskFlowTPCEMCalEP.C:73 AddTaskFlowTPCEMCalEP.C:74 AddTaskFlowTPCEMCalEP.C:75 AddTaskFlowTPCEMCalEP.C:76 AddTaskFlowTPCEMCalEP.C:77 AddTaskFlowTPCEMCalEP.C:78 AddTaskFlowTPCEMCalEP.C:79 AddTaskFlowTPCEMCalEP.C:80 AddTaskFlowTPCEMCalEP.C:81 AddTaskFlowTPCEMCalEP.C:82 AddTaskFlowTPCEMCalEP.C:83 AddTaskFlowTPCEMCalEP.C:84 AddTaskFlowTPCEMCalEP.C:85 AddTaskFlowTPCEMCalEP.C:86 AddTaskFlowTPCEMCalEP.C:87 AddTaskFlowTPCEMCalEP.C:88 AddTaskFlowTPCEMCalEP.C:89 AddTaskFlowTPCEMCalEP.C:90 AddTaskFlowTPCEMCalEP.C:91 AddTaskFlowTPCEMCalEP.C:92 AddTaskFlowTPCEMCalEP.C:93 AddTaskFlowTPCEMCalEP.C:94 AddTaskFlowTPCEMCalEP.C:95 AddTaskFlowTPCEMCalEP.C:96 AddTaskFlowTPCEMCalEP.C:97 AddTaskFlowTPCEMCalEP.C:98 AddTaskFlowTPCEMCalEP.C:99 AddTaskFlowTPCEMCalEP.C:100 AddTaskFlowTPCEMCalEP.C:101 AddTaskFlowTPCEMCalEP.C:102 AddTaskFlowTPCEMCalEP.C:103 AddTaskFlowTPCEMCalEP.C:104 AddTaskFlowTPCEMCalEP.C:105 AddTaskFlowTPCEMCalEP.C:106 AddTaskFlowTPCEMCalEP.C:107 AddTaskFlowTPCEMCalEP.C:108 AddTaskFlowTPCEMCalEP.C:109 AddTaskFlowTPCEMCalEP.C:110 AddTaskFlowTPCEMCalEP.C:111 AddTaskFlowTPCEMCalEP.C:112 AddTaskFlowTPCEMCalEP.C:113 AddTaskFlowTPCEMCalEP.C:114