]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis/AliFMDAnaCalibBackgroundCorrection.h
add maximum M02 band cut, retune fit param, define temporary m02 cut for eta and...
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis / AliFMDAnaCalibBackgroundCorrection.h
1 #ifndef ALIFMDANACALIBBACKGROUNDCORRECTION_H
2 #define ALIFMDANACALIBBACKGROUNDCORRECTION_H
3
4 #include <TObject.h>
5 #include <TObjArray.h>
6 // #include <TH2F.h>
7 #include <TAxis.h>
8 #include <TList.h>
9 class TH2F;
10 class TH1F;
11 class TBrowser;
12
13 /**
14  * @ingroup FMD_ana
15  * @brief Object to store secondary corrections. 
16  *
17  * Objects of this class contains 1 2D histogram per detector,ring 
18  * per vertex bin.   The histogram is an (eta,phi) histogram of the ratio
19  * of total number of particles (seconary+primary) to the number of 
20  * primary particles.   
21  * 
22  * Objects of this class are generated by 
23  * @todo  expand documentation 
24  * 
25  */
26 class AliFMDAnaCalibBackgroundCorrection : public TObject
27 {
28 public:
29   /** 
30    * Constructor
31    */  
32   AliFMDAnaCalibBackgroundCorrection();
33   /** 
34    * Copy constructor
35    * 
36    * @param o Object to copy from 
37    */
38   AliFMDAnaCalibBackgroundCorrection(const AliFMDAnaCalibBackgroundCorrection& o);
39   /** 
40    * Assignment operator 
41    * 
42    * @param o Object to assign from 
43    * 
44    * @return Reference to this object 
45    */
46   AliFMDAnaCalibBackgroundCorrection& operator=(const AliFMDAnaCalibBackgroundCorrection& o);
47   
48   /** 
49    * Get the background (secondary) correction
50    * 
51    * @param det     Detector
52    * @param ring    Ring
53    * @param vtxbin  Vertex bin
54    * 
55    * @return 2D Histogram (eta,phi) secondary correction map
56    */  
57   TH2F*   GetBgCorrection(Int_t det, Char_t ring, Int_t vtxbin) const;
58   /** 
59    * Set the background correction 
60    * 
61    * @param det          Detector
62    * @param ring         Ring 
63    * @param vtxbin       Vertex bin 
64    * @param hCorrection  2D Histogram (eta,phi) secondary correction map
65    */
66   void    SetBgCorrection(Int_t det, Char_t ring, Int_t vtxbin, 
67                           TH2F* hCorrection);
68   /** 
69    * Get the Non-single-diffractive secondary correction map
70    * 
71    * @param det    Detector   
72    * @param ring   Ring             
73    * @param vtxbin Vertex bin 
74    * 
75    * @return 2D Histogram (eta,phi) secondary correction map
76    */
77   TH2F*   GetNSDBgCorrection(Int_t det, Char_t ring, Int_t vtxbin) const;
78   /** 
79    * Set the Non-single-diffractive secondary correction map
80    * 
81    * @param det         Detector   
82    * @param ring        Ring        
83    * @param vtxbin      Vertex bin 
84    * @param hCorrection 2D Histogram (eta,phi) secondary correction map
85    */
86   void    SetNSDBgCorrection(Int_t det, Char_t ring, Int_t vtxbin, 
87                              TH2F* hCorrection);
88   
89   /** 
90    * Get the double hit correction 
91    * 
92    * @param det   Detector 
93    * @param ring  Ring
94    * 
95    * @return 1D histogram (eta) of correction
96    */  
97   TH1F*   GetDoubleHitCorrection(Int_t det, Char_t ring) const;
98   /** 
99    * Set the double hit correction 
100    * 
101    * @param det         Detector 
102    * @param ring        Ring
103    * @param hCorrection 1D histogram (eta) of correction
104    */  
105   void    SetDoubleHitCorrection(Int_t det, Char_t ring, TH1F* hCorrection);
106   /** 
107    * Get the SPD dead correction 
108    * 
109    * @param vtxbin Vertext bin 
110    * 
111    * @return 1D Histogram (eta) of SPD dead correction
112    */
113   TH1F*   GetSPDDeadCorrection(Int_t vtxbin) const;
114   /** 
115    * Set the SPD dead correction 
116    * 
117    * @param vtxbin      Vertex bin 
118    * @param hCorrection 1D Histogram (eta) of SPD dead correction
119    */
120   void    SetSPDDeadCorrection(Int_t vtxbin, TH1F* hCorrection);
121   /** 
122    * Get the FMD dead correction 
123    * 
124    * @param vtxbin Vertext bin 
125    * 
126    * @return 1D Histogram (eta) of FMD dead correction
127    */
128   TH1F*   GetFMDDeadCorrection(Int_t vtxbin);
129   /** 
130    * Set the FMD dead correction 
131    * 
132    * @param vtxbin      Vertex bin 
133    * @param hCorrection 1D Histogram (eta) of FMD dead correction
134    */
135   void    SetFMDDeadCorrection(Int_t vtxbin, TH1F* hCorrection);
136   /** 
137    * Set the reference axis 
138    * 
139    * @param axis Axis of vertex bins 
140    */
141   void    SetRefAxis(TAxis* axis);
142   /** 
143    * Get the vertex axis 
144    * 
145    * @return Constant reference to vertex axis 
146    */
147   const TAxis& GetRefAxis() const { return fAxis; }
148   /** 
149    * Get the number of vertex bins 
150    * 
151    * @return Number of vertex bins 
152    */
153   Int_t   GetNvtxBins() const { return fAxis.GetNbins(); }
154   /** 
155    * Get the maximum vertex cut (in cm)
156    * 
157    * @return Maximum absolute value of the Z position of the vertex 
158    */
159   Float_t GetVtxCutZ() const { return fAxis.GetXmax(); }
160   /** 
161    * Initialize 
162    * 
163    */
164   void    Init();
165   /** 
166    * Nice browsing 
167    * 
168    * 
169    * @return 
170    */
171   Bool_t  IsFolder() const { return kTRUE; }
172   /** 
173    * Nice browsing 
174    * 
175    * @param b Browser 
176    */
177   void    Browse(TBrowser* b);
178 protected:
179   /** 
180    * Get the ring array  
181    * 
182    * @param det   Detector 
183    * @param ring  Ring 
184    * 
185    * @return 
186    */  
187   TObjArray* GetRingArray(Int_t det, Char_t ring) const;
188   TObjArray  fArray;                           // Array
189   TAxis      fAxis;                            // Vertex axis
190   Bool_t     fIsInit;                          // Whether this has been init
191   TList      fListOfDoubleHitCorrection;       // Double hit corrections
192   TList      fListOfNSDBgMaps;                 // NSD bg maps
193   ClassDef(AliFMDAnaCalibBackgroundCorrection,3);
194 };
195
196 #endif
197 // Local Variables:
198 //   mode: C++
199 // End: