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