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("");
7 centralityName+=Form("%s_%.0f-%.0f_%.0f",centralityEstimator.Data(),centrMin,centrMax,vertexZ);
8 TString outputFileName(fileNameBase);
9 outputFileName.Append(".root");
11 //===========================================================================
12 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
14 ::Error("AddTaskBalancePsiEfficiency", "No analysis manager to connect to.");
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");
24 TString analysisType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
25 if(dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler())) analysisType = "MC";
28 // Create the task, add it to manager and configure it.
29 //===========================================================================
30 AliAnalysisTaskEfficiencyBFPsi *taskEfficiencyBFPsi = new AliAnalysisTaskEfficiencyBFPsi("TaskEfficiencyBFPsi");
33 taskEfficiencyBFPsi->SetAnalysisMode("TPC");
36 taskEfficiencyBFPsi->SetCentralityEstimator(centralityEstimator);
37 taskEfficiencyBFPsi->SetCentralityPercentileRange(centrMin,centrMax);
38 taskEfficiencyBFPsi->SelectCollisionCandidates(AliVEvent::kMB);
41 taskEfficiencyBFPsi->SetVertexDiamond(.3,.3,vertexZ);
44 AliESDtrackCuts *cuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
45 cuts->SetRequireTPCStandAlone(kTRUE); // TPC only cuts!
46 taskEfficiencyBFPsi->SetAnalysisCutObject(cuts);
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
59 //===========================================================================
60 //bf->PrintAnalysisSettings();
61 mgr->AddTask(taskEfficiencyBFPsi);
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());
71 mgr->ConnectInput(taskEfficiencyBFPsi, 0, mgr->GetCommonInputContainer());
72 mgr->ConnectOutput(taskEfficiencyBFPsi, 1, coutQAPsi);
73 mgr->ConnectOutput(taskEfficiencyBFPsi, 2, coutEfficiencyBFPsi);
75 return taskEfficiencyBFPsi;