]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/EBYE/macros/AddTaskBalanceFunctionInppMultiplicityTrain.C
new task MK
[u/mrichter/AliRoot.git] / PWGCF / EBYE / macros / AddTaskBalanceFunctionInppMultiplicityTrain.C
CommitLineData
b5e8b66e 1//_________________________________________________________//\r
2AliAnalysisTaskBF *AddTaskBalanceFunctionInppMultiplicityTrain(Int_t nMultMin = 0,\r
3 Int_t nMultMax = 100,\r
4 Double_t vertexZ=10.,\r
5 Double_t DCAxy=-1,\r
6 Double_t DCAz=-1,\r
7 Double_t ptMin=0.3,\r
8 Double_t ptMax=1.5,\r
9 Double_t etaMin=-0.8,\r
10 Double_t etaMax=0.8,\r
11 TString fileNameBase="AnalysisResults") {\r
12 // Creates a balance function analysis task and adds it to the analysis manager.\r
13 // Get the pointer to the existing analysis manager via the static access method.\r
14 TString outputFileName(fileNameBase);\r
15 outputFileName.Append(".root");\r
16\r
17 \r
18 //===========================================================================\r
19 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
20 if (!mgr) {\r
21 ::Error("AddTaskBF", "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("AddTaskBF", "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
a022cbd0 32 gROOT->LoadMacro("$ALICE_ROOT/PWGCF/EBYE/macros/configBalanceFunctionAnalysis.C");\r
b5e8b66e 33 AliBalance *bf = 0; // Balance Function object\r
34 AliBalance *bfs = 0; // shuffled Balance function object\r
35\r
36 if (analysisType=="ESD"){\r
37 bf = GetBalanceFunctionObject("ESD",0,nMultMin,nMultMax);\r
38 bfs = GetBalanceFunctionObject("ESD",0,nMultMin,nMultMax,kTRUE);\r
39 }\r
40 else if (analysisType=="AOD"){\r
41 bf = GetBalanceFunctionObject("AOD",0,nMultMin,nMultMax);\r
42 bfs = GetBalanceFunctionObject("AOD",0,nMultMin,nMultMax,kTRUE);\r
43 }\r
44 else{\r
45 bf = GetBalanceFunctionObject("MC",0,nMultMin,nMultMax);\r
46 bfs = GetBalanceFunctionObject("MC",0,nMultMin,nMultMax,kTRUE);\r
47 }\r
48\r
49 // Create the task, add it to manager and configure it.\r
50 //===========================================================================\r
51 AliAnalysisTaskBF *taskBF = new AliAnalysisTaskBF("TaskBF");\r
52 taskBF->SetAnalysisObject(bf);\r
53 taskBF->SetShufflingObject(bfs);\r
54 if(analysisType == "ESD") {\r
55 AliESDtrackCuts *trackCuts = GetTrackCutsObject();\r
56 taskBF->SetAnalysisCutObject(trackCuts);\r
57 \r
58 // offline trigger selection (AliVEvent.h)\r
59 // taskBF->UseOfflineTrigger(); // NOT used (selection is done with the AliAnalysisTaskSE::SelectCollisionCandidates()) \r
60 // with this only selected events are analyzed (first 2 bins in event QA histogram are the same))\r
61 taskBF->SelectCollisionCandidates(AliVEvent::kMB);\r
62 }\r
63 else if(analysisType == "AOD") {\r
64 // pt and eta cut (pt_min, pt_max, eta_min, eta_max)\r
65 taskBF->SetAODtrackCutBit(128);\r
66 taskBF->SetKinematicsCutsAOD(ptMin,ptMax,etaMin,etaMax);\r
67 //taskBF->SetExtraDCACutsAOD(DCAxy,DCAz);\r
68 taskBF->SetMultiplicityRange(nMultMin,nMultMax);\r
69 }\r
70 \r
71 // vertex cut (x,y,z)\r
72 taskBF->SetVertexDiamond(.3,.3,vertexZ);\r
73 \r
74 //bf->PrintAnalysisSettings();\r
75 mgr->AddTask(taskBF);\r
76\r
77 // Create ONLY the output containers for the data produced by the task.\r
78 // Get and connect other common input/output containers via the manager as below\r
79 //======================================================================\r
80 TString listQAName = "listQA"; listQAName += (Int_t) (nMultMin);\r
81 listQAName += "-"; listQAName += (Int_t) (nMultMax);\r
82 AliAnalysisDataContainer *coutQA = mgr->CreateContainer(listQAName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
83 \r
84 TString listBFName = "listBF"; listBFName += (Int_t) (nMultMin);\r
85 listBFName += "-"; listBFName += (Int_t) (nMultMax);\r
86 AliAnalysisDataContainer *coutBF = mgr->CreateContainer(listBFName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
87 \r
88 TString listBFshuffledName = "listBFshuffled"; listBFshuffledName += (Int_t) (nMultMin);\r
89 listBFshuffledName += "-"; listBFshuffledName += (Int_t) (nMultMax);\r
90 AliAnalysisDataContainer *coutBFS= mgr->CreateContainer(listBFshuffledName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
91 mgr->ConnectInput(taskBF, 0, mgr->GetCommonInputContainer());\r
92 mgr->ConnectOutput(taskBF, 1, coutQA);\r
93 mgr->ConnectOutput(taskBF, 2, coutBF);\r
94 mgr->ConnectOutput(taskBF, 3, coutBFS);\r
95\r
96 return taskBF;\r
97}\r