]>
Commit | Line | Data |
---|---|---|
7b1fb361 | 1 | AliEPSelectionTask *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 | } |