]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/GammaConv/AliGammaConversionHistograms.cxx
Added more cuts to the pi0 analyis (Ana)
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliGammaConversionHistograms.cxx
CommitLineData
d7d7e825 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: Ana Marin, Kathrin Koch, Kenneth Aamodt *
5 * Version 1.1 *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16////////////////////////////////////////////////
17//---------------------------------------------
18// Class used to do analysis on conversion pairs
19//---------------------------------------------
20////////////////////////////////////////////////
21
22#include "AliGammaConversionHistograms.h"
23#include "TMath.h"
24#include "TObjString.h"
25#include "TMap.h"
26#include "TList.h"
27#include "TH1F.h"
28#include "TH2F.h"
9c1cb6f7 29#include "AliLog.h"
d7d7e825 30
31using namespace std;
32
33ClassImp(AliGammaConversionHistograms)
34
35
36AliGammaConversionHistograms::AliGammaConversionHistograms() :
37 fHistogramMap(new TMap()),
38 fNPhiIndex(0),
39 fNRIndex(0),
9640a3d1 40 fNZIndex(0),
81686db1 41// fRBinLimits(0),
42// fZBinLimits(0),
d7d7e825 43 fMinRadius(0.),
44 fMaxRadius(0.),
45 fDeltaR(0.),
46 fMinPhi(0.),
47 fMaxPhi(0.),
48 fDeltaPhi(0.),
49 fMappingContainer(NULL),
50 fBackgroundContainer(NULL),
51 fDebugContainer(NULL),
52 fResolutionContainer(NULL),
53 fMatchContainer(NULL),
54 fESDContainer(NULL),
55 fMCContainer(NULL),
56 fTableContainer(NULL),
57 fOtherContainer(NULL)
58{
59 // see header file for documenation
6272370b 60 for(Int_t i=0;i<14;i++){
81686db1 61 fRBinLimits[i]=0.;
62 }
6272370b 63 for(Int_t i=0;i<12;i++){
81686db1 64 fZBinLimits[i]=0.;
65 }
d7d7e825 66}
67
68
69AliGammaConversionHistograms::AliGammaConversionHistograms(const AliGammaConversionHistograms & original) :
70 fHistogramMap(original.fHistogramMap),
71 fNPhiIndex(original.fNPhiIndex),
72 fNRIndex(original.fNRIndex),
9640a3d1 73 fNZIndex(original.fNZIndex),
81686db1 74 // fRBinLimits(original.fRBinLimits),
75 // fZBinLimits(original.fZBinLimits),
d7d7e825 76 fMinRadius(original.fMinRadius),
77 fMaxRadius(original.fMaxRadius),
78 fDeltaR(original.fDeltaR),
79 fMinPhi(original.fMinPhi),
80 fMaxPhi(original.fMaxPhi),
81 fDeltaPhi(original.fDeltaPhi),
82 fMappingContainer(original.fMappingContainer),
83 fBackgroundContainer(original.fBackgroundContainer),
84 fDebugContainer(original.fDebugContainer),
85 fResolutionContainer(original.fResolutionContainer),
86 fMatchContainer(original.fMatchContainer),
87 fESDContainer(original.fESDContainer),
88 fMCContainer(original.fMCContainer),
89 fTableContainer(original.fTableContainer),
90 fOtherContainer(original.fOtherContainer)
91{
92 //see header file for documentation
6272370b 93 for(Int_t i=0;i<14;i++){
81686db1 94 fRBinLimits[i]= original.fRBinLimits[i];
95 }
6272370b 96 for(Int_t i=0;i<12;i++){
81686db1 97 fZBinLimits[i]=original.fZBinLimits[i];
98 }
d7d7e825 99}
100
101
102AliGammaConversionHistograms & AliGammaConversionHistograms::operator = (const AliGammaConversionHistograms & /*original*/)
103{
104 // assignment operator
105 return *this;
106}
107
108
109AliGammaConversionHistograms::~AliGammaConversionHistograms() {
110 //destructor
111
112
113}
114
115void AliGammaConversionHistograms::AddHistogram(TString histogramName, TString histogramTitle, Int_t nXBins, Double_t firstX,Double_t lastX,TString xAxisTitle, TString yAxisTitle){
116 // see header file for documentation
037dc2db 117 if( fHistogramMap->Contains(histogramName.Data()) == kFALSE ){
118 TH1F *tmp = new TH1F(histogramName, histogramTitle,nXBins,firstX,lastX);
119 tmp->GetXaxis()->SetTitle(xAxisTitle);
120 tmp->GetYaxis()->SetTitle(yAxisTitle);
121 TObjString* tobjstring = new TObjString(histogramName.Data());
122 fHistogramMap->Add((TObject*)tobjstring,(TObject*)tmp);
123 }
124 else{
125 cout << "Warning: Histogram ( "<<histogramName.Data()<<" ) already exists " << endl;
126 }
d7d7e825 127}
128
9c1cb6f7 129void AliGammaConversionHistograms::AddHistogram(TString histogramName, TString histogramTitle, Int_t nXBins, Double_t firstX, Double_t lastX, Int_t nYBins, Double_t firstY, Double_t lastY, TString xAxisTitle, TString yAxisTitle, Int_t logAxis){
d7d7e825 130 // see header file for documentation
037dc2db 131 if( fHistogramMap->Contains(histogramName.Data()) == kFALSE ){
132 TH2F *tmp = new TH2F(histogramName, histogramTitle,nXBins,firstX,lastX,nYBins,firstY,lastY);
133 tmp->GetXaxis()->SetTitle(xAxisTitle);
134 tmp->GetYaxis()->SetTitle(yAxisTitle);
135 TObjString *tobjstring = new TObjString(histogramName.Data());
136 fHistogramMap->Add((TObject*)tobjstring,(TObject*)tmp);
9c1cb6f7 137
138 if(logAxis >= 0){
139 BinLogAxis(histogramName.Data(), logAxis);
140 }
037dc2db 141 }
142 else{
143 cout << "Warning: Histogram ( "<<histogramName.Data()<<" ) already exists " << endl;
144 }
d7d7e825 145}
146
9c1cb6f7 147Bool_t AliGammaConversionHistograms::BinLogAxis(const char* name, Int_t dim){
148
149 //
150 // converts the axis (defined by the dimension) of THx or THnSparse
151 // object to Log scale. Number of bins and bin min and bin max are preserved
152
153
154 TObject *o = fHistogramMap->GetValue(name);
155 TAxis *axis = 0x0;
156 if(o->InheritsFrom("TH1")){
157 axis = (dynamic_cast<TH1F*>(o))->GetXaxis();
158 }
159 if(o->InheritsFrom("TH2")){
160 if(0 == dim){
161 axis = (dynamic_cast<TH2F*>(o))->GetXaxis();
162 }
163 else if(1 == dim){
164 axis = (dynamic_cast<TH2F*>(o))->GetYaxis();
165 }
166 else{
167 // AliError("Only dim = 0 or 1 possible for TH2F");
168 }
169 }
170 // if(o->InheritsFrom("THnSparse")){
171 // axis = (dynamic_cast<THnSparse*>(o))->GetAxis(dim);
172 //}
173
174 if(!axis){
175 //AliError(Form("Axis '%d' could not be identified in the object '%s'\n", dim, name));
176 return kFALSE;
177 }
178
179 Int_t bins = axis->GetNbins();
180
181 Double_t from = axis->GetXmin();
182 if(from <= 0){
183 // AliError(Form(" Log binning not possible for object '%s'because the '%d' axis starts from '%f\n'", name, dim, from));
184 return kFALSE;
185 }
186 Double_t to = axis->GetXmax();
187 Double_t *newBins = new Double_t[bins+1];
188 newBins[0] = from;
189 Double_t factor = TMath::Power(to/from, 1./bins);
190 for(Int_t i=1; i<=bins; ++i){
191 newBins[i] = factor * newBins[i-1];
192 }
193 axis->Set(bins, newBins);
194 delete newBins;
195
196 return kTRUE;
197
198
199}
200
d7d7e825 201void AliGammaConversionHistograms::AddTable(TString tableName,TString tableTitle,Int_t nXBins,const char * axesLabel[]){
4a6157dc 202 //see header file for documentation
d7d7e825 203
037dc2db 204 if( fHistogramMap->Contains(tableName.Data()) == kFALSE ){
205 TH1F *tmp = new TH1F(tableName,tableTitle,nXBins,0,nXBins);
206 for(Int_t xbin=1; xbin<=nXBins; xbin++){
207 tmp->GetXaxis()->SetBinLabel(xbin,axesLabel[xbin-1]);
208 }
209 tmp->SetStats(0);
210
211 TObjString *tobjstring = new TObjString(tableName.Data());
212 fHistogramMap->Add((TObject*)tobjstring,(TObject*)tmp);
213 }
214 else{
215 cout << "Warning: Table ( "<<tableName.Data()<<" ) already exists " << endl;
4a6157dc 216 }
d7d7e825 217}
218
219void AliGammaConversionHistograms::FillTable(TString tableName,Double_t xValue) const {
4a6157dc 220 //see header file for documentation
221 TH1 *tmp = (TH1*)fHistogramMap->GetValue(tableName.Data());
222 if(tmp){
223 tmp->Fill(xValue);
224 }
d7d7e825 225}
226
227void AliGammaConversionHistograms::FillHistogram(TString histogramName, Double_t xValue) const{
228 //see header file for documentation
229 TH1 *tmp = (TH1*)fHistogramMap->GetValue(histogramName.Data());
230 if(tmp){
231 tmp->Fill(xValue);
232 }
233}
234
235void AliGammaConversionHistograms::FillHistogram(TString histogramName, Double_t xValue, Double_t yValue) const{
236 //see header file for documentation
237 TH1 *tmp = (TH1*)fHistogramMap->GetValue(histogramName.Data());
238 if(tmp){
239 tmp->Fill(xValue, yValue);
240 }
241}
242
243void AliGammaConversionHistograms::GetOutputContainer(TList *fOutputContainer){
244 //checking if the container is alrerady created
245
246 if(fOutputContainer == NULL){
247 cout<<"WARNING: GetOutputContainer: output container object is NULL"<<endl;
248 return;
249 }
250
251 if(fHistogramMap != NULL){
252 TIter iter(fHistogramMap);
253 TObjString *histogramName;
254 while ((histogramName = (TObjString*) iter.Next())) {
255 TString histogramString = histogramName->GetString();
256 if(histogramString.Contains("Mapping")){// means it should be put in the mapping folder
257 if(fMappingContainer == NULL){
258 fMappingContainer = new TList();
b58d3c74 259 fMappingContainer->SetOwner(kTRUE);
d7d7e825 260 fMappingContainer->SetName("Mapping histograms");
261 }
262 if(fMappingContainer != NULL){
263 fMappingContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
264 }
265 }
266 else if(histogramString.Contains("Background")){// means it should be put in the background folder
267 if(fBackgroundContainer == NULL){
268 fBackgroundContainer = new TList();
b58d3c74 269 fBackgroundContainer->SetOwner(kTRUE);
d7d7e825 270 fBackgroundContainer->SetName("Background histograms");
271 }
272 if(fBackgroundContainer != NULL){
273 fBackgroundContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
274 }
275 }
276 else if(histogramString.Contains("Debug")){// means it should be put in the debug folder
277 if(fDebugContainer == NULL){
278 fDebugContainer = new TList();
b58d3c74 279 fDebugContainer->SetOwner(kTRUE);
d7d7e825 280 fDebugContainer->SetName("Debug histograms");
281 }
282 if(fDebugContainer != NULL){
283 fDebugContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
284 }
285 }
286 else if(histogramString.Contains("Resolution")){// means it should be put in the resolution folder
287 if(fResolutionContainer == NULL){
288 fResolutionContainer = new TList();
b58d3c74 289 fResolutionContainer->SetOwner(kTRUE);
d7d7e825 290 fResolutionContainer->SetName("Resolution histograms");
291 }
292 if(fResolutionContainer != NULL){
293 fResolutionContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
294 }
295 }
296 else if(histogramString.Contains("TrueConv")){// means it should be put in the true conv folder
297 if(fMatchContainer == NULL){
298 fMatchContainer = new TList();
b58d3c74 299 fMatchContainer->SetOwner(kTRUE);
d7d7e825 300 fMatchContainer->SetName("True conversion histograms");
301 }
302 if(fMatchContainer != NULL){
303 fMatchContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
304 }
305 }
306 else if(histogramString.Contains("ESD")){// means it should be put in the ESD folder
307 if(fESDContainer == NULL){
308 fESDContainer = new TList();
b58d3c74 309 fESDContainer->SetOwner(kTRUE);
d7d7e825 310 fESDContainer->SetName("ESD histograms");
311 }
312 if(fESDContainer != NULL){
313 fESDContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
314 }
315 }
316 else if(histogramString.Contains("MC")){// means it should be put in the MC folder
317 if(fMCContainer == NULL){
318 fMCContainer = new TList();
b58d3c74 319 fMCContainer->SetOwner(kTRUE);
d7d7e825 320 fMCContainer->SetName("MC histograms");
321 }
322 if(fMCContainer != NULL){
323 fMCContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
324 }
325 }
326 else if(histogramString.Contains("Table")){// means it should be put in the Table Folder
327 if(fTableContainer == NULL){
328 fTableContainer = new TList();
b58d3c74 329 fTableContainer->SetOwner(kTRUE);
d7d7e825 330 fTableContainer->SetName("Tables");
331 }
332 if(fTableContainer != NULL){
333 fTableContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
334 }
335 }
336 else{
337 if(fOtherContainer == NULL){
338 fOtherContainer = new TList();
b58d3c74 339 fOtherContainer->SetOwner(kTRUE);
d7d7e825 340 fOtherContainer->SetName("Other histograms");
341 }
342 if(fOtherContainer != NULL){
343 fOtherContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
344 }
345 }
346 histogramName = NULL;
347 } // end while
348 if(fMappingContainer != NULL){
349 fOutputContainer->Add(fMappingContainer);
350 }
351 if(fBackgroundContainer != NULL){
352 fOutputContainer->Add(fBackgroundContainer);
353 }
354 if(fDebugContainer != NULL){
355 fOutputContainer->Add(fDebugContainer);
356 }
357 if(fResolutionContainer != NULL){
358 fOutputContainer->Add(fResolutionContainer);
359 }
360 if(fMatchContainer != NULL){
361 fOutputContainer->Add(fMatchContainer);
362 }
363 if(fESDContainer != NULL){
364 fOutputContainer->Add(fESDContainer);
365 }
366 if(fMCContainer != NULL){
367 fOutputContainer->Add(fMCContainer);
368 }
369 if(fTableContainer != NULL){
370 fOutputContainer->Add(fTableContainer);
371 }
372 if(fOtherContainer != NULL){
a68437fb 373 fOutputContainer->Add(fOtherContainer);
d7d7e825 374 }
375 }
376}
377
378Int_t AliGammaConversionHistograms::GetRBin(Double_t radius) const{
379 // see header file for documentation
380 Int_t iResult=0;
9640a3d1 381// if(fDeltaR>0){
382// iResult = (Int_t)((radius - fMinRadius)/fDeltaR);
383// }
384 for(Int_t i=0;i<fNRIndex;i++){
385 // cout<<"Test-limits::"<< fRBinLimits[i]<<endl;
386 if( radius>=fRBinLimits[i] && radius<fRBinLimits[i+1] ){
387 iResult=i;
388 }
d7d7e825 389 }
390 return iResult;
391}
392
9640a3d1 393Int_t AliGammaConversionHistograms::GetZBin(Double_t zPos) const{
394 // see header file for documentation
395 Int_t iResult=0;
396
397 for(Int_t i=0;i<fNZIndex;i++){
398 // cout<<"Test-limits::"<< fZBinLimits[i]<<endl;
6272370b 399 if( zPos>=fZBinLimits[i] && zPos<fZBinLimits[i+1] ){
9640a3d1 400 iResult=i;
401 }
402 }
403 return iResult;
404}
405
406
407
d7d7e825 408Int_t AliGammaConversionHistograms::GetPhiBin(Double_t phi) const{
409 // see header file for documentation
410 Int_t iResult=0;
411 if(fDeltaPhi>0){
412 if(phi>TMath::Pi()){
413 phi-=2*TMath::Pi();
414 }
415 iResult = (Int_t)((phi - fMinPhi)/fDeltaPhi);
416 }
417 return iResult;
418}
419
420
421
422void AliGammaConversionHistograms::InitializeMappingValues(Int_t nPhiIndex, Int_t nRIndex, Int_t nBinsR, Double_t minRadius, Double_t maxRadius,Int_t nBinsPhi, Double_t minPhi, Double_t maxPhi){
423 // Initializing the valuse for the mapping
424
425 fNPhiIndex = nPhiIndex;
48682642 426 if(nRIndex<=14){
427 fNRIndex = nRIndex;
428 }else{
429 fNRIndex=14;
430 }
431
6272370b 432 fNZIndex = 13;
9640a3d1 433
81686db1 434 // fRBinLimits= new Double_t[8]; Kenneth: moved from pointer to fixed array
ebcfaa7e 435 /*
9640a3d1 436 fRBinLimits[0]=0.;
ebcfaa7e 437 fRBinLimits[1]=13.; //changed from 12 to 13: A. Marin 01.03.10
438 fRBinLimits[2]=21.; //changed from 22 to 21: A. Marin 01.03.10
9640a3d1 439 fRBinLimits[3]=35.;
440 fRBinLimits[4]=55.;
441 fRBinLimits[5]=72.;
442 fRBinLimits[6]=90.;
443 fRBinLimits[7]=500.;
ebcfaa7e 444 */
445
446 fRBinLimits[0]=0.;
6272370b 447 fRBinLimits[1]=3.5;
448 fRBinLimits[2]=5.75;
449 fRBinLimits[3]=9.5;
450 fRBinLimits[4]=13.;
451 fRBinLimits[5]=21.;
452 fRBinLimits[6]=27.5;
453 fRBinLimits[7]=35.;
454 fRBinLimits[8]=42.;
455 fRBinLimits[9]=55.;
456 fRBinLimits[10]=72.;
9c1cb6f7 457 fRBinLimits[11]=79.5; // change from 81.5 to 79.5 to have CE in 1 r bin 81.05
6272370b 458 fRBinLimits[12]=90.;
459 fRBinLimits[13]=500.;
ebcfaa7e 460
461
9640a3d1 462
81686db1 463 // fZBinLimits= new Double_t[7]; Kenneth: moved from pointer to fixed array
6272370b 464 fZBinLimits[0]=-500.;
465 fZBinLimits[1]=-200.;
466 fZBinLimits[2]=-100.;
467 fZBinLimits[3]=-50.;
468 fZBinLimits[4]=-30.;
469 fZBinLimits[5]=-15.;
470 fZBinLimits[6]= 0.;
471 fZBinLimits[7]= 15.;
472 fZBinLimits[8]= 30.;
473 fZBinLimits[9]= 50.;
474 fZBinLimits[10]=100.;
475 fZBinLimits[11]=200.;
476 fZBinLimits[12]=500.;
9640a3d1 477
478
d7d7e825 479 fMinRadius = minRadius;
480 fMaxRadius = maxRadius;
481 if(nBinsR>0 && nRIndex!=0){
482 fDeltaR = (fMaxRadius - fMinRadius)/nRIndex;
483 }
484 fMinPhi = minPhi;
485 fMaxPhi = maxPhi;
486 if(nBinsPhi>0 && nPhiIndex!=0){
487 fDeltaPhi = (fMaxPhi-fMinPhi)/nPhiIndex;
488 }
489}
490
491
492//mapping
493void AliGammaConversionHistograms::AddMappingHistograms(Int_t nPhiIndex, Int_t nRIndex,Int_t nXBins, Double_t firstX, Double_t lastX, Int_t nYBins, Double_t firstY, Double_t lastY, TString xAxisTitle, TString yAxisTitle){
494 // see header file for documentation
ebcfaa7e 495
496 Double_t tmptogetridofwarning = firstX + lastX + nYBins + firstY + lastY;
497 if(tmptogetridofwarning < 0){
498 cout<<"Less than zero"<<endl;
499 }
d7d7e825 500
9640a3d1 501 for(Int_t phi =0; phi<fNPhiIndex;phi++){
d7d7e825 502
503 for(Int_t r =0; r<fNRIndex;r++){
504
505 // setting axis to "" changes below
e158cbc3 506 xAxisTitle="z [cm]";
507 yAxisTitle="#eta";
508
d7d7e825 509 //Creating the axis titles
e158cbc3 510 //if(xAxisTitle.Length() == 0){
511 //xAxisTitle.Form("Phi %02d",phi);
512 // }
d7d7e825 513
e158cbc3 514 //if(yAxisTitle.Length() == 0){
515 //yAxisTitle.Form("R %02d",phi);
516 // }
d7d7e825 517
518 //MC
519 TString nameMC="";
e158cbc3 520 nameMC.Form("MC_Conversion_Mapping_Phi%02d_R%02d",phi,r);
d7d7e825 521 TString titleMC="";
522 titleMC.Form("Electron-Positron MC Mapping-Phi%02d-R%02d",phi,r);
523
ebcfaa7e 524 //AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 525
526 //ESD
527 TString nameESD="";
e158cbc3 528 nameESD.Form("ESD_Conversion_Mapping_Phi%02d_R%02d",phi,r);
d7d7e825 529 TString titleESD="";
530 titleESD.Form("Electron-Positron ESD Mapping-Phi%02d-R%02d",phi,r);
531
ebcfaa7e 532 //AddHistogram(nameESD, titleESD, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 533 }
534 }
535
536
537 for(Int_t phi =0; phi<=nPhiIndex;phi++){
538
539 // setting axis to "" changes below
e158cbc3 540 xAxisTitle="z [cm]";
541 yAxisTitle="#eta";
542 //Creating the axis titles
543 //if(xAxisTitle.Length() == 0){
544 // xAxisTitle.Form("Phi %02d",phi);
545 //}
546 //if(yAxisTitle.Length() == 0){
547 // yAxisTitle = "Counts";
548 //}
d7d7e825 549
550 //MC
551 TString nameMC="";
e158cbc3 552 nameMC.Form("MC_Conversion_Mapping_Phi%02d",phi);
d7d7e825 553 TString titleMC="";
554 titleMC.Form("Electron-Positron MC Mapping-Phi%02d",phi);
555
ebcfaa7e 556 //AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 557
558 //MC
559 TString nameESD="";
e158cbc3 560 nameESD.Form("ESD_Conversion_Mapping_Phi%02d",phi);
d7d7e825 561 TString titleESD="";
562 titleESD.Form("Electron-Positron ESD Mapping-Phi%02d",phi);
563
ebcfaa7e 564 // AddHistogram(nameESD, titleESD, nXBins, firstX, lastX,nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 565 }
566
567
9640a3d1 568 for(Int_t r =0; r<nRIndex;r++){
d7d7e825 569
570 // setting axis to "" changes below
e158cbc3 571 xAxisTitle="#phi";
ebcfaa7e 572 yAxisTitle="counts";
d7d7e825 573 //Creating the axis titles
e158cbc3 574 //if(xAxisTitle.Length() == 0){
575 // xAxisTitle.Form("R %02d",r);
576 //}
577 //if(yAxisTitle.Length() == 0){
578 // yAxisTitle = "Counts";
579 //}
d7d7e825 580
581 //MC
582 TString nameMC="";
e158cbc3 583 nameMC.Form("MC_Conversion_Mapping_R%02d",r);
d7d7e825 584 TString titleMC="";
585 titleMC.Form("Electron-Positron MC Mapping-R%02d",r);
586
ebcfaa7e 587 // AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 588
589 //ESD
590 TString nameESD="";
e158cbc3 591 nameESD.Form("ESD_Conversion_Mapping_R%02d",r);
d7d7e825 592 TString titleESD="";
593 titleESD.Form("Electron-Positron ESD Mapping-R%02d",r);
594
ebcfaa7e 595 //AddHistogram(nameESD, titleESD, nXBins, firstX, lastX,nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 596
597 //Mapping Phi in R
598 TString nameMCPhiInR="";
e158cbc3 599 nameMCPhiInR.Form("MC_Conversion_Mapping_Phi_in_R_%02d",r);
d7d7e825 600 TString titleMCPhiInR="";
601 titleMCPhiInR.Form("MC Mapping of Phi in R%02d",r);
9640a3d1 602 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
603 AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
d7d7e825 604
9640a3d1 605
606 //Mapping Z in R
607 TString nameMCZInR="";
608 nameMCZInR.Form("MC_Conversion_Mapping_Z_in_R_%02d",r);
609 TString titleMCZInR="";
610 titleMCZInR.Form("MC Mapping of Z in R%02d",r);
611 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
612 AddHistogram(nameMCZInR, titleMCZInR, nXBins, -300, 300, xAxisTitle, yAxisTitle);
613
614
615 //Mapping Phi in R Middle Pt
616 TString nameMCMidPtPhiInR="";
617 nameMCMidPtPhiInR.Form("MC_Conversion_Mapping_MidPt_Phi_in_R_%02d",r);
618 TString titleMCMidPtPhiInR="";
619 titleMCMidPtPhiInR.Form("MC Mapping Middle Pt of Phi in R%02d",r);
620 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
621 AddHistogram(nameMCMidPtPhiInR, titleMCMidPtPhiInR, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
622
623
624 //Mapping Z in R Middle Pt
625 TString nameMCMidPtZInR="";
626 nameMCMidPtZInR.Form("MC_Conversion_Mapping_MidPt_Z_in_R_%02d",r);
627 TString titleMCMidPtZInR="";
628 titleMCMidPtZInR.Form("MC Mapping Middle Pt of Z in R%02d",r);
629 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
630 AddHistogram(nameMCMidPtZInR, titleMCMidPtZInR, nXBins, -300, 300, xAxisTitle, yAxisTitle);
631
632
633
634
d7d7e825 635 //Mapping Phi in R
636 TString nameESDPhiInR="";
e158cbc3 637 nameESDPhiInR.Form("ESD_Conversion_Mapping_Phi_in_R_%02d",r);
d7d7e825 638 TString titleESDPhiInR="";
639 titleESDPhiInR.Form("ESD Mapping of Phi in R%02d",r);
9640a3d1 640 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
641 AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
642
643 //Mapping Z in R
644 TString nameESDZInR="";
645 nameESDZInR.Form("ESD_Conversion_Mapping_Z_in_R_%02d",r);
646 TString titleESDZInR="";
647 titleESDZInR.Form("ESD Mapping of Z in R%02d",r);
648 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
649 AddHistogram(nameESDZInR, titleESDZInR, nXBins, -300, 300, xAxisTitle, yAxisTitle);
650
651 //Mapping Phi in R Middle Pt
652 TString nameESDMidPtPhiInR="";
653 nameESDMidPtPhiInR.Form("ESD_Conversion_Mapping_MidPt_Phi_in_R_%02d",r);
654 TString titleESDMidPtPhiInR="";
655 titleESDMidPtPhiInR.Form("ESD Mapping Middle Pt of Phi in R%02d",r);
656 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
657 AddHistogram(nameESDMidPtPhiInR, titleESDMidPtPhiInR, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
658
659 //Mapping Z in R Middle Pt
660 TString nameESDMidPtZInR="";
661 nameESDMidPtZInR.Form("ESD_Conversion_Mapping_MidPt_Z_in_R_%02d",r);
662 TString titleESDMidPtZInR="";
663 titleESDMidPtZInR.Form("ESD Mapping Middle Pt of Z in R%02d",r);
664 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
665 AddHistogram(nameESDMidPtZInR, titleESDMidPtZInR, nXBins, -300, 300, xAxisTitle, yAxisTitle);
666
667
668
669 }
670
671
672
673 for(Int_t z =0; z<fNZIndex;z++){
674 //Mapping Phi in Z
675 TString nameMCPhiInZ="";
676 nameMCPhiInZ.Form("MC_Conversion_Mapping_Phi_in_Z_%02d",z);
677 TString titleMCPhiInZ="";
678 titleMCPhiInZ.Form("MC Mapping of Phi in Z%02d",z);
679 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
680 AddHistogram(nameMCPhiInZ, titleMCPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
9c1cb6f7 681
682 //Mapping Phi in Z for FMD
683 TString nameMCFMDPhiInZ="";
684 nameMCFMDPhiInZ.Form("MC_Conversion_Mapping_FMD_Phi_in_Z_%02d",z);
685 TString titleMCFMDPhiInZ="";
686 titleMCFMDPhiInZ.Form("MC Mapping FMD of Phi in Z%02d",z);
687 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
688 AddHistogram(nameMCFMDPhiInZ, titleMCFMDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
9640a3d1 689
690
691 //Mapping R in Z
692 TString nameMCRInZ="";
693 nameMCRInZ.Form("MC_Conversion_Mapping_R_in_Z_%02d",z);
694 TString titleMCRInZ="";
695 titleMCRInZ.Form("MC Mapping of R in Z%02d",z);
696 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
697 AddHistogram(nameMCRInZ, titleMCRInZ, nXBins, fMinRadius, fMaxRadius, xAxisTitle, yAxisTitle);
698
699 //Mapping Phi in Z Middle Pt
700 TString nameMCMidPtPhiInZ="";
701 nameMCMidPtPhiInZ.Form("MC_Conversion_Mapping_MidPt_Phi_in_Z_%02d",z);
702 TString titleMCMidPtPhiInZ="";
703 titleMCMidPtPhiInZ.Form("MC Mapping Middle Pt of Phi in Z%02d",z);
704 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
705 AddHistogram(nameMCMidPtPhiInZ, titleMCMidPtPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
706
9c1cb6f7 707 //Mapping Phi in Z Middle Pt for FMD
708 TString nameMCMidPtFMDPhiInZ="";
709 nameMCMidPtFMDPhiInZ.Form("MC_Conversion_Mapping_MidPt_FMD_Phi_in_Z_%02d",z);
710 TString titleMCMidPtFMDPhiInZ="";
711 titleMCMidPtFMDPhiInZ.Form("MC Mapping Middle Pt of Phi in Z%02d",z);
712 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
713 AddHistogram(nameMCMidPtFMDPhiInZ, titleMCMidPtFMDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
714
715
9640a3d1 716
717 //Mapping R in Z Middle Pt
718 TString nameMCMidPtRInZ="";
719 nameMCMidPtRInZ.Form("MC_Conversion_Mapping_MidPt_R_in_Z_%02d",z);
720 TString titleMCMidPtRInZ="";
721 titleMCMidPtRInZ.Form("MC Mapping Middle Pt of R in Z%02d",z);
722 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
723 AddHistogram(nameMCMidPtRInZ, titleMCMidPtRInZ, nXBins, fMinRadius, fMaxRadius, xAxisTitle, yAxisTitle);
724
725
726
727
728 //Mapping Phi in Z
729 TString nameESDPhiInZ="";
730 nameESDPhiInZ.Form("ESD_Conversion_Mapping_Phi_in_Z_%02d",z);
731 TString titleESDPhiInZ="";
9c1cb6f7 732 titleESDPhiInZ.Form("ESD Mapping of Phi in Z%02d",z);
9640a3d1 733 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
734 AddHistogram(nameESDPhiInZ, titleESDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
735
9c1cb6f7 736
737 //Mapping Phi in Z for FMD
738 TString nameESDFMDPhiInZ="";
739 nameESDFMDPhiInZ.Form("ESD_Conversion_Mapping_FMD_Phi_in_Z_%02d",z);
740 TString titleESDFMDPhiInZ="";
741 titleESDFMDPhiInZ.Form("ESD Mapping FMD of Phi in Z%02d",z);
742 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
743 AddHistogram(nameESDFMDPhiInZ, titleESDFMDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
744
745
9640a3d1 746 //Mapping R in Z
747 TString nameESDRInZ="";
748 nameESDRInZ.Form("ESD_Conversion_Mapping_R_in_Z_%02d",z);
749 TString titleESDRInZ="";
750 titleESDRInZ.Form("ESD Mapping of R in Z%02d",z);
751 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
752 AddHistogram(nameESDRInZ, titleESDRInZ, nXBins, fMinRadius, fMaxRadius, xAxisTitle, yAxisTitle);
753
754
755 //Mapping Phi in Z Middle Pt
756 TString nameESDMidPtPhiInZ="";
757 nameESDMidPtPhiInZ.Form("ESD_Conversion_Mapping_MidPt_Phi_in_Z_%02d",z);
758 TString titleESDMidPtPhiInZ="";
759 titleESDMidPtPhiInZ.Form("ESD Mapping Middle Ptof Phi in R%02d",z);
760 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
761 AddHistogram(nameESDMidPtPhiInZ, titleESDMidPtPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
762
9c1cb6f7 763 //Mapping Phi in Z Middle Pt for FMD
764 TString nameESDMidPtFMDPhiInZ="";
765 nameESDMidPtFMDPhiInZ.Form("ESD_Conversion_Mapping_MidPt_FMD_Phi_in_Z_%02d",z);
766 TString titleESDMidPtFMDPhiInZ="";
767 titleESDMidPtFMDPhiInZ.Form("ESD Mapping Middle Pt FMD of Phi in Z%02d",z);
768 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
769 AddHistogram(nameESDMidPtFMDPhiInZ, titleESDMidPtFMDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
770
771
9640a3d1 772 //Mapping R in Z Middle Pt
773 TString nameESDMidPtRInZ="";
774 nameESDMidPtRInZ.Form("ESD_Conversion_Mapping_MidPt_R_in_Z_%02d",z);
775 TString titleESDMidPtRInZ="";
776 titleESDMidPtRInZ.Form("ESD Mapping Middle Pt of R in Z%02d",z);
777 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
778 AddHistogram(nameESDMidPtRInZ, titleESDMidPtRInZ, nXBins, fMinRadius, fMaxRadius, xAxisTitle, yAxisTitle);
779
780
781
d7d7e825 782 }
9640a3d1 783
784
785
d7d7e825 786}