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