]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis/AliFMDAnaCalibBackgroundCorrection.h
Minor fixes to analysis code
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis / AliFMDAnaCalibBackgroundCorrection.h
CommitLineData
b82e76e0 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>
4fb49e43 8#include <TList.h>
b82e76e0 9class TH2F;
4fb49e43 10class TH1F;
b82e76e0 11class TBrowser;
12
cfe59e45 13/**
14 * @ingroup FMD_ana
1b418b63 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
cfe59e45 24 *
25 */
b82e76e0 26class AliFMDAnaCalibBackgroundCorrection : public TObject
27{
1b418b63 28public:
29 /**
30 * Constructor
31 */
b82e76e0 32 AliFMDAnaCalibBackgroundCorrection();
1b418b63 33 /**
34 * Copy constructor
35 *
36 * @param o Object to copy from
37 */
b82e76e0 38 AliFMDAnaCalibBackgroundCorrection(const AliFMDAnaCalibBackgroundCorrection& o);
1b418b63 39 /**
40 * Assignment operator
41 *
42 * @param o Object to assign from
43 *
44 * @return Reference to this object
45 */
b82e76e0 46 AliFMDAnaCalibBackgroundCorrection& operator=(const AliFMDAnaCalibBackgroundCorrection& o);
47
1b418b63 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);
507687cd 88
1b418b63 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 */
4fb49e43 105 void SetDoubleHitCorrection(Int_t det, Char_t ring, TH1F* hCorrection);
1b418b63 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 */
04f1ff3d 120 void SetSPDDeadCorrection(Int_t vtxbin, TH1F* hCorrection);
1b418b63 121 /**
122 * Get the FMD dead correction
123 *
124 * @param vtxbin Vertext bin
125 *
126 * @return 1D Histogram (eta) of FMD dead correction
127 */
f7356393 128 TH1F* GetFMDDeadCorrection(Int_t vtxbin);
1b418b63 129 /**
130 * Set the FMD dead correction
131 *
132 * @param vtxbin Vertex bin
133 * @param hCorrection 1D Histogram (eta) of FMD dead correction
134 */
f7356393 135 void SetFMDDeadCorrection(Int_t vtxbin, TH1F* hCorrection);
1b418b63 136 /**
137 * Set the reference axis
138 *
139 * @param axis Axis of vertex bins
140 */
b82e76e0 141 void SetRefAxis(TAxis* axis);
1b418b63 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 */
b82e76e0 164 void Init();
1b418b63 165 /**
166 * Nice browsing
167 *
168 *
169 * @return
170 */
b82e76e0 171 Bool_t IsFolder() const { return kTRUE; }
1b418b63 172 /**
173 * Nice browsing
174 *
175 * @param b Browser
176 */
b82e76e0 177 void Browse(TBrowser* b);
1b418b63 178protected:
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
507687cd 193 ClassDef(AliFMDAnaCalibBackgroundCorrection,3);
b82e76e0 194};
195
196#endif
cfe59e45 197// Local Variables:
198// mode: C++
199// End: