]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/macros/AddTaskEMCALEventPlane.C
SHUTTLE module
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / macros / AddTaskEMCALEventPlane.C
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 }