]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/macros/AddTaskBalancePsiEfficiency.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / EBYE / macros / AddTaskBalancePsiEfficiency.C
1 //_________________________________________________________//
2 AliAnalysisTaskEfficiencyBFPsi *AddTaskBalancePsiEfficiency(TString centralityEstimator="V0M", Double_t centrMin=0., Double_t centrMax=80., Double_t vertexZ=10., TString fileNameBase="AnalysisResults") {
3   // Create a balance function analysis task and add it to the analysis manager
4   // Get the pointer to the existing analysis manager via the static access method.
5   TString centralityName("");
6
7   centralityName+=Form("%s_%.0f-%.0f_%.0f",centralityEstimator.Data(),centrMin,centrMax,vertexZ);
8   TString outputFileName(fileNameBase);
9   outputFileName.Append(".root");
10   
11   //===========================================================================
12   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
13   if (!mgr) {
14     ::Error("AddTaskBalancePsiEfficiency", "No analysis manager to connect to.");
15     return NULL;
16   }
17
18   // Check the analysis type using the event handlers connected to the analysis manager.
19   //===========================================================================
20   if (!mgr->GetInputEventHandler()) {
21     ::Error("AddTaskBalancePsiEfficiency", "This task requires an input event handler");
22     return NULL;
23   }
24   TString analysisType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
25   if(dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())) analysisType = "MC";
26
27  
28   // Create the task, add it to manager and configure it.
29   //===========================================================================
30   AliAnalysisTaskEfficiencyBFPsi *taskEfficiencyBFPsi = new AliAnalysisTaskEfficiencyBFPsi("TaskEfficiencyBFPsi");
31
32   // analysis mode
33   taskEfficiencyBFPsi->SetAnalysisMode("TPC");
34
35   // centrality
36   taskEfficiencyBFPsi->SetCentralityEstimator(centralityEstimator);
37   taskEfficiencyBFPsi->SetCentralityPercentileRange(centrMin,centrMax);
38   taskEfficiencyBFPsi->SelectCollisionCandidates(AliVEvent::kMB);
39
40   // vertex
41   taskEfficiencyBFPsi->SetVertexDiamond(.3,.3,vertexZ);
42
43   // track cuts
44   AliESDtrackCuts *cuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
45   cuts->SetRequireTPCStandAlone(kTRUE); // TPC only cuts!  
46   taskEfficiencyBFPsi->SetAnalysisCutObject(cuts);
47
48   //analysis kinematic cuts
49   taskEfficiencyBFPsi->SetMinPt(0.2);
50   taskEfficiencyBFPsi->SetMaxPt(20.0);
51   taskEfficiencyBFPsi->SetMaxEta(0.8);
52   taskEfficiencyBFPsi->SetEtaRangeMax(0.8); //acceptance cuts
53   taskEfficiencyBFPsi->SetPtRangeMin(0.1);  //acceptance cuts
54   taskEfficiencyBFPsi->SetPtRangeMax(5.0);  //acceptance cuts
55   taskEfficiencyBFPsi->SetPhiRangeMin(0.);  //acceptance cuts
56   taskEfficiencyBFPsi->SetPhiRangeMax(6.28);//acceptance cuts
57   
58   // ADD the task
59   //===========================================================================
60   //bf->PrintAnalysisSettings();
61   mgr->AddTask(taskEfficiencyBFPsi);
62
63   // Create ONLY the output containers for the data produced by the task.
64   // Get and connect other common input/output containers via the manager as below
65   //==============================================================================
66   TString outputFileName = AliAnalysisManager::GetCommonFileName();
67   outputFileName += ":PWGCFEbyE.outputBalanceFunctionPsiEfficiencyAnalysis";
68   AliAnalysisDataContainer *coutQAPsi = mgr->CreateContainer(Form("listQAPsi_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
69   AliAnalysisDataContainer *coutEfficiencyBFPsi = mgr->CreateContainer(Form("listEfficiencyBFPsi_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
70  
71   mgr->ConnectInput(taskEfficiencyBFPsi, 0, mgr->GetCommonInputContainer());
72   mgr->ConnectOutput(taskEfficiencyBFPsi, 1, coutQAPsi);
73   mgr->ConnectOutput(taskEfficiencyBFPsi, 2, coutEfficiencyBFPsi);
74
75   return taskEfficiencyBFPsi;
76 }