cd9f6ee47ee59ac3e844e4b460de04e064069bc4
[u/mrichter/AliRoot.git] / PWG4 / PartCorr / AliGammaConversionHistograms.cxx
1 /**************************************************************************\r
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
3  *                                                                        *\r
4  * Author: Ana Marin, Kathrin Koch, Kenneth Aamodt                        *\r
5  * Version 1.0                                                            *\r
6  *                                                                        *\r
7  * Permission to use, copy, modify and distribute this software and its   *\r
8  * documentation strictly for non-commercial purposes is hereby granted   *\r
9  * without fee, provided that the above copyright notice appears in all   *\r
10  * copies and that both the copyright notice and this permission notice   *\r
11  * appear in the supporting documentation. The authors make no claims     *\r
12  * about the suitability of this software for any purpose. It is          *\r
13  * provided "as is" without express or implied warranty.                  *\r
14  **************************************************************************/\r
15 \r
16 ////////////////////////////////////////////////\r
17 //--------------------------------------------- \r
18 // Class used to do analysis on conversion pairs\r
19 //---------------------------------------------\r
20 ////////////////////////////////////////////////\r
21 \r
22 #include "AliGammaConversionHistograms.h"\r
23 #include "TMath.h"\r
24 #include "TObjString.h"\r
25 #include "TMap.h"\r
26 #include "TList.h"\r
27 #include "TH1F.h"\r
28 #include "TH2F.h"\r
29 \r
30 \r
31 using namespace std;\r
32 \r
33 ClassImp(AliGammaConversionHistograms)\r
34 \r
35 \r
36 AliGammaConversionHistograms::AliGammaConversionHistograms() :\r
37   fHistogramMap(new TMap()),\r
38   fNPhiIndex(0),\r
39   fNRIndex(0),\r
40   fMinRadius(0.),\r
41   fMaxRadius(0.),\r
42   fDeltaR(0.),\r
43   fMinPhi(0.),\r
44   fMaxPhi(0.),\r
45   fDeltaPhi(0.)\r
46 {\r
47   // see header file for documenation\r
48 }\r
49 \r
50 \r
51 AliGammaConversionHistograms::AliGammaConversionHistograms(const AliGammaConversionHistograms & original) :\r
52   fHistogramMap(original.fHistogramMap),\r
53   fNPhiIndex(original.fNPhiIndex),\r
54   fNRIndex(original.fNRIndex),\r
55   fMinRadius(original.fMinRadius),\r
56   fMaxRadius(original.fMaxRadius),\r
57   fDeltaR(original.fDeltaR),\r
58   fMinPhi(original.fMinPhi),\r
59   fMaxPhi(original.fMaxPhi),\r
60   fDeltaPhi(original.fDeltaPhi)\r
61 {    \r
62   //see header file for documentation\r
63 }\r
64 \r
65 \r
66 AliGammaConversionHistograms & AliGammaConversionHistograms::operator = (const AliGammaConversionHistograms & /*original*/)\r
67 {\r
68   // assignment operator\r
69   return *this;\r
70 }\r
71 \r
72 \r
73 AliGammaConversionHistograms::~AliGammaConversionHistograms() {\r
74   //destructor\r
75 \r
76 \r
77 }\r
78 \r
79 void AliGammaConversionHistograms::AddHistogram(TString histogramName, TString histogramTitle, Int_t nXBins, Double_t firstX,Double_t lastX,TString xAxisTitle, TString yAxisTitle){\r
80   // see header file for documentation\r
81   TH1F *tmp = new TH1F(histogramName, histogramTitle,nXBins,firstX,lastX);\r
82   tmp->GetXaxis()->SetTitle(xAxisTitle);\r
83   tmp->GetYaxis()->SetTitle(yAxisTitle);\r
84   TObjString* tobjstring = new TObjString(histogramName.Data());\r
85   fHistogramMap->Add((TObject*)tobjstring,(TObject*)tmp);\r
86 }\r
87 \r
88 void 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){\r
89   // see header file for documentation\r
90   TH2F *tmp = new TH2F(histogramName, histogramTitle,nXBins,firstX,lastX,nYBins,firstY,lastY);\r
91   tmp->GetXaxis()->SetTitle(xAxisTitle);\r
92   tmp->GetYaxis()->SetTitle(yAxisTitle);\r
93   TObjString *tobjstring = new TObjString(histogramName.Data());\r
94   fHistogramMap->Add((TObject*)tobjstring,(TObject*)tmp);\r
95 }\r
96 \r
97 void AliGammaConversionHistograms::FillHistogram(TString histogramName, Double_t xValue) const{\r
98   //see header file for documentation\r
99   TH1 *tmp = (TH1*)fHistogramMap->GetValue(histogramName.Data());\r
100   if(tmp){\r
101       tmp->Fill(xValue);\r
102   }\r
103   else{\r
104     cout<<"Histogram does not exist"<<histogramName.Data()<<endl;\r
105   }\r
106 }\r
107 \r
108 void AliGammaConversionHistograms::FillHistogram(TString histogramName, Double_t xValue, Double_t yValue) const{\r
109   //see header file for documentation\r
110   TH1 *tmp = (TH1*)fHistogramMap->GetValue(histogramName.Data());\r
111   if(tmp){\r
112     tmp->Fill(xValue, yValue);\r
113   }\r
114   else{\r
115     cout<<"Histogram does not exist"<<histogramName.Data()<<endl;\r
116   }\r
117 }\r
118 \r
119 void AliGammaConversionHistograms::GetOutputContainer(TList *fOutputContainer) const{\r
120   //checking if the container is alrerady created\r
121 \r
122   if(fOutputContainer == NULL){\r
123     //print warning\r
124     return;\r
125   }\r
126   cout<<"Creating the histogram output container"<<endl;\r
127 \r
128   if(fHistogramMap){\r
129     TIter iter(fHistogramMap);\r
130     TObjString *histogramName;\r
131     while ((histogramName = (TObjString*) iter.Next())) {\r
132       cout<<"Histohram name "<<histogramName->GetString().Data()<<endl;\r
133       TString histogramString = histogramName->GetString();\r
134       fOutputContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data()));\r
135       histogramName = NULL;\r
136     }  \r
137   }\r
138 \r
139   //remember mapping stuff!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r
140 \r
141 \r
142   /*\r
143   TList*  fMappingContainer = new TList();\r
144   fMappingContainer->SetName("Mapping Histograms");\r
145 \r
146   if(fMCEPR != NULL){ fOutputContainer->Add(fMCEPR);}\r
147   if(fMCEPZR != NULL){ fOutputContainer->Add(fMCEPZR);}\r
148   if(fMCEPXY != NULL){ fOutputContainer->Add(fMCEPXY);}\r
149   if(fMCEPOpeningAngle != NULL){ fOutputContainer->Add(fMCEPOpeningAngle);}\r
150 \r
151   if(fMCEEnergy != NULL){ fOutputContainer->Add(fMCEEnergy);}\r
152   if(fMCEPt != NULL){ fOutputContainer->Add(fMCEPt);}\r
153   if(fMCEEta != NULL){ fOutputContainer->Add(fMCEEta);}\r
154   if(fMCEPhi != NULL){ fOutputContainer->Add(fMCEPhi);}\r
155 \r
156   if(fMCPEnergy != NULL){ fOutputContainer->Add(fMCPEnergy);}\r
157   if(fMCPPt != NULL){ fOutputContainer->Add(fMCPPt);}\r
158   if(fMCPEta != NULL){ fOutputContainer->Add(fMCPEta);}\r
159   if(fMCPPhi != NULL){ fOutputContainer->Add(fMCPPhi);}\r
160 \r
161   if(fMCGammaEnergy != NULL){ fOutputContainer->Add(fMCGammaEnergy);}\r
162   if(fMCGammaPt != NULL){ fOutputContainer->Add(fMCGammaPt);}\r
163   if(fMCGammaEta != NULL){ fOutputContainer->Add(fMCGammaEta);}\r
164   if(fMCGammaPhi != NULL){ fOutputContainer->Add(fMCGammaPhi);}\r
165 \r
166   if(fMCDirectGammaEnergy != NULL){ fOutputContainer->Add(fMCDirectGammaEnergy);}\r
167   if(fMCDirectGammaPt != NULL){ fOutputContainer->Add(fMCDirectGammaPt);}\r
168   if(fMCDirectGammaEta != NULL){ fOutputContainer->Add(fMCDirectGammaEta);}\r
169   if(fMCDirectGammaPhi != NULL){ fOutputContainer->Add(fMCDirectGammaPhi);}\r
170 \r
171   //mapping\r
172   for(UInt_t i=0;i<fMCMapping.size();i++){\r
173     for(UInt_t j=0;j<fMCMapping[i].size();j++){\r
174       if(fMCMapping[i][j] != NULL){fMappingContainer->Add(fMCMapping[i][j]);}\r
175     }\r
176   }\r
177   for(UInt_t i=0;i<fMCMappingPhi.size();i++){\r
178     if(fMCMappingPhi[i] != NULL){fMappingContainer->Add(fMCMappingPhi[i]);}\r
179   }\r
180   for(UInt_t i=0;i<fMCMappingR.size();i++){\r
181     if(fMCMappingR[i] != NULL){fMappingContainer->Add(fMCMappingR[i]);}\r
182   }\r
183   if(fMCMatchGammaEta != NULL){ fOutputContainer->Add(fMCMatchGammaEta);}\r
184   if(fMCMatchGammaPhi != NULL){ fOutputContainer->Add(fMCMatchGammaPhi);}\r
185   if(fMCMatchGammaPt != NULL){ fOutputContainer->Add(fMCMatchGammaPt);}\r
186   if(fMCMatchGammaEnergy != NULL){ fOutputContainer->Add(fMCMatchGammaEnergy);}\r
187   if(fMCMatchGammaMass != NULL){ fOutputContainer->Add(fMCMatchGammaMass);}\r
188   if(fMCMatchGammaOpeningAngle != NULL){ fOutputContainer->Add(fMCMatchGammaOpeningAngle);}\r
189   if(fMCMatchGammaR != NULL){ fOutputContainer->Add(fMCMatchGammaR);}\r
190   if(fMCMatchGammaZR != NULL){ fOutputContainer->Add(fMCMatchGammaZR);}\r
191   if(fMCMatchGammaXY != NULL){ fOutputContainer->Add(fMCMatchGammaXY);}\r
192 \r
193   if(fMCPi0Eta != NULL){ fOutputContainer->Add(fMCPi0Eta);}\r
194   if(fMCPi0Phi != NULL){ fOutputContainer->Add(fMCPi0Phi);}\r
195   if(fMCPi0Pt != NULL){ fOutputContainer->Add(fMCPi0Pt);}\r
196   if(fMCPi0Energy != NULL){ fOutputContainer->Add(fMCPi0Energy);}\r
197   if(fMCPi0Mass != NULL){ fOutputContainer->Add(fMCPi0Mass);}\r
198   if(fMCPi0OpeningAngleGamma != NULL){ fOutputContainer->Add(fMCPi0OpeningAngleGamma);}\r
199   if(fMCPi0R != NULL){ fOutputContainer->Add(fMCPi0R);}\r
200   if(fMCPi0ZR != NULL){ fOutputContainer->Add(fMCPi0ZR);}\r
201   if(fMCPi0XY != NULL){ fOutputContainer->Add(fMCPi0XY);}\r
202   if(fMCPi0SecondariesXY != NULL){ fOutputContainer->Add(fMCPi0SecondariesXY);}\r
203 \r
204   if(fMCEtaEta != NULL){ fOutputContainer->Add(fMCEtaEta);}\r
205   if(fMCEtaPhi != NULL){ fOutputContainer->Add(fMCEtaPhi);}\r
206   if(fMCEtaPt != NULL){ fOutputContainer->Add(fMCEtaPt);}\r
207   if(fMCEtaEnergy != NULL){ fOutputContainer->Add(fMCEtaEnergy);}\r
208   if(fMCEtaMass != NULL){ fOutputContainer->Add(fMCEtaMass);}\r
209   if(fMCEtaOpeningAngleGamma != NULL){ fOutputContainer->Add(fMCEtaOpeningAngleGamma);}\r
210   if(fMCEtaR != NULL){ fOutputContainer->Add(fMCEtaR);}\r
211   if(fMCEtaZR != NULL){ fOutputContainer->Add(fMCEtaZR);}\r
212   if(fMCEtaXY != NULL){ fOutputContainer->Add(fMCEtaXY);}\r
213     \r
214   // Histograms from esd tracks\r
215   if(fESDEPR != NULL){ fOutputContainer->Add(fESDEPR);}\r
216   if(fESDEPZR != NULL){ fOutputContainer->Add(fESDEPZR);}\r
217   if(fESDEPXY != NULL){ fOutputContainer->Add(fESDEPXY);}\r
218   if(fESDEPOpeningAngle != NULL){ fOutputContainer->Add(fESDEPOpeningAngle);}\r
219 \r
220   if(fESDEEnergy != NULL){ fOutputContainer->Add(fESDEEnergy);}\r
221   if(fESDEPt != NULL){ fOutputContainer->Add(fESDEPt);}\r
222   if(fESDEEta != NULL){ fOutputContainer->Add(fESDEEta);}\r
223   if(fESDEPhi != NULL){ fOutputContainer->Add(fESDEPhi);}\r
224 \r
225   if(fESDPEnergy != NULL){ fOutputContainer->Add(fESDPEnergy);}\r
226   if(fESDPPt != NULL){ fOutputContainer->Add(fESDPPt);}\r
227   if(fESDPEta != NULL){ fOutputContainer->Add(fESDPEta);}\r
228   if(fESDPPhi != NULL){ fOutputContainer->Add(fESDPPhi);}\r
229 \r
230   if(fESDGammaEnergy != NULL){ fOutputContainer->Add(fESDGammaEnergy);}\r
231   if(fESDGammaPt != NULL){ fOutputContainer->Add(fESDGammaPt);}\r
232   if(fESDGammaEta != NULL){ fOutputContainer->Add(fESDGammaEta);}\r
233   if(fESDGammaPhi != NULL){ fOutputContainer->Add(fESDGammaPhi);}\r
234 \r
235   //mapping\r
236   for(UInt_t i=0;i<fESDMapping.size();i++){\r
237     for(UInt_t j=0;j<fESDMapping[i].size();j++){\r
238       if(fESDMapping[i][j] != NULL){fMappingContainer->Add(fESDMapping[i][j]);}\r
239     }\r
240   }\r
241   for(UInt_t i=0;i<fESDMappingPhi.size();i++){\r
242     if(fESDMappingPhi[i] != NULL){fMappingContainer->Add(fESDMappingPhi[i]);}\r
243   }\r
244   for(UInt_t i=0;i<fESDMappingR.size();i++){\r
245     if(fESDMappingR[i] != NULL){fMappingContainer->Add(fESDMappingR[i]);}\r
246   }\r
247 \r
248   fOutputContainer->Add(fMappingContainer);\r
249 \r
250   if(fESDMatchGammaOpeningAngle != NULL){ fOutputContainer->Add(fESDMatchGammaOpeningAngle);}\r
251   if(fESDMatchGammaEnergy != NULL){ fOutputContainer->Add(fESDMatchGammaEnergy);}\r
252   if(fESDMatchGammaPt != NULL){ fOutputContainer->Add(fESDMatchGammaPt);}\r
253   if(fESDMatchGammaEta != NULL){ fOutputContainer->Add(fESDMatchGammaEta);}\r
254   if(fESDMatchGammaPhi != NULL){ fOutputContainer->Add(fESDMatchGammaPhi);}\r
255   if(fESDMatchGammaMass != NULL){ fOutputContainer->Add(fESDMatchGammaMass);}\r
256   if(fESDMatchGammaWidth != NULL){ fOutputContainer->Add(fESDMatchGammaWidth);}\r
257   if(fESDMatchGammaChi2 != NULL){ fOutputContainer->Add(fESDMatchGammaChi2);}\r
258   if(fESDMatchGammaNDF != NULL){ fOutputContainer->Add(fESDMatchGammaNDF);}\r
259   if(fESDMatchGammaR != NULL){ fOutputContainer->Add(fESDMatchGammaR);}\r
260   if(fESDMatchGammaZR != NULL){ fOutputContainer->Add(fESDMatchGammaZR);}\r
261   if(fESDMatchGammaXY != NULL){ fOutputContainer->Add(fESDMatchGammaXY);}\r
262 \r
263   if(fESDPi0OpeningAngleGamma != NULL){ fOutputContainer->Add(fESDPi0OpeningAngleGamma);}\r
264   if(fESDPi0Energy != NULL){ fOutputContainer->Add(fESDPi0Energy);}\r
265   if(fESDPi0Pt != NULL){ fOutputContainer->Add(fESDPi0Pt);}\r
266   if(fESDPi0Eta != NULL){ fOutputContainer->Add(fESDPi0Eta);}\r
267   if(fESDPi0Phi != NULL){ fOutputContainer->Add(fESDPi0Phi);}\r
268   if(fESDPi0Mass != NULL){ fOutputContainer->Add(fESDPi0Mass);}\r
269   if(fESDPi0R != NULL){ fOutputContainer->Add(fESDPi0R);}\r
270   if(fESDPi0ZR != NULL){ fOutputContainer->Add(fESDPi0ZR);}\r
271   if(fESDPi0XY != NULL){ fOutputContainer->Add(fESDPi0XY);}\r
272 \r
273   if(fESDEtaOpeningAngleGamma != NULL){ fOutputContainer->Add(fESDEtaOpeningAngleGamma);}\r
274   if(fESDEtaEnergy != NULL){ fOutputContainer->Add(fESDEtaEnergy);}\r
275   if(fESDEtaPt != NULL){ fOutputContainer->Add(fESDEtaPt);}\r
276   if(fESDEtaEta != NULL){ fOutputContainer->Add(fESDEtaEta);}\r
277   if(fESDEtaPhi != NULL){ fOutputContainer->Add(fESDEtaPhi);}\r
278   if(fESDEtaMass != NULL){ fOutputContainer->Add(fESDEtaMass);}\r
279   if(fESDEtaR != NULL){ fOutputContainer->Add(fESDEtaR);}\r
280   if(fESDEtaZR != NULL){ fOutputContainer->Add(fESDEtaZR);}\r
281   if(fESDEtaXY != NULL){ fOutputContainer->Add(fESDEtaXY);}\r
282 \r
283   if(fESDBackgroundOpeningAngleGamma != NULL){ fOutputContainer->Add(fESDBackgroundOpeningAngleGamma);}\r
284   if(fESDBackgroundEnergy != NULL){ fOutputContainer->Add(fESDBackgroundEnergy);}\r
285   if(fESDBackgroundPt != NULL){ fOutputContainer->Add(fESDBackgroundPt);}\r
286   if(fESDBackgroundEta != NULL){ fOutputContainer->Add(fESDBackgroundEta);}\r
287   if(fESDBackgroundPhi != NULL){ fOutputContainer->Add(fESDBackgroundPhi);}\r
288   if(fESDBackgroundMass != NULL){ fOutputContainer->Add(fESDBackgroundMass);}\r
289   if(fESDBackgroundR != NULL){ fOutputContainer->Add(fESDBackgroundR);}\r
290   if(fESDBackgroundZR != NULL){ fOutputContainer->Add(fESDBackgroundZR);}\r
291   if(fESDBackgroundXY != NULL){ fOutputContainer->Add(fESDBackgroundXY);}\r
292 \r
293   if(fResolutiondPt != NULL){ fOutputContainer->Add(fResolutiondPt);}\r
294   if(fResolutiondR != NULL){ fOutputContainer->Add(fResolutiondR);}\r
295   if(fResolutiondZ != NULL){ fOutputContainer->Add(fResolutiondZ);}\r
296   if(fResolutiondRdPt != NULL){ fOutputContainer->Add(fResolutiondRdPt);}\r
297   if(fResolutionMCPt != NULL){ fOutputContainer->Add(fResolutionMCPt);}\r
298   if(fResolutionMCR != NULL){ fOutputContainer->Add(fResolutionMCR);}\r
299   if(fResolutionMCZ != NULL){ fOutputContainer->Add(fResolutionMCZ);}\r
300   if(fResolutionESDPt != NULL){ fOutputContainer->Add(fResolutionESDPt);}\r
301   if(fResolutionESDR != NULL){ fOutputContainer->Add(fResolutionESDR);}\r
302   if(fResolutionESDZ != NULL){ fOutputContainer->Add(fResolutionESDZ);}\r
303 \r
304   if(fNumberOfV0s != NULL){fOutputContainer->Add(fNumberOfV0s);}\r
305   if(fNumberOfSurvivingV0s != NULL){fOutputContainer->Add(fNumberOfSurvivingV0s);}\r
306   if(fV0MassDebugCut1 != NULL){fOutputContainer->Add(fV0MassDebugCut1);}\r
307   if(fV0MassDebugCut2 != NULL){fOutputContainer->Add(fV0MassDebugCut2);}\r
308   if(fV0MassDebugCut3 != NULL){fOutputContainer->Add(fV0MassDebugCut3);}\r
309   if(fV0MassDebugCut4 != NULL){fOutputContainer->Add(fV0MassDebugCut4);}\r
310   if(fV0MassDebugCut5 != NULL){fOutputContainer->Add(fV0MassDebugCut5);}\r
311   if(fV0MassDebugCut6 != NULL){fOutputContainer->Add(fV0MassDebugCut6);}\r
312   if(fV0MassDebugCut7 != NULL){fOutputContainer->Add(fV0MassDebugCut7);}\r
313   if(fV0MassDebugCut8 != NULL){fOutputContainer->Add(fV0MassDebugCut8);}\r
314   \r
315   return fOutputContainer;\r
316 */\r
317 }\r
318 \r
319 Int_t AliGammaConversionHistograms::GetRBin(Double_t radius) const{\r
320   // see header file for documentation\r
321   Int_t iResult=0;\r
322   if(fDeltaR>0){\r
323     iResult = (Int_t)((radius - fMinRadius)/fDeltaR);\r
324   }\r
325   return iResult;\r
326 }\r
327 \r
328 Int_t AliGammaConversionHistograms::GetPhiBin(Double_t phi) const{\r
329   // see header file for documentation\r
330   Int_t iResult=0;\r
331   if(fDeltaPhi>0){\r
332     if(phi>TMath::Pi()){\r
333       phi-=2*TMath::Pi();\r
334     }\r
335     iResult = (Int_t)((phi - fMinPhi)/fDeltaPhi);\r
336   }\r
337   return iResult;\r
338 }\r
339 \r
340 \r
341 \r
342 void 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){\r
343   // Initializing the valuse for the mapping\r
344 \r
345   fNPhiIndex = nPhiIndex;\r
346   fNRIndex   = nRIndex;\r
347   fMinRadius      = minRadius;\r
348   fMaxRadius      = maxRadius;\r
349   if(nBinsR>0 && nRIndex!=0){\r
350     fDeltaR       = (fMaxRadius - fMinRadius)/nRIndex;\r
351   }\r
352   fMinPhi         = minPhi;\r
353   fMaxPhi         = maxPhi;\r
354   if(nBinsPhi>0 && nPhiIndex!=0){\r
355     fDeltaPhi     = (fMaxPhi-fMinPhi)/nPhiIndex;\r
356   }\r
357 }\r
358 \r
359 \r
360 //mapping\r
361 void 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){\r
362   // see header file for documentation\r
363   \r
364   for(Int_t phi =0; phi<=fNPhiIndex;phi++){\r
365 \r
366     for(Int_t r =0; r<fNRIndex;r++){\r
367 \r
368       //Creating the axis titles\r
369       if(xAxisTitle.Length() == 0){\r
370         xAxisTitle.Form("Phi %02d",phi);\r
371       }\r
372       \r
373       if(yAxisTitle.Length() == 0){\r
374         yAxisTitle.Form("R %02d",phi);\r
375       }\r
376 \r
377       //MC\r
378       TString nameMC="";\r
379       nameMC.Form("MC_EP_Mapping-Phi%02d-R%02d",phi,r);\r
380       TString titleMC="";\r
381       titleMC.Form("Electron-Positron MC Mapping-Phi%02d-R%02d",phi,r);\r
382 \r
383       AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);\r
384 \r
385       //ESD\r
386       TString nameESD="";\r
387       nameESD.Form("ESD_EP_Mapping-Phi%02d-R%02d",phi,r);\r
388       TString titleESD="";\r
389       titleESD.Form("Electron-Positron ESD Mapping-Phi%02d-R%02d",phi,r);\r
390 \r
391       AddHistogram(nameESD, titleESD, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);\r
392     }\r
393   }\r
394 \r
395   for(Int_t phi =0; phi<=nPhiIndex;phi++){ \r
396 \r
397     //Creating the axis titles\r
398     if(xAxisTitle.Length() == 0){\r
399       xAxisTitle.Form("Phi %02d",phi);\r
400     }\r
401     if(yAxisTitle.Length() == 0){\r
402       yAxisTitle = "Counts";\r
403     }\r
404     \r
405     //MC\r
406     TString nameMC="";\r
407     nameMC.Form("MC_EP_Mapping-Phi%02d",phi);\r
408     TString titleMC="";\r
409     titleMC.Form("Electron-Positron MC Mapping-Phi%02d",phi);\r
410     \r
411     AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);\r
412 \r
413     //MC\r
414     TString nameESD="";\r
415     nameMC.Form("ESD_EP_Mapping-Phi%02d",phi);\r
416     TString titleESD="";\r
417     titleMC.Form("Electron-Positron ESD Mapping-Phi%02d",phi);\r
418     \r
419     AddHistogram(nameESD, titleESD, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);\r
420   }\r
421 \r
422 \r
423   for(Int_t r =0; r<=nRIndex;r++){\r
424     //Creating the axis titles\r
425     if(xAxisTitle.Length() == 0){\r
426       xAxisTitle.Form("R %02d",r);\r
427     }\r
428     if(yAxisTitle.Length() == 0){\r
429       yAxisTitle = "Counts";\r
430     }\r
431     \r
432     //MC\r
433     TString nameMC="";\r
434     nameMC.Form("MC_EP_Mapping-R%02d",r);\r
435     TString titleMC="";\r
436     titleMC.Form("Electron-Positron MC Mapping-R%02d",r);\r
437     \r
438     AddHistogram(nameMC, titleMC, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);\r
439 \r
440     //ESD\r
441     TString nameESD="";\r
442     nameESD.Form("ESD_EP_Mapping-R%02d",r);\r
443     TString titleESD="";\r
444     titleESD.Form("Electron-Positron ESD Mapping-R%02d",r);\r
445     \r
446     AddHistogram(nameESD, titleESD, nXBins, firstX, lastX, xAxisTitle, yAxisTitle);\r
447 \r
448     //Mapping Phi in R\r
449     TString nameMCPhiInR="";\r
450     nameMCPhiInR.Form("MC_EP_Mapping_Phi_vs_R_R-%02d",r);\r
451     TString titleMCPhiInR="";\r
452     titleMCPhiInR.Form("Electron-Positron MC Mapping of Phi in R%02d",r);\r
453     AddHistogram(nameMCPhiInR, titleMCPhiInR, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);\r
454 \r
455     TString nameESDPhiInR="";\r
456     nameESDPhiInR.Form("ESD_EP_Mapping_Phi_vs_R_R-%02d",r);\r
457     TString titleESDPhiInR="";\r
458     titleESDPhiInR.Form("Electron-Positron ESD Mapping of Phi in R%02d",r);\r
459     AddHistogram(nameESDPhiInR, titleESDPhiInR, nXBins, firstX, lastX, nYBins, firstY, lastY, xAxisTitle, yAxisTitle);    \r
460   }\r
461 }\r