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