a19c3402 |
1 | /** VERSION NUMBER 0 */ |
2 | |
3 | Bool_t usePWG4PartCorr = kTRUE; |
4 | |
5 | |
6 | /** ------------------------------ Monte Carlo flag -----------------------------------------*/ |
7 | Bool_t doMCTruth = kTRUE; |
8 | /** ---------------------------- end Monte Carlo flag ---------------------------------------*/ |
9 | |
10 | /** ------------------------- Choose KFParticle OR ESDTrack --------------------------------*/ |
11 | Bool_t useKFParticle = kTRUE; |
12 | Bool_t useESDTrack = kFALSE; |
13 | /** ----------------------- end Choose KFParticle OR ESDTrack -----------------------------*/ |
14 | |
15 | |
16 | Bool_t calculateBackground = kTRUE; |
17 | |
6c3a327c |
18 | Int_t numberOfFilesToAnalyze=0; |
a19c3402 |
19 | |
20 | /** ---------------------------------- define cuts here ------------------------------------*/ |
21 | |
22 | Int_t pidOfNegativeTrack=11; |
23 | Int_t pidOfPositiveTrack=-11; |
24 | |
25 | Double_t maxRCut = 200.; |
26 | Double_t etaCut = 1.2; |
27 | Double_t ptCut = 0.1; |
28 | Double_t chi2CutConversion = 20.; |
29 | Double_t chi2CutMeson = 20.; |
30 | |
31 | Double_t xVertexCut = 0.; |
32 | Double_t yVertexCut = 0.; |
33 | Double_t zVertexCut = 0.; |
34 | |
35 | Double_t sigmaCutGammaMass=0.0001; |
36 | |
37 | Bool_t useImprovedVertex = kTRUE; |
38 | |
39 | // define masses of different particles, this will be used by the KF particle |
40 | // together with the width to set mass constraints. Units in GeV. |
41 | Double_t electronMass = 0.00051099892; |
42 | Double_t gammaMass = 0.; |
43 | Double_t pi0Mass = 0.1349766; |
44 | Double_t etaMass = 0.54751; |
45 | |
46 | // define the width constraint used by KF particle. |
47 | Double_t gammaWidth = 0.01; |
48 | Double_t pi0Width = 0.01; |
49 | Double_t etaWidth = 0.01; |
50 | |
51 | // define the probability of track being an electron |
52 | Double_t probElectron = 0.5; |
53 | |
54 | /** ----------------------------------end define cuts here----------------------------------*/ |
55 | |
56 | /** -------------------------------- Phi/R Mapping ---------------------------------------*/ |
57 | Int_t nPhiIndex = 18; |
58 | Int_t nRIndex = 40; |
59 | |
60 | Double_t minRadius = 0.; |
61 | Double_t maxRadius = 200.; |
62 | Double_t minPhi = -TMath::Pi(); |
63 | Double_t maxPhi = TMath::Pi(); |
64 | /** ------------------------------- end Phi/R Mapping ------------------------------------*/ |
65 | |
66 | /** ------------------- define which histograms to plot here --------------------------------*/ |
67 | /** NB: to change the bin numbers, see below the histogram flags */ |
68 | Bool_t plotMCEPR = kTRUE; |
69 | Bool_t plotMCEPZR = kTRUE; |
70 | Bool_t plotMCEPXY = kTRUE; |
71 | Bool_t plotMCEPOpeningAngle = kTRUE; |
72 | |
73 | Bool_t plotMCEEnergy = kTRUE; |
74 | Bool_t plotMCEPt = kTRUE; |
75 | Bool_t plotMCEEta = kTRUE; |
76 | Bool_t plotMCEPhi = kTRUE; |
77 | |
78 | Bool_t plotMCPEnergy = kTRUE; |
79 | Bool_t plotMCPPt = kTRUE; |
80 | Bool_t plotMCPEta = kTRUE; |
81 | Bool_t plotMCPPhi = kTRUE; |
82 | |
83 | Bool_t plotMCGammaEnergy = kTRUE; |
84 | Bool_t plotMCGammaPt = kTRUE; |
85 | Bool_t plotMCGammaEta = kTRUE; |
86 | Bool_t plotMCGammaPhi = kTRUE; |
87 | |
88 | Bool_t plotMCDirectGammaEnergy = kTRUE; |
89 | Bool_t plotMCDirectGammaPt = kTRUE; |
90 | Bool_t plotMCDirectGammaEta = kTRUE; |
91 | Bool_t plotMCDirectGammaPhi = kTRUE; |
92 | |
93 | Bool_t plotMCMatchGammaEta = kTRUE; |
94 | Bool_t plotMCMatchGammaPhi = kTRUE; |
95 | Bool_t plotMCMatchGammaPt = kTRUE; |
96 | Bool_t plotMCMatchGammaEnergy = kTRUE; |
97 | Bool_t plotMCMatchGammaMass = kTRUE; |
98 | Bool_t plotMCMatchGammaOpeningAngle = kTRUE; |
99 | Bool_t plotMCMatchGammaR = kTRUE; |
100 | Bool_t plotMCMatchGammaZR = kTRUE; |
101 | Bool_t plotMCMatchGammaXY = kTRUE; |
102 | |
103 | Bool_t plotMCPi0Eta = kTRUE; |
104 | Bool_t plotMCPi0Phi = kTRUE; |
105 | Bool_t plotMCPi0Pt = kTRUE; |
106 | Bool_t plotMCPi0Energy = kTRUE; |
107 | Bool_t plotMCPi0Mass = kTRUE; |
108 | Bool_t plotMCPi0OpeningAngle = kTRUE; |
109 | Bool_t plotMCPi0R = kTRUE; |
110 | Bool_t plotMCPi0ZR = kTRUE; |
111 | Bool_t plotMCPi0XY = kTRUE; |
112 | |
113 | Bool_t plotMCEtaEta = kTRUE; |
114 | Bool_t plotMCEtaPhi = kTRUE; |
115 | Bool_t plotMCEtaPt = kTRUE; |
116 | Bool_t plotMCEtaEnergy = kTRUE; |
117 | Bool_t plotMCEtaMass = kTRUE; |
118 | Bool_t plotMCEtaOpeningAngleGamma = kTRUE; |
119 | Bool_t plotMCEtaR = kTRUE; |
120 | Bool_t plotMCEtaZR = kTRUE; |
121 | Bool_t plotMCEtaXY = kTRUE; |
122 | |
123 | // Histograms from esd tracks |
124 | Bool_t plotESDEPR = kTRUE; |
125 | Bool_t plotESDEPZR = kTRUE; |
126 | Bool_t plotESDEPXY = kTRUE; |
127 | Bool_t plotESDEPOpeningAngle = kTRUE; |
128 | |
129 | Bool_t plotESDEEnergy = kTRUE; |
130 | Bool_t plotESDEPt = kTRUE; |
131 | Bool_t plotESDEEta = kTRUE; |
132 | Bool_t plotESDEPhi = kTRUE; |
133 | |
134 | Bool_t plotESDPEnergy = kTRUE; |
135 | Bool_t plotESDPPt = kTRUE; |
136 | Bool_t plotESDPEta = kTRUE; |
137 | Bool_t plotESDPPhi = kTRUE; |
138 | |
a19c3402 |
139 | Bool_t plotESDGammaEnergy = kTRUE; |
140 | Bool_t plotESDGammaPt = kTRUE; |
141 | Bool_t plotESDGammaEta = kTRUE; |
142 | Bool_t plotESDGammaPhi = kTRUE; |
143 | |
144 | Bool_t plotESDMatchGammaOpeningAngle = kTRUE; |
145 | Bool_t plotESDMatchGammaEnergy = kTRUE; |
146 | Bool_t plotESDMatchGammaPt = kTRUE; |
147 | Bool_t plotESDMatchGammaEta = kTRUE; |
148 | Bool_t plotESDMatchGammaPhi = kTRUE; |
149 | Bool_t plotESDMatchGammaMass = kTRUE; |
150 | Bool_t plotESDMatchGammaWidth = kTRUE; |
151 | Bool_t plotESDMatchGammaChi2 = kTRUE; |
152 | Bool_t plotESDMatchGammaNDF = kTRUE; |
153 | Bool_t plotESDMatchGammaR = kTRUE; |
154 | Bool_t plotESDMatchGammaZR = kTRUE; |
155 | Bool_t plotESDMatchGammaXY = kTRUE; |
156 | |
157 | Bool_t plotESDTwoGammaCombinationOpeningAngleGamma = kTRUE; |
158 | Bool_t plotESDTwoGammaCombinationEnergy = kTRUE; |
159 | Bool_t plotESDTwoGammaCombinationPt = kTRUE; |
160 | Bool_t plotESDTwoGammaCombinationEta = kTRUE; |
161 | Bool_t plotESDTwoGammaCombinationPhi = kTRUE; |
162 | Bool_t plotESDTwoGammaCombinationMass = kTRUE; |
163 | Bool_t plotESDTwoGammaCombinationR = kTRUE; |
164 | Bool_t plotESDTwoGammaCombinationZR = kTRUE; |
165 | Bool_t plotESDTwoGammaCombinationXY = kTRUE; |
166 | |
167 | Bool_t plotESDBackgroundOpeningAngleGamma = kTRUE; |
168 | Bool_t plotESDBackgroundEnergy = kTRUE; |
169 | Bool_t plotESDBackgroundPt = kTRUE; |
170 | Bool_t plotESDBackgroundEta = kTRUE; |
171 | Bool_t plotESDBackgroundPhi = kTRUE; |
172 | Bool_t plotESDBackgroundMass = kTRUE; |
173 | Bool_t plotESDBackgroundR = kTRUE; |
174 | Bool_t plotESDBackgroundZR = kTRUE; |
175 | Bool_t plotESDBackgroundXY = kTRUE; |
176 | |
177 | Bool_t plotMapping = kTRUE; |
178 | |
179 | Bool_t plotResolutiondPt = kTRUE; |
180 | Bool_t plotResolutiondR = kTRUE; |
181 | Bool_t plotResolutiondZ = kTRUE; |
182 | |
183 | Bool_t plotResolutiondRdPt = kTRUE; |
184 | |
185 | Bool_t plotResolutionMCPt = kTRUE; |
186 | Bool_t plotResolutionMCR = kTRUE; |
187 | Bool_t plotResolutionMCZ = kTRUE; |
188 | |
189 | Bool_t plotResolutionESDPt = kTRUE; |
190 | Bool_t plotResolutionESDR = kTRUE; |
191 | Bool_t plotResolutionESDZ = kTRUE; |
192 | |
193 | Bool_t plotNumberOfV0s = kTRUE; |
194 | Bool_t plotNumberOfSurvivingV0s = kTRUE; |
195 | |
6c3a327c |
196 | // debug histograms |
a19c3402 |
197 | Bool_t plotV0MassDebugCut1 = kTRUE; |
198 | Bool_t plotV0MassDebugCut2 = kTRUE; |
199 | Bool_t plotV0MassDebugCut3 = kTRUE; |
200 | Bool_t plotV0MassDebugCut4 = kTRUE; |
201 | Bool_t plotV0MassDebugCut5 = kTRUE; |
202 | Bool_t plotV0MassDebugCut6 = kTRUE; |
203 | Bool_t plotV0MassDebugCut7 = kTRUE; |
204 | Bool_t plotV0MassDebugCut8 = kTRUE; |
205 | |
206 | Bool_t plotPi0Spectra = kTRUE; |
207 | Bool_t plotEtaSpectra = kTRUE; |
208 | |
209 | |
210 | /** ----------------- end define which histograms to plot here -------------------------------*/ |
211 | |
212 | |
213 | |
214 | /** ----------- Define the binning for the different plot types here -------------------------*/ |
215 | //R-plots |
216 | Int_t nXBinsR = 1000; |
217 | Double_t firstXBinR = 0.; |
218 | Double_t lastXBinR = 250.; |
219 | |
220 | //ZR-plots |
221 | Int_t nXBinsZR = 2000; |
222 | Double_t firstXBinZR = -10.; |
223 | Double_t lastXBinZR = 10.; |
224 | Int_t nYBinsZR = 1000; |
225 | Double_t firstYBinZR = 0.; |
226 | Double_t lastYBinZR = 250.; |
227 | |
228 | //XY-plots |
229 | Int_t nXBinsXY = 2000; |
230 | Double_t firstXBinXY = -250.; |
231 | Double_t lastXBinXY = 250.; |
232 | Int_t nYBinsXY = 2000; |
233 | Double_t firstYBinXY = -250.; |
234 | Double_t lastYBinXY = 250.; |
235 | |
236 | //OpenAngle-plots |
237 | Int_t nXBinsOpeningAngle = 200; |
238 | Double_t firstXBinOpeningAngle = 0.; |
239 | Double_t lastXBinOpeningAngle = TMath::Pi()/2; |
240 | |
241 | //Energy-plots |
242 | Int_t nXBinsEnergy = 500; |
243 | Double_t firstXBinEnergy = 0.; |
244 | Double_t lastXBinEnergy = 5.; |
245 | |
246 | //Pt-plots |
247 | Int_t nXBinsPt = 500; |
248 | Double_t firstXBinPt = 0.; |
249 | Double_t lastXBinPt = 5.; |
250 | |
251 | //Eta-plots |
252 | Int_t nXBinsEta = 400; |
253 | Double_t firstXBinEta = -2.; |
254 | Double_t lastXBinEta = 2.; |
255 | |
256 | //Phi-plots |
257 | Int_t nXBinsPhi = 720; |
258 | Double_t firstXBinPhi = -TMath::Pi(); |
259 | Double_t lastXBinPhi = TMath::Pi(); |
260 | |
261 | //Mapping-plots |
262 | Int_t nXBinsMapping = 40; |
263 | Double_t firstXBinMapping = -20.; |
264 | Double_t lastXBinMapping = 20.; |
265 | Int_t nYBinsMapping = 30; |
266 | Double_t firstYBinMapping = -1.5; |
267 | Double_t lastYBinMapping = 1.5; |
268 | |
269 | //ResolutionPlots |
270 | //RESdPt |
271 | Int_t nXBinsResdPt=500; |
272 | Int_t firstXBinResdPt= 0; |
273 | Int_t lastXBinResdPt=5; |
274 | Int_t nYBinsResdPt=1000; |
275 | Int_t firstYBinResdPt= -5; |
276 | Int_t lastYBinResdPt=5; |
277 | |
278 | //RESdR |
279 | Int_t nXBinsResdR=1000; |
280 | Int_t firstXBinResdR= 0; |
281 | Int_t lastXBinResdR=250; |
282 | Int_t nYBinsResdR=1000; |
283 | Int_t firstYBinResdR= -25; |
284 | Int_t lastYBinResdR=25; |
285 | |
286 | //RESdZ |
287 | Int_t nXBinsResdZ=2000; |
288 | Int_t firstXBinResdZ= -20; |
289 | Int_t lastXBinResdZ=20; |
290 | Int_t nYBinsResdZ=1000; |
291 | Int_t firstYBinResdZ= -20; |
292 | Int_t lastYBinResdZ=20; |
293 | |
294 | //RESdRdPt |
295 | Int_t nXBinsResdRdPt=1000; |
296 | Int_t firstXBinResdRdPt= -22; |
297 | Int_t lastXBinResdRdPt=22; |
298 | Int_t nYBinsResdRdPt=1000; |
299 | Int_t firstYBinResdRdPt= -5; |
300 | Int_t lastYBinResdRdPt=5; |
301 | |
a19c3402 |
302 | //RESMCPt |
303 | Int_t nXBinsResPt=500; |
304 | Int_t firstXBinResPt= 0; |
305 | Int_t lastXBinResPt=5; |
306 | |
307 | //RESMCR |
308 | Int_t nXBinsResR=1000; |
309 | Int_t firstXBinResR= 0; |
310 | Int_t lastXBinResR=250; |
311 | |
312 | //RESMCZ |
313 | Int_t nXBinsResZ=1000; |
314 | Int_t firstXBinResZ= 0; |
315 | Int_t lastXBinResZ=250; |
316 | |
317 | //GammaMass-plots |
318 | Int_t nXBinsGammaMass = 100; |
319 | Double_t firstXBinGammaMass = 0.; |
320 | Double_t lastXBinGammaMass = 1.; |
321 | |
322 | //Pi0Mass-plots |
323 | Int_t nXBinsPi0Mass = 100; |
324 | Double_t firstXBinPi0Mass = 0.; |
325 | Double_t lastXBinPi0Mass = 1.; |
326 | |
327 | //EtaMass-plots |
328 | Int_t nXBinsEtaMass = 100; |
329 | Double_t firstXBinEtaMass = 0.; |
330 | Double_t lastXBinEtaMass = 1.; |
331 | |
332 | //GammaWidth-plots |
333 | Int_t nXBinsGammaWidth = 100; |
334 | Double_t firstXBinGammaWidth = 0.; |
335 | Double_t lastXBinGammaWidth = 1.; |
336 | |
337 | //GammaChi2-plots |
338 | Int_t nXBinsGammaChi2 = 100; |
339 | Double_t firstXBinGammaChi2 = 0; |
340 | Double_t lastXBinGammaChi2 = 100.; |
341 | |
342 | //GammaNDF-plots |
343 | Int_t nXBinsGammaNDF = 10; |
344 | Double_t firstXBinGammaNDF = 0.; |
345 | Double_t lastXBinGammaNDF = 10.; |
346 | |
347 | //Spectra-plots |
348 | Int_t nXBinsSpectra = 100; |
349 | Double_t firstXBinSpectra = 0.; |
350 | Double_t lastXBinSpectra = 1.; |
351 | Int_t nYBinsSpectra = 500; |
352 | Double_t firstYBinSpectra = 0.; |
353 | Double_t lastYBinSpectra = 100.; |
354 | |
355 | /** ---------- end Define the binning for the different plot types here ----------------------*/ |
356 | |
357 | |
a19c3402 |
358 | /************************************************************************************************ |
359 | * * |
360 | * * |
361 | * EVERYTHING BELOW IS FOR DEVELOPERS ONLY * |
362 | * * |
363 | * * |
364 | ************************************************************************************************/ |
6c3a327c |
365 | TString outputFileName = "histogramsGammaConversion"; |
366 | TString outputFileAppendix = ""; |
367 | TString dataList = ""; |
368 | Bool_t writeNtuple = kFALSE; |
369 | |
370 | Bool_t scanArguments(TString arguments){ |
371 | Bool_t iResult = kTRUE; |
372 | |
373 | TString allArgs=arguments; |
374 | TString argument; |
375 | int bMissingParam=0; |
376 | |
377 | TObjArray* pTokens=allArgs.Tokenize(" "); |
378 | if (pTokens) { |
379 | |
380 | for(int i=0; i<pTokens->GetEntries() && iResult==kTRUE; i++) { |
381 | argument=((TObjString*)pTokens->At(i))->GetString(); |
382 | |
383 | if(argument.IsNull()) continue; |
384 | // -- deconvolute-time option |
385 | if(argument.CompareTo("-data-list") == 0){ |
386 | if((bMissingParam=(++i>=pTokens->GetEntries()))) break; |
387 | dataList = ((TObjString*)pTokens->At(i))->GetString(); |
388 | if(dataList.IsNull()){ |
389 | cout<<"-data-list is NULL"<<endl; |
390 | iResult=kFALSE; |
391 | } |
392 | else{ |
393 | cout<<"Data list is set to: "<<dataList<<endl; |
394 | } |
395 | } |
396 | else if(argument.CompareTo("-output-file-name") == 0){ |
397 | if((bMissingParam=(++i>=pTokens->GetEntries()))) break; |
398 | outputFileName = ((TObjString*)pTokens->At(i))->GetString(); |
399 | if(outputFileName.IsNull()){ |
400 | cout<<"-output-file-name is NULL"<<endl; |
401 | iResult=kFALSE; |
402 | } |
403 | else{ |
404 | cout<<"Setting output file name to: "<<outputFileName<<endl; |
405 | } |
406 | } |
407 | else if (argument.CompareTo("-write-ntuple") == 0){ |
408 | cout<<"Writing ntuple to file."<<endl; |
409 | writeNtuple = kTRUE; |
410 | } |
411 | else if(argument.CompareTo("-append-to-output-file") == 0){ |
412 | if((bMissingParam=(++i>=pTokens->GetEntries()))) break; |
413 | outputFileAppendix = "_"+((TObjString*)pTokens->At(i))->GetString(); |
414 | if(outputFileAppendix.IsNull()){ |
415 | cout<<"-appending-to-output-file is NULL"<<endl; |
416 | iResult=kFALSE; |
417 | } |
418 | else{ |
419 | cout<<"Appending to the output file: "<<outputFileAppendix<<endl; |
420 | } |
421 | } |
422 | } |
423 | |
424 | delete pTokens; |
425 | } |
426 | if (bMissingParam) { |
427 | cout<<"Missing parameter for argument "<< argument.Data()<<endl; |
428 | iResult=kFALSE; |
429 | } |
430 | return iResult; |
431 | } |
432 | |
433 | void ConfigGammaConversion(TString arguments){ |
434 | |
435 | if(!scanArguments(arguments)){ |
436 | break; |
437 | } |
438 | |
439 | if(numberOfFilesToAnalyze==0){ |
440 | ifstream dataInStream; |
441 | dataInStream.open(dataList.Data()); |
442 | if ( !dataInStream ){ |
443 | cout<<"Data list file does not exist: "<<dataList.Data()<<endl; |
444 | return 0; |
445 | } |
446 | string line; |
447 | while ( !dataInStream.eof() ) |
448 | { |
449 | getline(dataInStream, line); |
450 | numberOfFilesToAnalyze++; |
451 | } |
452 | } |
453 | cout<<"Number Of files to analyze: "<<numberOfFilesToAnalyze<<endl; |
a19c3402 |
454 | |
a19c3402 |
455 | build();//build (if necessary) and load the libraries needed |
456 | |
457 | gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C"); // load the CreateChain macro |
458 | |
459 | AliLog::SetGlobalLogLevel(AliLog::kError); |
460 | |
461 | //-------------------------------- Creating the histograms ------------------------------- |
462 | AliGammaConversionHistograms * histograms = new AliGammaConversionHistograms(); |
463 | |
464 | if(plotMCEPR == kTRUE){ histograms->AddHistogram("MC_EP_R","Radius of gamma conversion points",nXBinsR, firstXBinR, lastXBinR,"counts","cm");} |
465 | if(plotMCEPZR == kTRUE){ histograms->AddHistogram("MC_EP_ZR","Radius of gamma conversion points vs Z",nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "cm", "cm");} |
466 | if(plotMCEPXY == kTRUE){ histograms->AddHistogram("MC_EP_XY","Gamma XY converison point.",nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "cm", "cm");} |
467 | if(plotMCEPOpeningAngle == kTRUE){ histograms->AddHistogram("MC_EP_OpeningAngle","Opening angle of e+e- pairs from gamma conversion",nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "counts", "cm");} |
468 | |
469 | if(plotMCEEnergy == kTRUE){ histograms->AddHistogram("MC_E_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
470 | if(plotMCEPt == kTRUE){ histograms->AddHistogram("MC_E_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
471 | if(plotMCEEta == kTRUE){ histograms->AddHistogram("MC_E_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
472 | if(plotMCEPhi == kTRUE){ histograms->AddHistogram("MC_E_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
473 | |
474 | if(plotMCPEnergy == kTRUE){ histograms->AddHistogram("MC_P_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
475 | if(plotMCPPt == kTRUE){ histograms->AddHistogram("MC_P_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
476 | if(plotMCPEta == kTRUE){ histograms->AddHistogram("MC_P_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
477 | if(plotMCPPhi == kTRUE){ histograms->AddHistogram("MC_P_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
478 | |
479 | if(plotMCGammaEnergy == kTRUE){ histograms->AddHistogram("MC_Gamma_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
480 | if(plotMCGammaPt == kTRUE){ histograms->AddHistogram("MC_Gamma_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
481 | if(plotMCGammaEta == kTRUE){ histograms->AddHistogram("MC_Gamma_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
482 | if(plotMCGammaPhi == kTRUE){ histograms->AddHistogram("MC_Gamma_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
483 | |
484 | if(plotMCDirectGammaEnergy == kTRUE){ histograms->AddHistogram("MC_DirectGamma_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
485 | if(plotMCDirectGammaPt == kTRUE){ histograms->AddHistogram("MC_DirectGamma_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
486 | if(plotMCDirectGammaEta == kTRUE){ histograms->AddHistogram("MC_DirectGamma_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
487 | if(plotMCDirectGammaPhi == kTRUE){ histograms->AddHistogram("MC_DirectGamma_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
488 | |
489 | if(plotMCMatchGammaEta == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
490 | if(plotMCMatchGammaPhi == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
491 | if(plotMCMatchGammaPt == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
492 | if(plotMCMatchGammaEnergy == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
493 | if(plotMCMatchGammaMass == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_Mass" ,"" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass, "", "");} |
494 | if(plotMCMatchGammaOpeningAngle == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} |
495 | if(plotMCMatchGammaR == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} |
496 | if(plotMCMatchGammaZR == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} |
497 | if(plotMCMatchGammaXY == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} |
498 | |
499 | if(plotMCPi0Eta == kTRUE){ histograms->AddHistogram("MC_Pi0_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
500 | if(plotMCPi0Phi == kTRUE){ histograms->AddHistogram("MC_Pi0_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
501 | if(plotMCPi0Pt == kTRUE){ histograms->AddHistogram("MC_Pi0_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
502 | if(plotMCPi0Energy == kTRUE){ histograms->AddHistogram("MC_Pi0_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
503 | if(plotMCPi0Mass == kTRUE){ histograms->AddHistogram("MC_Pi0_Mass" ,"" , nXBinsPi0Mass, firstXBinPi0Mass, lastXBinPi0Mass, "", "");} |
504 | if(plotMCPi0OpeningAngle == kTRUE){ histograms->AddHistogram("MC_Pi0_GammaDaughter_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} |
505 | if(plotMCPi0R == kTRUE){ histograms->AddHistogram("MC_Pi0_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} |
506 | if(plotMCPi0ZR == kTRUE){ histograms->AddHistogram("MC_Pi0_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} |
507 | if(plotMCPi0XY == kTRUE){ histograms->AddHistogram("MC_Pi0_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} |
508 | |
509 | if(plotMCPi0Eta == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
510 | if(plotMCPi0Phi == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
511 | if(plotMCPi0Pt == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
512 | if(plotMCPi0Energy == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
513 | if(plotMCPi0Mass == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Mass" ,"" , nXBinsPi0Mass, firstXBinPi0Mass, lastXBinPi0Mass, "", "");} |
514 | if(plotMCPi0OpeningAngle == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_GammaDaughter_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} |
515 | if(plotMCPi0R == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} |
516 | if(plotMCPi0ZR == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} |
517 | if(plotMCPi0XY == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} |
518 | |
519 | if(plotMCEtaEta == kTRUE){ histograms->AddHistogram("MC_Eta_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
520 | if(plotMCEtaPhi == kTRUE){ histograms->AddHistogram("MC_Eta_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
521 | if(plotMCEtaPt == kTRUE){ histograms->AddHistogram("MC_Eta_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
522 | if(plotMCEtaEnergy == kTRUE){ histograms->AddHistogram("MC_Eta_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
523 | if(plotMCEtaMass == kTRUE){ histograms->AddHistogram("MC_Eta_Mass" ,"" , nXBinsEtaMass, firstXBinEtaMass, lastXBinEtaMass, "", "");} |
524 | if(plotMCEtaOpeningAngleGamma == kTRUE){ histograms->AddHistogram("MC_Eta_GammaDaughter_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} |
525 | if(plotMCEtaR == kTRUE){ histograms->AddHistogram("MC_Eta_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} |
526 | if(plotMCEtaZR == kTRUE){ histograms->AddHistogram("MC_Eta_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} |
527 | if(plotMCEtaXY == kTRUE){ histograms->AddHistogram("MC_Eta_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} |
528 | |
529 | // Histograms from esd tracks |
530 | if(plotESDEPR == kTRUE){ histograms->AddHistogram("ESD_EP_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} |
531 | if(plotESDEPZR == kTRUE){ histograms->AddHistogram("ESD_EP_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} |
532 | if(plotESDEPXY == kTRUE){ histograms->AddHistogram("ESD_EP_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} |
533 | if(plotESDEPOpeningAngle == kTRUE){ histograms->AddHistogram("ESD_EP_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} |
534 | |
535 | if(plotESDEEnergy == kTRUE){ histograms->AddHistogram("ESD_E_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
536 | if(plotESDEPt == kTRUE){ histograms->AddHistogram("ESD_E_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
537 | if(plotESDEEta == kTRUE){ histograms->AddHistogram("ESD_E_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
538 | if(plotESDEPhi == kTRUE){ histograms->AddHistogram("ESD_E_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
539 | |
540 | if(plotESDPEnergy == kTRUE){ histograms->AddHistogram("ESD_P_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
541 | if(plotESDPPt == kTRUE){ histograms->AddHistogram("ESD_P_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
542 | if(plotESDPEta == kTRUE){ histograms->AddHistogram("ESD_P_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
543 | if(plotESDPPhi == kTRUE){ histograms->AddHistogram("ESD_P_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
544 | |
545 | if(plotESDGammaEnergy == kTRUE){ histograms->AddHistogram("ESD_Gamma_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
546 | if(plotESDGammaPt == kTRUE){ histograms->AddHistogram("ESD_Gamma_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
547 | if(plotESDGammaEta == kTRUE){ histograms->AddHistogram("ESD_Gamma_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
548 | if(plotESDGammaPhi == kTRUE){ histograms->AddHistogram("ESD_Gamma_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
549 | |
550 | if(plotESDMatchGammaOpeningAngle == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} |
551 | if(plotESDMatchGammaEnergy == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
552 | if(plotESDMatchGammaPt == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
553 | if(plotESDMatchGammaEta == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
554 | if(plotESDMatchGammaPhi == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
555 | if(plotESDMatchGammaMass == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_Mass" ,"" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass, "", "");} |
556 | if(plotESDMatchGammaWidth == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_Width" ,"" , nXBinsGammaWidth, firstXBinGammaWidth, lastXBinGammaWidth, "", "");} |
557 | if(plotESDMatchGammaChi2 == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_Chi2" ,"" , nXBinsGammaChi2, firstXBinGammaChi2, lastXBinGammaChi2, "", "");} |
558 | if(plotESDMatchGammaNDF == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_NDF" ,"" , nXBinsGammaNDF, firstXBinGammaNDF, lastXBinGammaNDF, "", "");} |
559 | if(plotESDMatchGammaR == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} |
560 | if(plotESDMatchGammaZR == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} |
561 | if(plotESDMatchGammaXY == kTRUE){ histograms->AddHistogram("ESD_Match_Gamma_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} |
562 | |
563 | if(plotESDTwoGammaCombinationOpeningAngleGamma == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_GammaDaughter_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} |
564 | if(plotESDTwoGammaCombinationEnergy == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
565 | if(plotESDTwoGammaCombinationPt == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
566 | if(plotESDTwoGammaCombinationEta == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
567 | if(plotESDTwoGammaCombinationPhi == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
568 | if(plotESDTwoGammaCombinationMass == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_Mass" ,"" , nXBinsPi0Mass, firstXBinPi0Mass, lastXBinPi0Mass, "", "");} |
569 | if(plotESDTwoGammaCombinationR == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} |
570 | if(plotESDTwoGammaCombinationZR == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} |
571 | if(plotESDTwoGammaCombinationXY == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} |
572 | |
573 | if(plotESDBackgroundOpeningAngleGamma == kTRUE){ histograms->AddHistogram("ESD_Background_GammaDaughter_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} |
574 | if(plotESDBackgroundEnergy == kTRUE){ histograms->AddHistogram("ESD_Background_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} |
575 | if(plotESDBackgroundPt == kTRUE){ histograms->AddHistogram("ESD_Background_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} |
576 | if(plotESDBackgroundEta == kTRUE){ histograms->AddHistogram("ESD_Background_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} |
577 | if(plotESDBackgroundPhi == kTRUE){ histograms->AddHistogram("ESD_Background_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} |
578 | if(plotESDBackgroundMass == kTRUE){ histograms->AddHistogram("ESD_Background_Mass" ,"" , nXBinsEtaMass, firstXBinEtaMass, lastXBinEtaMass, "", "");} |
579 | if(plotESDBackgroundR == kTRUE){ histograms->AddHistogram("ESD_Background_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} |
580 | if(plotESDBackgroundZR == kTRUE){ histograms->AddHistogram("ESD_Background_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} |
581 | if(plotESDBackgroundXY == kTRUE){ histograms->AddHistogram("ESD_Background_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} |
582 | |
583 | if(plotMapping == kTRUE){ |
584 | histograms->InitializeMappingValues(nPhiIndex,nRIndex,nXBinsMapping,minRadius,maxRadius,nYBinsMapping,minPhi,maxPhi); |
585 | histograms->AddMappingHistograms(nPhiIndex,nRIndex,nXBinsMapping,minRadius,maxRadius,nYBinsMapping,minPhi,maxPhi); |
586 | } |
587 | |
588 | if(plotResolutiondPt == kTRUE){histograms->AddHistogram("Resolution_dPt" ,"" , nXBinsResdPt, firstXBinResdPt, lastXBinResdPt, nYBinsResdPt, firstYBinResdPt, lastYBinResdPt, "", "");} |
589 | if(plotResolutiondR == kTRUE){histograms->AddHistogram("Resolution_dR" ,"" , nXBinsResdR, firstXBinResdR, lastXBinResdR, nYBinsResdR, firstYBinResdR, lastYBinResdR, "", "");} |
590 | if(plotResolutiondZ == kTRUE){histograms->AddHistogram("Resolution_dZ" ,"" , nXBinsResdZ, firstXBinResdZ, lastXBinResdZ, nYBinsResdZ, firstYBinResdZ, lastYBinResdZ, "", "");} |
591 | |
592 | if(plotResolutiondRdPt == kTRUE){histograms->AddHistogram("Resolution_dR_dPt" ,"" , nXBinsResdRdPt, firstXBinResdRdPt, lastXBinResdRdPt, nYBinsResdRdPt, firstYBinResdRdPt, lastYBinResdRdPt, "", "");} |
593 | |
594 | if(plotResolutionMCPt == kTRUE){histograms->AddHistogram("Resolution_MC_Pt" ,"" , nXBinsResPt, firstXBinResPt, lastXBinResPt,"","");} |
595 | if(plotResolutionMCR == kTRUE){histograms->AddHistogram("Resolution_MC_R" ,"" , nXBinsResR, firstXBinResR, lastXBinResR,"","");} |
596 | if(plotResolutionMCZ == kTRUE){histograms->AddHistogram("Resolution_MC_Z" ,"" , nXBinsResZ, firstXBinResZ, lastXBinResZ,"","");} |
597 | |
598 | if(plotResolutionESDPt == kTRUE){histograms->AddHistogram("Resolution_ESD_Pt" ,"" , nXBinsResPt, firstXBinResPt, lastXBinResPt,"","");} |
599 | if(plotResolutionESDR == kTRUE){histograms->AddHistogram("Resolution_ESD_R" ,"" , nXBinsResR, firstXBinResR, lastXBinResR,"","");} |
600 | if(plotResolutionESDZ == kTRUE){histograms->AddHistogram("Resolution_ESD_Z" ,"" , nXBinsResZ, firstXBinResZ, lastXBinResZ,"","");} |
601 | |
602 | if(plotNumberOfV0s == kTRUE){histograms->AddHistogram("NumberOfV0s","Number of v0s",100, 0, 100,"","");} |
603 | if(plotNumberOfSurvivingV0s == kTRUE){histograms->AddHistogram("NumberOfSurvivingV0s","Number of surviving v0s",100, 0, 100,"","");} |
604 | |
605 | // debug histograms |
606 | if(plotV0MassDebugCut1 == kTRUE){histograms->AddHistogram("V0MassDebugCut1" ,"debug1" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} |
607 | if(plotV0MassDebugCut2 == kTRUE){histograms->AddHistogram("V0MassDebugCut2" ,"debug2" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} |
608 | if(plotV0MassDebugCut3 == kTRUE){histograms->AddHistogram("V0MassDebugCut3" ,"debug3" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} |
609 | if(plotV0MassDebugCut4 == kTRUE){histograms->AddHistogram("V0MassDebugCut4" ,"debug4" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} |
610 | if(plotV0MassDebugCut5 == kTRUE){histograms->AddHistogram("V0MassDebugCut5" ,"debug5" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} |
611 | if(plotV0MassDebugCut6 == kTRUE){histograms->AddHistogram("V0MassDebugCut6" ,"debug6" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} |
612 | if(plotV0MassDebugCut7 == kTRUE){histograms->AddHistogram("V0MassDebugCut7" ,"debug7" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} |
613 | if(plotV0MassDebugCut8 == kTRUE){histograms->AddHistogram("V0MassDebugCut8" ,"debug8" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} |
614 | |
615 | |
616 | if(plotPi0Spectra == kTRUE){histograms->AddHistogram("InvMass_vs_Pt_Spectra" ,"Invariant Mass vs Pt" , nXBinsSpectra, firstXBinSpectra, lastXBinSpectra,nYBinsSpectra, firstYBinSpectra, lastYBinSpectra,"InvMass [GeV]","Pt [GeV]");} |
617 | |
618 | if(plotPi0Spectra == kTRUE && calculateBackground == kTRUE){histograms->AddHistogram("Background_InvMass_vs_Pt_Spectra" ,"Background Invariant Mass vs Pt" , nXBinsSpectra, firstXBinSpectra, lastXBinSpectra,nYBinsSpectra, firstYBinSpectra, lastYBinSpectra,"InvMass [GeV]","Pt [GeV]");} |
619 | |
620 | |
621 | |
622 | //------------------------------ end Creating the histograms ----------------------------- |
623 | |
624 | // Create the Analysis manager |
625 | AliAnalysisManager *mgr = new AliAnalysisManager("My Manager", "My Analysis"); |
626 | |
627 | // Define Input Event Handler |
628 | AliESDInputHandler* inpHandler = new AliESDInputHandler(); |
629 | |
630 | // Define Output Event Handler |
631 | AliAODHandler* aodHandler = new AliAODHandler(); |
632 | aodHandler->SetOutputFileName("aodAliGammaConversion.root"); |
633 | |
634 | // Define MC Truth Event Handler |
635 | AliMCEventHandler* mcHandler = new AliMCEventHandler(); |
636 | |
637 | // Add Handlers to the Task Manager |
638 | mgr->SetInputEventHandler (inpHandler); |
639 | mgr->SetOutputEventHandler (aodHandler); |
640 | mgr->SetMCtruthEventHandler(mcHandler); |
641 | |
642 | // Be sure you are told what you are doing |
643 | mgr->SetDebugLevel(10); |
644 | |
645 | // Declare Common Input Tchain |
8a546c82 |
646 | AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer(); |
a19c3402 |
647 | |
648 | // Common Output Tree in common â\80\98defaultâ\80\99 output file |
8a546c82 |
649 | AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer(); |
a19c3402 |
650 | |
651 | // Private output objects |
6c3a327c |
652 | outputFileName.ReplaceAll(".root",""); |
653 | outputFileAppendix..ReplaceAll(".root",""); |
654 | TString fileOut = outputFileName + outputFileAppendix + ".root"; |
655 | |
656 | AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("histogramsAliGammaConversion", TList::Class(),AliAnalysisManager::kOutputContainer, fileOut); |
657 | |
a19c3402 |
658 | |
659 | |
660 | //------------------------ END: Define input/output handlers --------------------------------------------------- |
661 | |
662 | |
663 | //check for errors in the specified data |
664 | if(useKFParticle == kTRUE && useESDTrack == kTRUE){ |
665 | //Print warning, cannot use both |
666 | } |
667 | if(useKFParticle == kFALSE && useESDTrack == kFALSE){ |
668 | //Print warning, one have to be specified |
669 | } |
670 | |
671 | |
672 | //Create the V0Reader |
673 | AliV0Reader * v0Reader = new AliV0Reader(); |
674 | if(useKFParticle){ |
675 | v0Reader->UseKFParticle(); |
676 | } |
677 | else if(useESDTrack){ |
678 | v0Reader->UseESDTrack(); |
679 | } |
680 | v0Reader->SetNegativeTrackPID(pidOfNegativeTrack); |
681 | v0Reader->SetPositiveTrackPID(pidOfPositiveTrack); |
682 | v0Reader->SetMaxRCut(maxRCut); |
683 | v0Reader->SetEtaCut(etaCut); |
684 | v0Reader->SetPtCut(ptCut); |
685 | v0Reader->SetChi2CutConversion(chi2CutConversion); |
686 | v0Reader->SetChi2CutMeson(chi2CutMeson); |
687 | v0Reader->SetPIDProbability(probElectron); |
688 | v0Reader->SetXVertexCut(xVertexCut); |
689 | v0Reader->SetYVertexCut(yVertexCut); |
690 | v0Reader->SetZVertexCut(zVertexCut); |
691 | v0Reader->SetSigmaMass(sigmaCutGammaMass); |
692 | v0Reader->SetUseImprovedVertex(useImprovedVertex); |
693 | v0Reader->SetDoMCTruth(doMCTruth); |
694 | |
695 | // Create the GammaConversionTask |
696 | AliAnalysisTaskGammaConversion *gammaconversion = new AliAnalysisTaskGammaConversion("GammaConversionTask"); |
697 | gammaconversion->SetDebugLevel(10); |
698 | |
699 | gammaconversion->SetWriteNtuple(writeNtuple); |
700 | |
701 | gammaconversion->SetV0Reader(v0Reader); |
702 | gammaconversion->SetCalculateBackground(calculateBackground); |
703 | gammaconversion->Init(); |
704 | |
705 | gammaconversion->SetElectronMass(electronMass); |
706 | gammaconversion->SetGammaMass(gammaMass); |
707 | gammaconversion->SetPi0Mass(pi0Mass); |
708 | gammaconversion->SetEtaMass(etaMass); |
709 | |
710 | gammaconversion->SetGammaWidth(gammaWidth); |
711 | gammaconversion->SetPi0Width(pi0Width); |
712 | gammaconversion->SetEtaWidth(etaWidth); |
713 | |
714 | // define the width constraint used by KF particle. |
715 | Double_t gammaWidth = 0.01; |
716 | Double_t pi0Width = 0.01; |
717 | Double_t etaWidth = 0.01; |
718 | |
719 | gammaconversion->SetHistograms(histograms); |
720 | v0Reader->SetHistograms(histograms);// also give the pointer to the v0reader, for debugging cuts |
721 | |
722 | gammaconversion->SetDoMCTruth(doMCTruth); |
723 | |
724 | |
725 | // Add task to the manager |
726 | mgr->AddTask(gammaconversion); |
727 | |
728 | // Connect I/O to the task |
729 | mgr->ConnectInput (gammaconversion, 0, cinput1); |
730 | mgr->ConnectOutput(gammaconversion, 0, coutput1); |
731 | mgr->ConnectOutput(gammaconversion, 1, coutput2); |
732 | |
6c3a327c |
733 | if(dataList.IsNull()){ |
734 | cout<<"Data list is not set, aborting."<<endl; |
735 | return; |
736 | } |
737 | |
738 | TChain* chain= CreateESDChain(dataList,numberOfFilesToAnalyze); |
a19c3402 |
739 | |
740 | mgr->InitAnalysis(); |
741 | |
742 | mgr->PrintStatus(); |
743 | |
744 | mgr->StartAnalysis("local",chain); |
745 | } |
746 | |
a19c3402 |
747 | void build() { |
748 | TStopwatch timer; |
749 | timer.Start(); |
750 | gSystem->Load("libTree.so"); |
751 | gSystem->Load("libGeom"); |
752 | // gSystem->Load("libANALYSISalice"); |
753 | |
754 | //// |
755 | //Setting up ESD.par// |
756 | //// |
757 | cout<<"compiling ESD"<<endl; |
758 | setupPar("ESD"); |
759 | gSystem->Load("libVMC.so"); |
760 | gSystem->Load("libESD.so"); |
761 | |
762 | //// |
763 | //// |
764 | //Setting up STEERBase.par// |
765 | //// |
766 | cout<<"compiling STEERBase"<<endl; |
767 | setupPar("STEERBase"); |
768 | gSystem->Load("libSTEERBase.so"); |
769 | |
770 | //// |
771 | //Setting up AOD.par// |
772 | //// |
773 | cout<<"compiling AOD"<<endl; |
774 | setupPar("AOD"); |
775 | gSystem->Load("libAOD.so"); |
776 | |
777 | //// |
778 | //Setting up ANALYSIS.par// |
779 | //// |
780 | cout<<"compiling ANALYSIS"<<endl; |
781 | setupPar("ANALYSIS"); |
782 | gSystem->Load("libANALYSIS.so"); |
783 | |
784 | //// |
785 | //Setting up ANALYSISalice.par// |
786 | //// |
787 | cout<<"compiling ANALUSISalice"<<endl; |
788 | setupPar("ANALYSISalice"); |
789 | gSystem->Load("libANALYSISalice.so"); |
790 | |
791 | //// |
792 | //Setting up PWG4Gamma.par// |
793 | //// |
794 | // cout<<"compiling GammaConv"<<endl; |
795 | |
796 | if(usePWG4PartCorr == kTRUE){ |
797 | cout<<"Using PWG4PartCorr library"<<endl; |
798 | setupPar("PWG4PartCorr"); |
799 | gSystem->Load("libPWG4PartCorr.so"); |
800 | } |
801 | else{ |
802 | setupPar("PWG4GammaConv"); |
803 | gSystem->Load("libPWG4GammaConv.so"); |
804 | } |
805 | //if head:: use PWG4PartCorr |
806 | } |
807 | |
808 | Int_t setupPar(const char* pararchivename) { |
809 | /////////////////// |
810 | // Setup PAR File// |
811 | /////////////////// |
812 | if (pararchivename) { |
813 | char processline[1024]; |
814 | sprintf(processline,".! tar xvzf %s.par",pararchivename); |
815 | gROOT->ProcessLine(processline); |
816 | const char* ocwd = gSystem->WorkingDirectory(); |
817 | gSystem->ChangeDirectory(pararchivename); |
818 | |
819 | // check for BUILD.sh and execute |
820 | if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) { |
821 | printf("*******************************\n"); |
822 | printf("*** Building PAR archive ***\n"); |
823 | printf("*******************************\n"); |
824 | |
825 | if (gSystem->Exec("PROOF-INF/BUILD.sh")) { |
826 | Error("runAnalysis","Cannot Build the PAR Archive! - Abort!"); |
827 | return -1; |
828 | } |
829 | } |
830 | // check for SETUP.C and execute |
831 | if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) { |
832 | printf("*******************************\n"); |
833 | printf("*** Setup PAR archive ***\n"); |
834 | printf("*******************************\n"); |
835 | gROOT->Macro("PROOF-INF/SETUP.C"); |
836 | } |
837 | |
838 | gSystem->ChangeDirectory("../"); |
839 | } |
840 | return 1; |
841 | } |