]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/GammaConv/AliGammaConversionHistograms.cxx
add calibration histograms for vzero centroids
[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);
70ef88b5 194 delete [] newBins;
9c1cb6f7 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}
7f3c7cc6 218void AliGammaConversionHistograms::AddTable(TString tableName,TString tableTitle,Int_t nXBins,const char * axesXLabel[],Int_t nYBins,const char * axesYLabel[]){
219 //see header file for documentation
d7d7e825 220
7f3c7cc6 221 if( fHistogramMap->Contains(tableName.Data()) == kFALSE ){
222 TH2F *tmp = new TH2F(tableName,tableTitle,nXBins,0,nXBins,nYBins,0,nYBins);
223 for(Int_t xbin=1; xbin<=nXBins; xbin++){
224 tmp->GetXaxis()->SetBinLabel(xbin,axesXLabel[xbin-1]);
225 }
226 for(Int_t ybin=1; ybin<=nYBins; ybin++){
227 tmp->GetYaxis()->SetBinLabel(ybin,axesYLabel[ybin-1]);
228 }
229 tmp->SetStats(0);
230
231 TObjString *tobjstring = new TObjString(tableName.Data());
232 fHistogramMap->Add((TObject*)tobjstring,(TObject*)tmp);
233 }
234 else{
235 cout << "Warning: Table ( "<<tableName.Data()<<" ) already exists " << endl;
236 }
237}
d7d7e825 238void AliGammaConversionHistograms::FillTable(TString tableName,Double_t xValue) const {
4a6157dc 239 //see header file for documentation
240 TH1 *tmp = (TH1*)fHistogramMap->GetValue(tableName.Data());
241 if(tmp){
242 tmp->Fill(xValue);
243 }
d7d7e825 244}
7f3c7cc6 245void AliGammaConversionHistograms::FillTable(TString tableName,Double_t xValue,Double_t yValue) const {
246 //see header file for documentation
247 TH2 *tmp = (TH2*)fHistogramMap->GetValue(tableName.Data());
248 if(tmp){
249 tmp->Fill(xValue,yValue);
250 }
251}
d7d7e825 252void AliGammaConversionHistograms::FillHistogram(TString histogramName, Double_t xValue) const{
253 //see header file for documentation
254 TH1 *tmp = (TH1*)fHistogramMap->GetValue(histogramName.Data());
255 if(tmp){
256 tmp->Fill(xValue);
257 }
258}
259
260void AliGammaConversionHistograms::FillHistogram(TString histogramName, Double_t xValue, Double_t yValue) const{
261 //see header file for documentation
262 TH1 *tmp = (TH1*)fHistogramMap->GetValue(histogramName.Data());
263 if(tmp){
264 tmp->Fill(xValue, yValue);
265 }
266}
267
7f3c7cc6 268
269TObject* AliGammaConversionHistograms::GetValue(const TString& name)
270{
271 //Get pointer to histogram with name
272 return fHistogramMap->GetValue(name.Data());
273}
274
d7d7e825 275void AliGammaConversionHistograms::GetOutputContainer(TList *fOutputContainer){
276 //checking if the container is alrerady created
277
278 if(fOutputContainer == NULL){
279 cout<<"WARNING: GetOutputContainer: output container object is NULL"<<endl;
280 return;
281 }
282
283 if(fHistogramMap != NULL){
284 TIter iter(fHistogramMap);
285 TObjString *histogramName;
286 while ((histogramName = (TObjString*) iter.Next())) {
287 TString histogramString = histogramName->GetString();
288 if(histogramString.Contains("Mapping")){// means it should be put in the mapping folder
289 if(fMappingContainer == NULL){
290 fMappingContainer = new TList();
b58d3c74 291 fMappingContainer->SetOwner(kTRUE);
d7d7e825 292 fMappingContainer->SetName("Mapping histograms");
293 }
239a56d1 294 fMappingContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 295 }
296 else if(histogramString.Contains("Background")){// means it should be put in the background folder
297 if(fBackgroundContainer == NULL){
298 fBackgroundContainer = new TList();
b58d3c74 299 fBackgroundContainer->SetOwner(kTRUE);
d7d7e825 300 fBackgroundContainer->SetName("Background histograms");
301 }
239a56d1 302 fBackgroundContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 303 }
304 else if(histogramString.Contains("Debug")){// means it should be put in the debug folder
305 if(fDebugContainer == NULL){
306 fDebugContainer = new TList();
b58d3c74 307 fDebugContainer->SetOwner(kTRUE);
d7d7e825 308 fDebugContainer->SetName("Debug histograms");
309 }
239a56d1 310 fDebugContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 311 }
312 else if(histogramString.Contains("Resolution")){// means it should be put in the resolution folder
313 if(fResolutionContainer == NULL){
314 fResolutionContainer = new TList();
b58d3c74 315 fResolutionContainer->SetOwner(kTRUE);
d7d7e825 316 fResolutionContainer->SetName("Resolution histograms");
317 }
239a56d1 318 fResolutionContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 319 }
320 else if(histogramString.Contains("TrueConv")){// means it should be put in the true conv folder
321 if(fMatchContainer == NULL){
322 fMatchContainer = new TList();
b58d3c74 323 fMatchContainer->SetOwner(kTRUE);
d7d7e825 324 fMatchContainer->SetName("True conversion histograms");
325 }
239a56d1 326 fMatchContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 327 }
328 else if(histogramString.Contains("ESD")){// means it should be put in the ESD folder
329 if(fESDContainer == NULL){
330 fESDContainer = new TList();
b58d3c74 331 fESDContainer->SetOwner(kTRUE);
d7d7e825 332 fESDContainer->SetName("ESD histograms");
333 }
239a56d1 334 fESDContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 335 }
336 else if(histogramString.Contains("MC")){// means it should be put in the MC folder
337 if(fMCContainer == NULL){
338 fMCContainer = new TList();
b58d3c74 339 fMCContainer->SetOwner(kTRUE);
d7d7e825 340 fMCContainer->SetName("MC histograms");
341 }
239a56d1 342 fMCContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 343 }
344 else if(histogramString.Contains("Table")){// means it should be put in the Table Folder
345 if(fTableContainer == NULL){
346 fTableContainer = new TList();
b58d3c74 347 fTableContainer->SetOwner(kTRUE);
d7d7e825 348 fTableContainer->SetName("Tables");
349 }
239a56d1 350 fTableContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 351 }
352 else{
353 if(fOtherContainer == NULL){
354 fOtherContainer = new TList();
b58d3c74 355 fOtherContainer->SetOwner(kTRUE);
d7d7e825 356 fOtherContainer->SetName("Other histograms");
357 }
239a56d1 358 fOtherContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));
d7d7e825 359 }
360 histogramName = NULL;
361 } // end while
239a56d1 362
d7d7e825 363 if(fMappingContainer != NULL){
364 fOutputContainer->Add(fMappingContainer);
365 }
366 if(fBackgroundContainer != NULL){
367 fOutputContainer->Add(fBackgroundContainer);
368 }
369 if(fDebugContainer != NULL){
370 fOutputContainer->Add(fDebugContainer);
371 }
372 if(fResolutionContainer != NULL){
373 fOutputContainer->Add(fResolutionContainer);
374 }
375 if(fMatchContainer != NULL){
376 fOutputContainer->Add(fMatchContainer);
377 }
378 if(fESDContainer != NULL){
379 fOutputContainer->Add(fESDContainer);
380 }
381 if(fMCContainer != NULL){
382 fOutputContainer->Add(fMCContainer);
383 }
384 if(fTableContainer != NULL){
385 fOutputContainer->Add(fTableContainer);
386 }
387 if(fOtherContainer != NULL){
a68437fb 388 fOutputContainer->Add(fOtherContainer);
d7d7e825 389 }
390 }
391}
392
393Int_t AliGammaConversionHistograms::GetRBin(Double_t radius) const{
394 // see header file for documentation
395 Int_t iResult=0;
9640a3d1 396// if(fDeltaR>0){
397// iResult = (Int_t)((radius - fMinRadius)/fDeltaR);
398// }
399 for(Int_t i=0;i<fNRIndex;i++){
400 // cout<<"Test-limits::"<< fRBinLimits[i]<<endl;
401 if( radius>=fRBinLimits[i] && radius<fRBinLimits[i+1] ){
402 iResult=i;
403 }
d7d7e825 404 }
405 return iResult;
406}
407
9640a3d1 408Int_t AliGammaConversionHistograms::GetZBin(Double_t zPos) const{
409 // see header file for documentation
410 Int_t iResult=0;
411
412 for(Int_t i=0;i<fNZIndex;i++){
413 // cout<<"Test-limits::"<< fZBinLimits[i]<<endl;
6272370b 414 if( zPos>=fZBinLimits[i] && zPos<fZBinLimits[i+1] ){
9640a3d1 415 iResult=i;
416 }
417 }
418 return iResult;
419}
420
421
422
d7d7e825 423Int_t AliGammaConversionHistograms::GetPhiBin(Double_t phi) const{
424 // see header file for documentation
425 Int_t iResult=0;
426 if(fDeltaPhi>0){
427 if(phi>TMath::Pi()){
428 phi-=2*TMath::Pi();
429 }
430 iResult = (Int_t)((phi - fMinPhi)/fDeltaPhi);
431 }
432 return iResult;
433}
434
435
436
437void 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){
438 // Initializing the valuse for the mapping
439
440 fNPhiIndex = nPhiIndex;
48682642 441 if(nRIndex<=14){
442 fNRIndex = nRIndex;
443 }else{
444 fNRIndex=14;
445 }
446
6272370b 447 fNZIndex = 13;
9640a3d1 448
81686db1 449 // fRBinLimits= new Double_t[8]; Kenneth: moved from pointer to fixed array
ebcfaa7e 450 /*
9640a3d1 451 fRBinLimits[0]=0.;
ebcfaa7e 452 fRBinLimits[1]=13.; //changed from 12 to 13: A. Marin 01.03.10
453 fRBinLimits[2]=21.; //changed from 22 to 21: A. Marin 01.03.10
9640a3d1 454 fRBinLimits[3]=35.;
455 fRBinLimits[4]=55.;
456 fRBinLimits[5]=72.;
457 fRBinLimits[6]=90.;
458 fRBinLimits[7]=500.;
ebcfaa7e 459 */
460
461 fRBinLimits[0]=0.;
6272370b 462 fRBinLimits[1]=3.5;
463 fRBinLimits[2]=5.75;
464 fRBinLimits[3]=9.5;
465 fRBinLimits[4]=13.;
466 fRBinLimits[5]=21.;
467 fRBinLimits[6]=27.5;
468 fRBinLimits[7]=35.;
469 fRBinLimits[8]=42.;
470 fRBinLimits[9]=55.;
471 fRBinLimits[10]=72.;
9c1cb6f7 472 fRBinLimits[11]=79.5; // change from 81.5 to 79.5 to have CE in 1 r bin 81.05
6272370b 473 fRBinLimits[12]=90.;
474 fRBinLimits[13]=500.;
ebcfaa7e 475
476
9640a3d1 477
81686db1 478 // fZBinLimits= new Double_t[7]; Kenneth: moved from pointer to fixed array
6272370b 479 fZBinLimits[0]=-500.;
480 fZBinLimits[1]=-200.;
481 fZBinLimits[2]=-100.;
482 fZBinLimits[3]=-50.;
483 fZBinLimits[4]=-30.;
484 fZBinLimits[5]=-15.;
485 fZBinLimits[6]= 0.;
486 fZBinLimits[7]= 15.;
487 fZBinLimits[8]= 30.;
488 fZBinLimits[9]= 50.;
489 fZBinLimits[10]=100.;
490 fZBinLimits[11]=200.;
491 fZBinLimits[12]=500.;
9640a3d1 492
493
d7d7e825 494 fMinRadius = minRadius;
495 fMaxRadius = maxRadius;
496 if(nBinsR>0 && nRIndex!=0){
497 fDeltaR = (fMaxRadius - fMinRadius)/nRIndex;
498 }
499 fMinPhi = minPhi;
500 fMaxPhi = maxPhi;
501 if(nBinsPhi>0 && nPhiIndex!=0){
502 fDeltaPhi = (fMaxPhi-fMinPhi)/nPhiIndex;
503 }
504}
505
506
507//mapping
508void 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){
509 // see header file for documentation
ebcfaa7e 510
511 Double_t tmptogetridofwarning = firstX + lastX + nYBins + firstY + lastY;
512 if(tmptogetridofwarning < 0){
513 cout<<"Less than zero"<<endl;
514 }
d7d7e825 515
9640a3d1 516 for(Int_t phi =0; phi<fNPhiIndex;phi++){
d7d7e825 517
518 for(Int_t r =0; r<fNRIndex;r++){
519
520 // setting axis to "" changes below
e158cbc3 521 xAxisTitle="z [cm]";
522 yAxisTitle="#eta";
523
d7d7e825 524 //Creating the axis titles
e158cbc3 525 //if(xAxisTitle.Length() == 0){
526 //xAxisTitle.Form("Phi %02d",phi);
527 // }
d7d7e825 528
e158cbc3 529 //if(yAxisTitle.Length() == 0){
530 //yAxisTitle.Form("R %02d",phi);
531 // }
d7d7e825 532
533 //MC
534 TString nameMC="";
e158cbc3 535 nameMC.Form("MC_Conversion_Mapping_Phi%02d_R%02d",phi,r);
d7d7e825 536 TString titleMC="";
537 titleMC.Form("Electron-Positron MC Mapping-Phi%02d-R%02d",phi,r);
538
ebcfaa7e 539 //AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 540
541 //ESD
542 TString nameESD="";
e158cbc3 543 nameESD.Form("ESD_Conversion_Mapping_Phi%02d_R%02d",phi,r);
d7d7e825 544 TString titleESD="";
545 titleESD.Form("Electron-Positron ESD Mapping-Phi%02d-R%02d",phi,r);
546
ebcfaa7e 547 //AddHistogram(nameESD, titleESD, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 548 }
549 }
550
551
552 for(Int_t phi =0; phi<=nPhiIndex;phi++){
553
554 // setting axis to "" changes below
e158cbc3 555 xAxisTitle="z [cm]";
556 yAxisTitle="#eta";
557 //Creating the axis titles
558 //if(xAxisTitle.Length() == 0){
559 // xAxisTitle.Form("Phi %02d",phi);
560 //}
561 //if(yAxisTitle.Length() == 0){
562 // yAxisTitle = "Counts";
563 //}
d7d7e825 564
565 //MC
566 TString nameMC="";
e158cbc3 567 nameMC.Form("MC_Conversion_Mapping_Phi%02d",phi);
d7d7e825 568 TString titleMC="";
569 titleMC.Form("Electron-Positron MC Mapping-Phi%02d",phi);
570
ebcfaa7e 571 //AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 572
573 //MC
574 TString nameESD="";
e158cbc3 575 nameESD.Form("ESD_Conversion_Mapping_Phi%02d",phi);
d7d7e825 576 TString titleESD="";
577 titleESD.Form("Electron-Positron ESD Mapping-Phi%02d",phi);
578
ebcfaa7e 579 // AddHistogram(nameESD, titleESD, nXBins, firstX, lastX,nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 580 }
581
582
9640a3d1 583 for(Int_t r =0; r<nRIndex;r++){
d7d7e825 584
585 // setting axis to "" changes below
e158cbc3 586 xAxisTitle="#phi";
ebcfaa7e 587 yAxisTitle="counts";
d7d7e825 588 //Creating the axis titles
e158cbc3 589 //if(xAxisTitle.Length() == 0){
590 // xAxisTitle.Form("R %02d",r);
591 //}
592 //if(yAxisTitle.Length() == 0){
593 // yAxisTitle = "Counts";
594 //}
d7d7e825 595
596 //MC
597 TString nameMC="";
e158cbc3 598 nameMC.Form("MC_Conversion_Mapping_R%02d",r);
d7d7e825 599 TString titleMC="";
600 titleMC.Form("Electron-Positron MC Mapping-R%02d",r);
601
ebcfaa7e 602 // AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 603
604 //ESD
605 TString nameESD="";
e158cbc3 606 nameESD.Form("ESD_Conversion_Mapping_R%02d",r);
d7d7e825 607 TString titleESD="";
608 titleESD.Form("Electron-Positron ESD Mapping-R%02d",r);
609
ebcfaa7e 610 //AddHistogram(nameESD, titleESD, nXBins, firstX, lastX,nYBins, firstY, lastY, xAxisTitle, yAxisTitle);
d7d7e825 611
612 //Mapping Phi in R
613 TString nameMCPhiInR="";
e158cbc3 614 nameMCPhiInR.Form("MC_Conversion_Mapping_Phi_in_R_%02d",r);
d7d7e825 615 TString titleMCPhiInR="";
616 titleMCPhiInR.Form("MC Mapping of Phi in R%02d",r);
9640a3d1 617 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
618 AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
d7d7e825 619
9640a3d1 620
621 //Mapping Z in R
622 TString nameMCZInR="";
623 nameMCZInR.Form("MC_Conversion_Mapping_Z_in_R_%02d",r);
624 TString titleMCZInR="";
625 titleMCZInR.Form("MC Mapping of Z in R%02d",r);
626 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
627 AddHistogram(nameMCZInR, titleMCZInR, nXBins, -300, 300, xAxisTitle, yAxisTitle);
628
629
630 //Mapping Phi in R Middle Pt
631 TString nameMCMidPtPhiInR="";
632 nameMCMidPtPhiInR.Form("MC_Conversion_Mapping_MidPt_Phi_in_R_%02d",r);
633 TString titleMCMidPtPhiInR="";
634 titleMCMidPtPhiInR.Form("MC Mapping Middle Pt of Phi in R%02d",r);
635 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
636 AddHistogram(nameMCMidPtPhiInR, titleMCMidPtPhiInR, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
637
638
639 //Mapping Z in R Middle Pt
640 TString nameMCMidPtZInR="";
641 nameMCMidPtZInR.Form("MC_Conversion_Mapping_MidPt_Z_in_R_%02d",r);
642 TString titleMCMidPtZInR="";
643 titleMCMidPtZInR.Form("MC Mapping Middle Pt of Z in R%02d",r);
644 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
645 AddHistogram(nameMCMidPtZInR, titleMCMidPtZInR, nXBins, -300, 300, xAxisTitle, yAxisTitle);
646
647
648
649
d7d7e825 650 //Mapping Phi in R
651 TString nameESDPhiInR="";
e158cbc3 652 nameESDPhiInR.Form("ESD_Conversion_Mapping_Phi_in_R_%02d",r);
d7d7e825 653 TString titleESDPhiInR="";
654 titleESDPhiInR.Form("ESD Mapping of Phi in R%02d",r);
9640a3d1 655 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
656 AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
657
658 //Mapping Z in R
659 TString nameESDZInR="";
660 nameESDZInR.Form("ESD_Conversion_Mapping_Z_in_R_%02d",r);
661 TString titleESDZInR="";
662 titleESDZInR.Form("ESD Mapping of Z in R%02d",r);
663 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
664 AddHistogram(nameESDZInR, titleESDZInR, nXBins, -300, 300, xAxisTitle, yAxisTitle);
665
666 //Mapping Phi in R Middle Pt
667 TString nameESDMidPtPhiInR="";
668 nameESDMidPtPhiInR.Form("ESD_Conversion_Mapping_MidPt_Phi_in_R_%02d",r);
669 TString titleESDMidPtPhiInR="";
670 titleESDMidPtPhiInR.Form("ESD Mapping Middle Pt of Phi in R%02d",r);
671 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
672 AddHistogram(nameESDMidPtPhiInR, titleESDMidPtPhiInR, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
673
674 //Mapping Z in R Middle Pt
675 TString nameESDMidPtZInR="";
676 nameESDMidPtZInR.Form("ESD_Conversion_Mapping_MidPt_Z_in_R_%02d",r);
677 TString titleESDMidPtZInR="";
678 titleESDMidPtZInR.Form("ESD Mapping Middle Pt of Z in R%02d",r);
679 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
680 AddHistogram(nameESDMidPtZInR, titleESDMidPtZInR, nXBins, -300, 300, xAxisTitle, yAxisTitle);
681
682
683
684 }
685
686
687
688 for(Int_t z =0; z<fNZIndex;z++){
689 //Mapping Phi in Z
690 TString nameMCPhiInZ="";
691 nameMCPhiInZ.Form("MC_Conversion_Mapping_Phi_in_Z_%02d",z);
692 TString titleMCPhiInZ="";
693 titleMCPhiInZ.Form("MC Mapping of Phi in Z%02d",z);
694 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
695 AddHistogram(nameMCPhiInZ, titleMCPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
9c1cb6f7 696
697 //Mapping Phi in Z for FMD
698 TString nameMCFMDPhiInZ="";
699 nameMCFMDPhiInZ.Form("MC_Conversion_Mapping_FMD_Phi_in_Z_%02d",z);
700 TString titleMCFMDPhiInZ="";
701 titleMCFMDPhiInZ.Form("MC Mapping FMD of Phi in Z%02d",z);
702 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
703 AddHistogram(nameMCFMDPhiInZ, titleMCFMDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
9640a3d1 704
64f4118c 705 //Mapping Phi in Z for ITSTPC
706 TString nameMCITSTPCPhiInZ="";
707 nameMCITSTPCPhiInZ.Form("MC_Conversion_Mapping_ITSTPC_Phi_in_Z_%02d",z);
708 TString titleMCITSTPCPhiInZ="";
709 titleMCITSTPCPhiInZ.Form("MC Mapping ITSTPC of Phi in Z%02d",z);
710 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
711 AddHistogram(nameMCITSTPCPhiInZ, titleMCITSTPCPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
712
9640a3d1 713
714 //Mapping R in Z
715 TString nameMCRInZ="";
716 nameMCRInZ.Form("MC_Conversion_Mapping_R_in_Z_%02d",z);
717 TString titleMCRInZ="";
718 titleMCRInZ.Form("MC Mapping of R in Z%02d",z);
719 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
720 AddHistogram(nameMCRInZ, titleMCRInZ, nXBins, fMinRadius, fMaxRadius, xAxisTitle, yAxisTitle);
721
722 //Mapping Phi in Z Middle Pt
723 TString nameMCMidPtPhiInZ="";
724 nameMCMidPtPhiInZ.Form("MC_Conversion_Mapping_MidPt_Phi_in_Z_%02d",z);
725 TString titleMCMidPtPhiInZ="";
726 titleMCMidPtPhiInZ.Form("MC Mapping Middle Pt of Phi in Z%02d",z);
727 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
728 AddHistogram(nameMCMidPtPhiInZ, titleMCMidPtPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
729
9c1cb6f7 730 //Mapping Phi in Z Middle Pt for FMD
731 TString nameMCMidPtFMDPhiInZ="";
732 nameMCMidPtFMDPhiInZ.Form("MC_Conversion_Mapping_MidPt_FMD_Phi_in_Z_%02d",z);
733 TString titleMCMidPtFMDPhiInZ="";
734 titleMCMidPtFMDPhiInZ.Form("MC Mapping Middle Pt of Phi in Z%02d",z);
735 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
736 AddHistogram(nameMCMidPtFMDPhiInZ, titleMCMidPtFMDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
737
738
9640a3d1 739
740 //Mapping R in Z Middle Pt
741 TString nameMCMidPtRInZ="";
742 nameMCMidPtRInZ.Form("MC_Conversion_Mapping_MidPt_R_in_Z_%02d",z);
743 TString titleMCMidPtRInZ="";
744 titleMCMidPtRInZ.Form("MC Mapping Middle Pt of R in Z%02d",z);
745 // AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
746 AddHistogram(nameMCMidPtRInZ, titleMCMidPtRInZ, nXBins, fMinRadius, fMaxRadius, xAxisTitle, yAxisTitle);
747
748
749
750
751 //Mapping Phi in Z
752 TString nameESDPhiInZ="";
753 nameESDPhiInZ.Form("ESD_Conversion_Mapping_Phi_in_Z_%02d",z);
754 TString titleESDPhiInZ="";
9c1cb6f7 755 titleESDPhiInZ.Form("ESD Mapping of Phi in Z%02d",z);
9640a3d1 756 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
757 AddHistogram(nameESDPhiInZ, titleESDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
758
9c1cb6f7 759
760 //Mapping Phi in Z for FMD
761 TString nameESDFMDPhiInZ="";
762 nameESDFMDPhiInZ.Form("ESD_Conversion_Mapping_FMD_Phi_in_Z_%02d",z);
763 TString titleESDFMDPhiInZ="";
764 titleESDFMDPhiInZ.Form("ESD Mapping FMD of Phi in Z%02d",z);
765 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
766 AddHistogram(nameESDFMDPhiInZ, titleESDFMDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
767
64f4118c 768 //Mapping Phi in Z for ITSTPC
769 TString nameESDITSTPCPhiInZ="";
770 nameESDITSTPCPhiInZ.Form("ESD_Conversion_Mapping_ITSTPC_Phi_in_Z_%02d",z);
771 TString titleESDITSTPCPhiInZ="";
772 titleESDITSTPCPhiInZ.Form("ESD Mapping ITSTPC of Phi in Z%02d",z);
773 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
774 AddHistogram(nameESDITSTPCPhiInZ, titleESDITSTPCPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
775
9c1cb6f7 776
9640a3d1 777 //Mapping R in Z
778 TString nameESDRInZ="";
779 nameESDRInZ.Form("ESD_Conversion_Mapping_R_in_Z_%02d",z);
780 TString titleESDRInZ="";
781 titleESDRInZ.Form("ESD Mapping of R in Z%02d",z);
782 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
783 AddHistogram(nameESDRInZ, titleESDRInZ, nXBins, fMinRadius, fMaxRadius, xAxisTitle, yAxisTitle);
784
785
786 //Mapping Phi in Z Middle Pt
787 TString nameESDMidPtPhiInZ="";
788 nameESDMidPtPhiInZ.Form("ESD_Conversion_Mapping_MidPt_Phi_in_Z_%02d",z);
789 TString titleESDMidPtPhiInZ="";
790 titleESDMidPtPhiInZ.Form("ESD Mapping Middle Ptof Phi in R%02d",z);
791 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
792 AddHistogram(nameESDMidPtPhiInZ, titleESDMidPtPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
793
9c1cb6f7 794 //Mapping Phi in Z Middle Pt for FMD
795 TString nameESDMidPtFMDPhiInZ="";
796 nameESDMidPtFMDPhiInZ.Form("ESD_Conversion_Mapping_MidPt_FMD_Phi_in_Z_%02d",z);
797 TString titleESDMidPtFMDPhiInZ="";
798 titleESDMidPtFMDPhiInZ.Form("ESD Mapping Middle Pt FMD of Phi in Z%02d",z);
799 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
800 AddHistogram(nameESDMidPtFMDPhiInZ, titleESDMidPtFMDPhiInZ, nXBins, -TMath::Pi(), TMath::Pi(), xAxisTitle, yAxisTitle);
801
802
9640a3d1 803 //Mapping R in Z Middle Pt
804 TString nameESDMidPtRInZ="";
805 nameESDMidPtRInZ.Form("ESD_Conversion_Mapping_MidPt_R_in_Z_%02d",z);
806 TString titleESDMidPtRInZ="";
807 titleESDMidPtRInZ.Form("ESD Mapping Middle Pt of R in Z%02d",z);
808 // AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);
809 AddHistogram(nameESDMidPtRInZ, titleESDMidPtRInZ, nXBins, fMinRadius, fMaxRadius, xAxisTitle, yAxisTitle);
810
811
812
d7d7e825 813 }
9640a3d1 814
815
816
d7d7e825 817}