changes from gsi. Using mult if no centrality. testfilterbit 128
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliGammaConversionHistograms.h
1 #ifndef ALIGAMMACONVERSIONHISTOGRAMS_H
2 #define ALIGAMMACONVERSIONHISTOGRAMS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 ////////////////////////////////////////////////
7 //--------------------------------------------- 
8 // Class used to do analysis on conversion pairs
9 //---------------------------------------------
10 ////////////////////////////////////////////////
11
12 #include "TString.h"
13 #include "Riostream.h"
14 #include <vector>
15
16 class TMap;
17 class TList;
18 class TH1F;
19 class TH2F;
20 class TH3F;
21
22 class AliGammaConversionHistograms{
23
24  public: 
25   
26   AliGammaConversionHistograms();                                                                  //constructor
27   AliGammaConversionHistograms(const AliGammaConversionHistograms & original);                     //copy constructor
28   AliGammaConversionHistograms & operator = (const AliGammaConversionHistograms & original);       //assignment operator
29   virtual ~AliGammaConversionHistograms();                                                         //virtual destructor
30   
31
32   //  TList * GetOutputContainer();
33   void GetOutputContainer(TList *fOutputContainer);
34   
35   Int_t GetRBin(Double_t radius) const;
36   Int_t GetPhiBin(Double_t phi) const;
37   Int_t GetZBin(Double_t radius) const;
38  
39   void InitializeMappingValues(Int_t nPhiHistograms, Int_t nRHistograms, Int_t nBinsR, Double_t minRadius, Double_t maxRadius,Int_t nBinsPhi, Double_t minPhi, Double_t maxPhi);
40
41   void AddMappingHistograms(Int_t nPhiHistograms, Int_t nRHistograms,Int_t nXBins, Double_t firstX, Double_t lastX, Int_t nYBins, Double_t firstY, Double_t lastY, TString xAxisTitle="", TString yAxisTitle="");
42
43   /*
44    * Adds a TH1F histogram to the histogram map and create a key for it 
45    */
46   void AddHistogram(TString histogramName, TString histogramTitle, Int_t nXBins, Double_t firstX,Double_t lastX,TString xAxisTitle="", TString yAxisTitle="");
47
48   /*
49    * Adds a TH2F histogram to the histogram map and create a key for it 
50    */
51   void 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 =-1);
52
53   /*
54    * Adds a TH3F histogram to the histogram map and create a key for it 
55    */  
56   void AddHistogram(TString histogramName, TString histogramTitle, Int_t nXBins, Double_t firstX, Double_t lastX, Int_t nYBins, Double_t firstY, Double_t lastY, Int_t nZBins, Double_t firstZ, Double_t lastZ, TString xAxisTitle="", TString yAxisTitle="", TString zAxisTitle="", Int_t logAxis =-1);
57
58   /*
59    * Create a logx binning suitable for dEdx plots
60    */
61   Bool_t BinLogAxis(const char* name, Int_t dim);
62
63
64   /*
65    *  Adds a TH1F Table to the table map and create a key for it
66    */
67   void AddTable(TString tableName,TString tableTitle,Int_t nXBins, const char * axesLabel[]);
68     
69  /*
70   *  Adds a TH2F Table    
71   */  
72         
73   void AddTable(TString tableName,TString tableTitle,Int_t nXBins, const char * axesXLabel[],Int_t nYBins, const char* axesYLabel[]);
74
75
76   /*
77   *  Adds a TH3F Table    
78   */  
79         
80   void AddTable(TString tableName,TString tableTitle,Int_t nXBins, const char * axesXLabel[],Int_t nYBins, const char* axesYLabel[],Int_t nZBins, const char* axesZLabel[]);
81
82   /*
83    * Fills a TH1F histogram with the given name with the given value 
84    */
85   void FillHistogram(TString histogramName, Double_t xValue) const;
86
87   /*
88    * Fills a TH2F histogram with the given name with the given value 
89    */
90   void FillHistogram(TString histogramName, Double_t xValue, Double_t yValue) const;
91
92   /*
93    * Fills a TH3F histogram with the given name with the given value 
94    */
95   void FillHistogram(TString histogramName, Double_t xValue, Double_t yValue, Double_t zValue) const;
96
97   /*
98    * Fills a TH1F histogram with the given name with the given integer array 
99    */
100   
101   void FillHistogram(TString histogramName, Float_t* xValue, Int_t nPoints) const;
102   
103   /*
104    * Fills a TH1F table with the given name with the given value
105    */                   
106   void FillTable(TString tableName, Double_t xValue) const;
107
108   /*  
109    *  Fills a TH2F table with the given name with the given value
110    */   
111   void FillTable(TString tableName, Double_t xValue, Double_t yValue) const;
112
113     /*  
114    *  Fills a TH3F table with the given name with the given value
115    */   
116   void FillTable(TString tableName, Double_t xValue, Double_t yValue, Double_t zValue) const;
117
118   /*
119    *Returns a pointer to the histogram associated with name.
120    */
121    TObject* GetValue(const TString& name);
122
123
124  private:
125   TMap* fHistogramMap; // histogram map
126   
127
128
129   Int_t fNPhiIndex; //phi index
130   Int_t fNRIndex; //r index
131   Int_t fNZIndex; //z index
132   //  Double_t fRBinLimits[8]; // Limits of the radius bins
133   Double_t fRBinLimits[14]; // Limits of the radius bins
134   Double_t fZBinLimits[13]; // Limits of the Z bins
135   Double_t fMinRadius; //min radius cut
136   Double_t fMaxRadius; //max radius cut
137   Double_t fDeltaR; // delta r
138   Double_t fMinPhi; //min phi
139   Double_t fMaxPhi; // max phi
140   Double_t fDeltaPhi;//delta phi
141
142   TList * fMappingContainer; //mapping container
143   TList * fBackgroundContainer; // background container
144   TList * fDebugContainer; // debug container
145   TList * fResolutionContainer; //resolution container
146   TList * fMatchContainer; //match container
147   TList * fESDContainer;//esd container
148   TList * fMCContainer; // MC container
149   TList * fTableContainer; // table container
150   TList * fOtherContainer; // other container
151   TList * f3DContainer; // 3D container
152   TList * fHadContainer; // Hadronic Interactions container
153  
154   ClassDef(AliGammaConversionHistograms,4)
155 };
156
157
158 #endif
159
160
161