]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/EBYE/macros/AddTaskBalanceMCCentralityTrain.C
Updated hydro macro
[u/mrichter/AliRoot.git] / PWGCF / EBYE / macros / AddTaskBalanceMCCentralityTrain.C
CommitLineData
6e28a437 1// now in options\r
2//=============================================//\r
6a3f819e 3//const char* centralityEstimator = "V0M";\r
6e28a437 4//const char* centralityEstimator = "CL1";\r
5//const char* centralityEstimator = "TRK";\r
6//=============================================//\r
7//Bool_t gRunShuffling = kFALSE;\r
8//Bool_t gRunShuffling = kTRUE;\r
9//=============================================//\r
10//_________________________________________________________//\r
11AliAnalysisTaskBF *AddTaskBalanceMCCentralityTrain(Double_t centrMin=0.,\r
12 Double_t centrMax=100.,\r
13 Double_t impactParameterMin=0.,\r
14 Double_t impactParameterMax=20.,\r
15 Bool_t gRunShuffling=kFALSE,\r
16 Double_t vertexZ=10.,\r
17 Double_t ptMin=0.3,\r
18 Double_t ptMax=1.5,\r
19 Double_t etaMin=-0.8,\r
20 Double_t etaMax=0.8,\r
d9f855f3 21 TF1* gAcceptanceParameterization = 0x0,\r
22 Int_t gPdgCode = -1,\r
6e28a437 23 TString fileNameBase="AnalysisResults") {\r
24\r
25 // Creates a balance function analysis task and adds it to the analysis manager.\r
26 // Get the pointer to the existing analysis manager via the static access method.\r
27 TString centralityName("");\r
28 centralityName+=Form("%.0f",centrMin);\r
29 centralityName+="-";\r
30 centralityName+=Form("%.0f",centrMax);\r
31\r
32 TString outputFileName(fileNameBase);\r
33 outputFileName.Append(".root");\r
34\r
35 //===========================================================================\r
36 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
37 if (!mgr) {\r
38 ::Error("AddTaskBF", "No analysis manager to connect to.");\r
39 return NULL;\r
40 }\r
41\r
42 // Check the analysis type using the event handlers connected to the analysis manager.\r
43 //===========================================================================\r
44 if (!mgr->GetInputEventHandler()) {\r
45 ::Error("AddTaskBF", "This task requires an input event handler");\r
46 return NULL;\r
47 }\r
48 TString analysisType = "MC";\r
49\r
50 // for local changed BF configuration\r
d9f855f3 51 gROOT->LoadMacro("./configBalanceFunctionAnalysis.C");\r
a022cbd0 52 //gROOT->LoadMacro("$ALICE_ROOT/PWGCF/EBYE/macros/configBalanceFunctionAnalysis.C");\r
6e28a437 53 AliBalance *bf = 0; // Balance Function object\r
54 AliBalance *bfs = 0; // shuffled Balance function object\r
55\r
56 if (analysisType=="ESD"){\r
6a3f819e 57 bf = GetBalanceFunctionObject("ESD",centralityName.Data());\r
58 if(gRunShuffling) bfs = GetBalanceFunctionObject("ESD",centralityName.Data(),kTRUE);\r
6e28a437 59 }\r
60 else if (analysisType=="AOD"){\r
6a3f819e 61 bf = GetBalanceFunctionObject("AOD",centralityName.Data());\r
62 if(gRunShuffling) bfs = GetBalanceFunctionObject("AOD",centralityName.Data(),kTRUE);\r
6e28a437 63 }\r
64 else if (analysisType=="MC"){\r
6a3f819e 65 bf = GetBalanceFunctionObject("MC",centralityName.Data());\r
66 if(gRunShuffling) bfs = GetBalanceFunctionObject("MC",centralityName.Data(),kTRUE);\r
6e28a437 67 }\r
68 else{\r
69 ::Error("AddTaskBF", "analysis type NOT known.");\r
70 return NULL;\r
71 }\r
72\r
73 // Create the task, add it to manager and configure it.\r
74 //===========================================================================\r
75 AliAnalysisTaskBF *taskBF = new AliAnalysisTaskBF("TaskBF");\r
76 taskBF->SetAnalysisObject(bf);\r
77 if(gRunShuffling) taskBF->SetShufflingObject(bfs);\r
78\r
79 if(analysisType == "ESD") {\r
80 AliESDtrackCuts *trackCuts = GetTrackCutsObject(ptMin,ptMax,etaMin,etaMax,maxTPCchi2,DCAxy,DCAz,minNClustersTPC);\r
81 taskBF->SetAnalysisCutObject(trackCuts);\r
82 // centrality estimator (default = V0M)\r
83 taskBF->SetCentralityEstimator(centralityEstimator);\r
84 taskBF->SetCentralityPercentileRange(impactParameterMin,\r
85 impactParameterMax);\r
86 }\r
87 else if(analysisType == "AOD") {\r
88 // pt and eta cut (pt_min, pt_max, eta_min, eta_max)\r
89 taskBF->SetAODtrackCutBit(128);\r
90 taskBF->SetKinematicsCutsAOD(ptMin,ptMax,etaMin,etaMax);\r
91 taskBF->SetCentralityEstimator(centralityEstimator);\r
92 taskBF->SetCentralityPercentileRange(impactParameterMin,\r
93 impactParameterMax);\r
94\r
95 // set extra DCA cuts (-1 no extra cut)\r
96 taskBF->SetExtraDCACutsAOD(DCAxy,DCAz);\r
97\r
98 // set extra TPC chi2 / nr of clusters cut\r
99 taskBF->SetExtraTPCCutsAOD(maxTPCchi2, minNClustersTPC);\r
100 taskBF->SetCentralityEstimator(centralityEstimator); \r
101 }\r
102 else if(analysisType == "MC") {\r
d9f855f3 103 Printf("********************ANALYSIS TYPE MC********************************");\r
104 if(gAcceptanceParameterization)\r
105 taskBF->SetAcceptanceParameterization(gAcceptanceParameterization);\r
106 if(gPdgCode != -1)\r
107 taskBF->SetPDGCode(gPdgCode);\r
6e28a437 108 taskBF->SetKinematicsCutsAOD(ptMin,ptMax,etaMin,etaMax); \r
109 taskBF->SetImpactParameterRange(impactParameterMin,\r
110 impactParameterMax);\r
111 }\r
112\r
113 // offline trigger selection (AliVEvent.h)\r
114 // taskBF->UseOfflineTrigger(); // NOT used (selection is done with the AliAnalysisTaskSE::SelectCollisionCandidates()) \r
115 // with this only selected events are analyzed (first 2 bins in event QA histogram are the same))\r
116 // documentation in https://twiki.cern.ch/twiki/bin/viewauth/ALICE/PWG1EvSelDocumentation\r
117 //taskBF->SelectCollisionCandidates(AliVEvent::kMB);\r
118 \r
119 // vertex cut (x,y,z)\r
120 taskBF->SetVertexDiamond(.3,.3,vertexZ);\r
121 \r
122\r
123\r
124 //bf->PrintAnalysisSettings();\r
125 mgr->AddTask(taskBF);\r
126 \r
127 // Create ONLY the output containers for the data produced by the task.\r
128 // Get and connect other common input/output containers via the manager as below\r
129 //==============================================================================\r
130 TString outputFileName = AliAnalysisManager::GetCommonFileName();\r
a022cbd0 131 outputFileName += ":PWGCFEbyE.outputBalanceFunctionAnalysis";\r
6e28a437 132 AliAnalysisDataContainer *coutQA = mgr->CreateContainer(Form("listQA_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
133 AliAnalysisDataContainer *coutBF = mgr->CreateContainer(Form("listBF_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
134 if(gRunShuffling) AliAnalysisDataContainer *coutBFS= mgr->CreateContainer(Form("listBFShuffled_%s",centralityName.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());\r
135 mgr->ConnectInput(taskBF, 0, mgr->GetCommonInputContainer());\r
136 mgr->ConnectOutput(taskBF, 1, coutQA);\r
137 mgr->ConnectOutput(taskBF, 2, coutBF);\r
138 if(gRunShuffling) mgr->ConnectOutput(taskBF, 3, coutBFS);\r
139\r
140 return taskBF;\r
141}\r