]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/Hypernuclei/AddTaskESDEventPlane.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Hypernuclei / AddTaskESDEventPlane.C
CommitLineData
7b1fb361 1AliEPSelectionTask *AddTaskESDEventPlane(Bool_t useEtaGap=kTRUE,Float_t etaGap=0.4,Bool_t posTPC=kFALSE,TString containername = "EPStat")
95a079a9 2{
3 // Macro to connect an event plane selection task to an existing analysis manager.
4
5 if(useEtaGap && posTPCAOD){
6 ::Error("AddTaskEventplane", "eta-splitting of events and one side of TPC not possible at same time!");
7 return NULL;
8 }
9
10 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11 if (!mgr) {
12 ::Error("AddTaskEventplane", "No analysis manager to connect to.");
13 return NULL;
14 }
15 // Check the analysis type using the event handlers connected to the analysis manager.
16 //==============================================================================
17 if (!mgr->GetInputEventHandler()) {
18 ::Error("AddTaskEventplane", "This task requires an input event handler");
19 return NULL;
20 }
21 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
22
23 AliEPSelectionTask *eventplaneTask = new AliEPSelectionTask("EventplaneSelection");
24 eventplaneTask->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kSemiCentral | AliVEvent::kCentral);
25
26 if (inputDataType == "AOD"){
27 eventplaneTask->SetInput("AOD");
28 }
29 eventplaneTask->SetTrackType("TPC");
30 eventplaneTask->SetUsePtWeight();
31 eventplaneTask->SetUsePhiWeight();
32 eventplaneTask->SetSaveTrackContribution();
33
34 if(useEtaGap){
35 eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kEta);
36 eventplaneTask->SetEtaGap(etaGap);
37 }
38
39 // Cuts on ESD tracks wich corresponds to the one applied for AOD
40 Float_t etalow = 0;
41 Float_t etaup = 0.8;
42 Float_t ptlow = 0.15;
43 Float_t ptup = 20;
44 Int_t ntpc = 50;
45
46 AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Standard");
47
48 esdTrackCutsL = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
49 esdTrackCutsL->SetPtRange(ptlow,ptup);
50 esdTrackCutsL->SetMinNClustersTPC(ntpc);
51 esdTrackCutsL->SetEtaRange(etalow,etaup);
52
53 if(posTPC){
54 if(inputDataType == "AOD"){
55 eventplaneTask->SetPersonalAODtrackCuts(128,0.,0.8,0.15,20.);
56 eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kRandom);
57 }
58 else{
59
60 eventplaneTask->SetPersonalESDtrackCuts(esdTrackCutsL);
61 eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kRandom);
62 }
63 }
64 mgr->AddTask(eventplaneTask);
65
66 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
67 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(containername,
68 TList::Class(), AliAnalysisManager::kOutputContainer,
69 "EventStat_temp.root");
70
71 mgr->ConnectInput(eventplaneTask, 0, mgr->GetCommonInputContainer());
72 mgr->ConnectOutput(eventplaneTask,1,coutput1);
73
74 return eventplaneTask;
75}