]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/macros/dptdptcorrelations/AddTaskDptWeight_dca1.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / Correlations / macros / dptdptcorrelations / AddTaskDptWeight_dca1.C
CommitLineData
8c006fc6 1//
2// Macro designed for use with the AliAnalysisTaskDptDptCorrelations task.
3//
4// Author: Prabhat Pujahari & Claude Pruneau, Wayne State
5//
b8ab2bb9 6// system: 0: PbPb 1: pPb
8c006fc6 7// singlesOnly: 0: full correlations 1: singles only
8// useWeights: 0: no 1: yes
b8ab2bb9 9// centralityMethod: 3: track count 4: V0 centrality 7: V0A centrality for pPb
8c006fc6 10// chargeSet: 0: ++ 1: +- 2: -+ 3: --
11/////////////////////////////////////////////////////////////////////////////////
12
b8ab2bb9 13AliAnalysisTaskDptDptCorrelations *AddTaskDptWeight_dca1
14(int system = 1,
15 int singlesOnly = 1,
16 int useWeights = 0,
17 int centralityMethod = 7,
18 int chargeSet = 1,
19 int trackFilterBit = 768,
20 int nClusterMin = 80,
21 double etaMin = -0.8,
22 double etaMax = 0.8,
23 double dcaZMin = -2.0,
24 double dcaZMax = 2.0,
25 double dcaXYMin = -2.4,
26 double dcaXYMax = 2.4,
27 int nCentrality = 4,
28 Bool_t trigger = kTRUE,
29 const char* taskname = "dcaz2"
30 )
31
8c006fc6 32{
b8ab2bb9 33
8c006fc6 34 // Set Default Configuration of this analysis
35 // ==========================================
36 int debugLevel = 0;
37 int rejectPileup = 1;
38 int rejectPairConversion = 1;
39 int sameFilter = 1;
40
41
42 //int nCentrality;
43 double minCentrality[10];
44 double maxCentrality[10];
45
46 if (system==0) // PbPb
47 {
48 if (centralityMethod == 4)
49 {
b8ab2bb9 50
8c006fc6 51 minCentrality[0] = 0.0; maxCentrality[0] = 5.0;
52 minCentrality[1] = 5.0; maxCentrality[1] = 10.;
53 minCentrality[2] = 30.; maxCentrality[2] = 40.;
54 minCentrality[3] = 60.; maxCentrality[3] = 70.;
55
8c006fc6 56 //To Get rid of Memory problem
57 //nCentrality = 10;
58 /*minCentrality[0] = 0.0; maxCentrality[0] = 5.0; //change it prabhat
59 minCentrality[1] = 5.0; maxCentrality[1] = 10.;
60 minCentrality[2] = 10.; maxCentrality[2] = 20.;
61 minCentrality[3] = 20.; maxCentrality[3] = 30.;
62 minCentrality[4] = 30.; maxCentrality[4] = 40.;
63 minCentrality[5] = 40.; maxCentrality[5] = 50.;
64 minCentrality[6] = 50.; maxCentrality[6] = 60.;
65 minCentrality[7] = 60.; maxCentrality[7] = 70.;
66 minCentrality[8] = 70.; maxCentrality[8] = 80.;
67 minCentrality[9] = 80.; maxCentrality[9] = 90.;
68 */
69 }
70 else
71 {
72 cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". centralityMethod:" << centralityMethod << " Option NOT AVAILABLE. ABORT."
73 return 0;
74 }
75 }
b8ab2bb9 76 else if (system==1) // pPb
8c006fc6 77 {
b8ab2bb9 78 if (centralityMethod == 7)
8c006fc6 79 {
b8ab2bb9 80
81 minCentrality[0] = 0.; maxCentrality[0] = 20.0;
82 minCentrality[1] = 20.; maxCentrality[1] = 40.;
83 minCentrality[2] = 40.; maxCentrality[2] = 60.;
84 minCentrality[3] = 60.; maxCentrality[3] = 80.;
8c006fc6 85 }
86 else
87 {
88 //cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". centralityMethod:" << centralityMethod << " Option NOT AVAILABLE. ABORT."
89 return 0;
90 }
91 }
92 else
93 {
94 //cout << "-F- AddTaskDptDptCorrelations() system:" << system << ". Option NOT CURRENTLY AVAILABLE. ABORT."
95 return 0;
96 }
97
98 double zMin = -10.;
99 double zMax = 10.;
100 double ptMin = 0.2;
101 double ptMax = 2.0;
8c006fc6 102 double dedxMin = 0.0;
103 double dedxMax = 20000.0;
8c006fc6 104 int requestedCharge1 = 1; //default
105 int requestedCharge2 = -1; //default
106
107
108 // Get the pointer to the existing analysis manager via the static access method.
109 // ==============================================================================
110 AliAnalysisManager *analysisManager = AliAnalysisManager::GetAnalysisManager();
111
112 if (!analysisManager)
113 {
114 ::Error("AddTaskDptDptCorrelations", "No analysis manager to connect to.");
115 return NULL;
116 }
117
118 TString part1Name;
119 TString part2Name;
120 TString eventName;
121 TString prefixName = "Corr_";
122 TString pileupRejecSuffix = "_PileupRejec";
123 TString pairRejecSuffix = "_PairRejec";
124 TString calibSuffix = "_calib";
125 TString singlesOnlySuffix = "_SO";
126 TString suffix;
127
128 TString inputPath = ".";
129 TString outputPath = ".";
130 TString baseName;
131 TString listName;
132 TString taskName;
133 TString inputHistogramFileName;
134 TString outputHistogramFileName;
135
136 // Create the task and add subtask.
137 // ===========================================================================
138 int iTask = 0; // task counter
139 AliAnalysisDataContainer *taskInputContainer;
140 AliAnalysisDataContainer *taskOutputContainer;
141 AliAnalysisTaskDptDptCorrelations* task;
142
143 for (int iCentrality=0; iCentrality < nCentrality; ++iCentrality)
144 {
145 switch (chargeSet)
146 {
147 case 0: part1Name = "P_"; part2Name = "P_"; requestedCharge1 = 1; requestedCharge2 = 1; sameFilter = 1; break;
148 case 1: part1Name = "P_"; part2Name = "M_"; requestedCharge1 = 1; requestedCharge2 = -1; sameFilter = 0; break;
149 case 2: part1Name = "M_"; part2Name = "P_"; requestedCharge1 = -1; requestedCharge2 = 1; sameFilter = 0; break;
150 case 3: part1Name = "M_"; part2Name = "M_"; requestedCharge1 = -1; requestedCharge2 = -1; sameFilter = 1; break;
151 }
b8ab2bb9 152 //part1Name += int(1000*etaMin);
8c006fc6 153 part1Name += "eta";
154 part1Name += int(1000*etaMax);
155 part1Name += "_";
156 part1Name += int(1000*ptMin);
157 part1Name += "pt";
158 part1Name += int(1000*ptMax);
159 part1Name += "_";
b8ab2bb9 160 part1Name += int(1000*dcaZMin);
161 part1Name += "DCA";
162 part1Name += int(1000*dcaZMax);
163 part1Name += "_";
164
165
166 //part2Name += int(1000*etaMin);
8c006fc6 167 part2Name += "eta";
168 part2Name += int(1000*etaMax);
169 part2Name += "_";
170 part2Name += int(1000*ptMin);
171 part2Name += "pt";
172 part2Name += int(1000*ptMax);
173 part2Name += "_";
b8ab2bb9 174 part2Name += int(1000*dcaZMin);
175 part2Name += "DCA";
176 part2Name += int(1000*dcaZMax);
177 part2Name += "_";
178
8c006fc6 179 eventName = "";
180 eventName += int(10.*minCentrality[iCentrality] );
181 eventName += "Vo";
182 eventName += int(10.*maxCentrality[iCentrality] );
b8ab2bb9 183
184
8c006fc6 185 baseName = prefixName;
186 baseName += part1Name;
187 baseName += part2Name;
188 baseName += eventName;
189 listName = baseName;
190 taskName = baseName;
b8ab2bb9 191
8c006fc6 192
193 outputHistogramFileName = baseName;
194 if (singlesOnly) outputHistogramFileName += singlesOnlySuffix;
195 outputHistogramFileName += ".root";
196
197
198 TFile * inputFile = 0;
199 TList * histoList = 0;
200 TH3F * weight_1 = 0;
201 TH3F * weight_2 = 0;
202 if (useWeights)
203 {
204 TGrid::Connect("alien:");
205 inputFile = TFile::Open(inputHistogramFileName,"OLD");
206 if (!inputFile)
207 {
208 cout << "Requested file:" << inputHistogramFileName << " was not opened. ABORT." << endl;
209 return;
210 }
211 TString nameHistoBase = "correction_";
212 TString nameHisto;
213 nameHistoBase += eventName;
214 if (requestedCharge1 == 1)
215 {
216 nameHisto = nameHistoBase + "_p";
217 cout << "Input Histogram named: " << nameHisto << endl;
218 weight_1 = (TH3F *) inputFile->Get(nameHisto);
219 }
220 else
221 {
222 nameHisto = nameHistoBase + "_m";
223 cout << "Input Histogram named: " << nameHisto << endl;
224 weight_1 = (TH3F *) inputFile->Get(nameHisto);
225 }
226 if (!weight_1)
227 {
228 cout << "Requested histogram 'correction_p/m' was not found. ABORT." << endl;
229 return 0;
230 }
231
232 if (!sameFilter)
233 {
234 weight_2 = 0;
235 if (requestedCharge2 == 1)
236 {
237 nameHisto = nameHistoBase + "_p";
238 cout << "Input Histogram named: " << nameHisto << endl;
239 weight_2 = (TH3F *) inputFile->Get(nameHisto);
240 }
241 else
242 {
243 nameHisto = nameHistoBase + "_m";
244 cout << "Input Histogram named: " << nameHisto << endl;
245 weight_2 = (TH3F *) inputFile->Get(nameHisto);
246 }
247 if (!weight_2)
248 {
249 cout << "Requested histogram 'correction_p/m' was not found. ABORT." << endl;
250 return 0;
251 }
252 }
253 }
254 task = new AliAnalysisTaskDptDptCorrelations(taskName);
255 //configure my task
256 task->SetDebugLevel( debugLevel );
257 task->SetSameFilter( sameFilter );
258 task->SetSinglesOnly( singlesOnly );
259 task->SetUseWeights( useWeights );
260 task->SetRejectPileup( rejectPileup );
261 task->SetRejectPairConversion(rejectPairConversion);
262 task->SetVertexZMin( zMin );
263 task->SetVertexZMax( zMax );
264 task->SetVertexXYMin( -1. );
265 task->SetVertexXYMax( 1. );
266 task->SetCentralityMethod( centralityMethod);
267 task->SetCentrality( minCentrality[iCentrality], maxCentrality[iCentrality]);
268 task->SetPtMin1( ptMin );
269 task->SetPtMax1( ptMax );
270 task->SetEtaMin1( etaMin );
271 task->SetEtaMax1( etaMax );
272 task->SetPtMin2( ptMin );
273 task->SetPtMax2( ptMax );
274 task->SetEtaMin2( etaMin );
275 task->SetEtaMax2( etaMax );
276 task->SetDcaZMin( dcaZMin );
277 task->SetDcaZMax( dcaZMax );
278 task->SetDcaXYMin( dcaXYMin );
279 task->SetDcaXYMax( dcaXYMax );
280 task->SetDedxMin( dedxMin );
281 task->SetDedxMax( dedxMax );
282 task->SetNClusterMin( nClusterMin );
283 task->SetTrackFilterBit( trackFilterBit );
284 task->SetRequestedCharge_1( requestedCharge1);
285 task->SetRequestedCharge_2( requestedCharge2);
286 task->SetWeigth_1( weight_1 );
287 task->SetWeigth_2( weight_2 );
288
289
b8ab2bb9 290
291
292 if(trigger) task->SelectCollisionCandidates(AliVEvent::kINT7);
293 else task->SelectCollisionCandidates(AliVEvent::kMB);
294
8c006fc6 295 cout << "Creating task output container" << endl;
b8ab2bb9 296
8c006fc6 297 taskOutputContainer = analysisManager->CreateContainer(listName,
298 TList::Class(),
299 AliAnalysisManager::kOutputContainer,
b8ab2bb9 300 Form("%s:%s", AliAnalysisManager::GetCommonFileName(),taskname));
8c006fc6 301 cout << "Add task to analysis manager and connect it to input and output containers" << endl;
b8ab2bb9 302
303
8c006fc6 304 analysisManager->AddTask(task);
305 analysisManager->ConnectInput( task, 0, analysisManager->GetCommonInputContainer());
306 analysisManager->ConnectOutput(task, 0, taskOutputContainer );
307 cout << "Task added ...." << endl;
308
309 iTask++;
310
311 }
312
8c006fc6 313 return task;
314}