]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/EBYE/macros/AddTaskBalanceCentralityTrain.C
d8f30ae840e61028cac5485fab2f17c86573948a
[u/mrichter/AliRoot.git] / PWG2 / EBYE / macros / AddTaskBalanceCentralityTrain.C
1 //=============================================//\r
2 const char* centralityEstimator = "V0M";\r
3 //const char* centralityEstimator = "CL1";\r
4 //const char* centralityEstimator = "TRK";\r
5 //=============================================//\r
6 \r
7 //_________________________________________________________//\r
8 AliAnalysisTaskBF *AddTaskBalanceCentralityTrain(Double_t centrMin=0.,\r
9                                                  Double_t centrMax=100.,\r
10                                                  Double_t vertexZ=10.,\r
11                                                  Double_t DCAxy=2.4,\r
12                                                  Double_t DCAz=3.2,\r
13                                                  Double_t ptMin=0.3,\r
14                                                  Double_t ptMax=1.5,\r
15                                                  Double_t etaMin=-0.8,\r
16                                                  Double_t etaMax=0.8,\r
17                                                  TString fileNameBase="AnalysisResults") {\r
18 \r
19   // Creates a balance function analysis task and adds it to the analysis manager.\r
20   // Get the pointer to the existing analysis manager via the static access method.\r
21   TString centralityName("");\r
22   centralityName+=Form("%.0f",centrMin);\r
23   centralityName+="-";\r
24   centralityName+=Form("%.0f",centrMax);\r
25   centralityName+="_";\r
26   centralityName+=Form("vZ%.1f",vertexZ);\r
27   centralityName+="_";\r
28   centralityName+=Form("DCAxy%.1f",DCAxy);\r
29   centralityName+="_";\r
30   centralityName+=Form("DCAz%.1f",DCAz);\r
31   centralityName+="_Pt";\r
32   centralityName+=Form("%.1f",ptMin);\r
33   centralityName+="-";\r
34   centralityName+=Form("%.1f",ptMax);\r
35   centralityName+="_Eta";\r
36   centralityName+=Form("%.1f",etaMin);\r
37   centralityName+="-";\r
38   centralityName+=Form("%.1f",etaMax);\r
39 \r
40   TString outputFileName(fileNameBase);\r
41   outputFileName.Append(".root");\r
42 \r
43   //===========================================================================\r
44   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
45   if (!mgr) {\r
46     ::Error("AddTaskBF", "No analysis manager to connect to.");\r
47     return NULL;\r
48   }\r
49 \r
50   // Check the analysis type using the event handlers connected to the analysis manager.\r
51   //===========================================================================\r
52   if (!mgr->GetInputEventHandler()) {\r
53     ::Error("AddTaskBF", "This task requires an input event handler");\r
54     return NULL;\r
55   }\r
56   TString analysisType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"\r
57   gROOT->LoadMacro("./configBalanceFunctionAnalysis.C");\r
58   AliBalance *bf  = 0;  // Balance Function object\r
59   AliBalance *bfs = 0;  // shuffled Balance function object\r
60 \r
61   if (analysisType=="ESD"){\r
62     bf  = GetBalanceFunctionObject("ESD");\r
63     bfs = GetBalanceFunctionObject("ESD",kTRUE);\r
64   }\r
65   else if (analysisType=="AOD"){\r
66     bf  = GetBalanceFunctionObject("AOD");\r
67     bfs = GetBalanceFunctionObject("AOD",kTRUE);\r
68   }\r
69   else{\r
70     bf  = GetBalanceFunctionObject("MC");\r
71     bfs = GetBalanceFunctionObject("MC",kTRUE);\r
72   }\r
73 \r
74   // Create the task, add it to manager and configure it.\r
75   //===========================================================================\r
76   AliAnalysisTaskBF *taskBF = new AliAnalysisTaskBF("TaskBF");\r
77   taskBF->SetAnalysisObject(bf,bfs);\r
78   taskBF->SetCentralityPercentileRange(centrMin,centrMax);\r
79   if(analysisType == "ESD") {\r
80     AliESDtrackCuts *trackCuts = GetTrackCutsObject();\r
81     taskBF->SetAnalysisCutObject(trackCuts);\r
82 \r
83     // offline trigger selection (AliVEvent.h)\r
84     // taskBF->UseOfflineTrigger(); // NOT used (selection is done with the AliAnalysisTaskSE::SelectCollisionCandidates()) \r
85     // with this only selected events are analyzed (first 2 bins in event QA histogram are the same))\r
86     taskBF->SelectCollisionCandidates(AliVEvent::kMB);\r
87   }\r
88   else if(analysisType == "AOD") {\r
89     // pt and eta cut (pt_min, pt_max, eta_min, eta_max)\r
90     taskBF->SetAODtrackCutBit(128);\r
91     taskBF->SetKinematicsCutsAOD(ptMin,ptMax,etaMin,etaMax);\r
92     taskBF->SetExtraDCACutsAOD(DCAxy,DCAz);\r
93   }\r
94 \r
95   // centrality estimator (default = V0M)\r
96     taskBF->SetCentralityEstimator(centralityEstimator);\r
97 \r
98 \r
99     // vertex cut (x,y,z)\r
100     taskBF->SetVertexDiamond(.3,.3,vertexZ);\r
101 \r
102     //bf->PrintAnalysisSettings();\r
103     mgr->AddTask(taskBF);\r
104 \r
105   // Create ONLY the output containers for the data produced by the task.\r
106   // Get and connect other common input/output containers via the manager as below\r
107   //==============================================================================\r
108   TString outputFileName = AliAnalysisManager::GetCommonFileName();\r
109   outputFileName += ":PWG2EbyE.outputBalanceFunctionAnalysis";\r
110   AliAnalysisDataContainer *coutQA = mgr->CreateContainer(Form("listQA_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
111   AliAnalysisDataContainer *coutBF = mgr->CreateContainer(Form("listBF_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
112   AliAnalysisDataContainer *coutBFS= mgr->CreateContainer(Form("listBFShuffled_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
113   mgr->ConnectInput(taskBF, 0, mgr->GetCommonInputContainer());\r
114   mgr->ConnectOutput(taskBF, 1, coutQA);\r
115   mgr->ConnectOutput(taskBF, 2, coutBF);\r
116   mgr->ConnectOutput(taskBF, 3, coutBFS);\r
117 \r
118   return taskBF;\r
119 }\r