]>
Commit | Line | Data |
---|---|---|
3c40321c | 1 | AliEPSelectionTask *AddTaskEventplane(Bool_t useEtaGap=kTRUE,Float_t etaGap=0.4,Bool_t posTPCAOD=kFALSE,TString containername = "EPStat") |
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 | if (inputDataType == "AOD"){ | |
26 | eventplaneTask->SetInput("AOD"); | |
27 | } | |
28 | eventplaneTask->SetTrackType("TPC"); | |
29 | eventplaneTask->SetUsePtWeight(); | |
30 | eventplaneTask->SetUsePhiWeight(); | |
31 | eventplaneTask->SetSaveTrackContribution(); | |
32 | if(useEtaGap){ | |
33 | eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kEta); | |
34 | eventplaneTask->SetEtaGap(etaGap); | |
35 | } | |
36 | if(posTPCAOD){ | |
37 | eventplaneTask->SetPersonalAODtrackCuts(128,0.,0.8,0.15,20.); | |
38 | eventplaneTask->SetSubeventsSplitMethod(AliEPSelectionTask::kRandom); | |
39 | } | |
40 | // Cuts on primary tracks | |
41 | AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Standard"); | |
42 | esdTrackCutsL->SetMinNClustersTPC(50); | |
43 | esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5); | |
44 | // esdTrackCutsL->SetMaxCovDiagonalElements(2, 2, 0.5, 0.5, 2); | |
45 | // esdTrackCutsL->SetRequireTPCRefit(kTRUE); | |
46 | esdTrackCutsL->SetMaxDCAToVertexXY(3.0); | |
47 | esdTrackCutsL->SetMaxDCAToVertexZ(3.0); | |
48 | esdTrackCutsL->SetDCAToVertex2D(kTRUE); | |
49 | // esdTrackCutsL->SetRequireSigmaToVertex(kFALSE); | |
50 | // esdTrackCutsL->SetAcceptKinkDaughters(kFALSE); | |
51 | eventplaneTask->SetPersonalESDtrackCuts(esdTrackCutsL); | |
52 | ||
53 | ||
54 | ||
55 | mgr->AddTask(eventplaneTask); | |
56 | ||
57 | AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer(); | |
58 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(containername, | |
59 | TList::Class(), AliAnalysisManager::kOutputContainer, | |
60 | "EventStat_temp.root"); | |
61 | ||
62 | mgr->ConnectInput(eventplaneTask, 0, mgr->GetCommonInputContainer()); | |
63 | mgr->ConnectOutput(eventplaneTask,1,coutput1); | |
64 | ||
65 | return eventplaneTask; | |
66 | } |