More code clean up.
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliFMDCorrDoubleHit.h
1 //
2 // This class contains the secondary correction and the double hit
3 // correction used in low-flux events.
4 //
5 #ifndef ALIROOT_PWG2_FORWARD_ANALYSIS_ALIFMDCORRDOUBLEHIT_H
6 #define ALIROOT_PWG2_FORWARD_ANALYSIS_ALIFMDCORRDOUBLEHIT_H
7 #include <TObject.h>
8 #include <TObjArray.h>
9 class TH1D;
10
11 /**
12  * This class contains double hit correction used in low-flux events.
13  *
14  *
15  * The double hit correction is given by 
16  * @f[
17  *   h_{r}(\eta) = \frac{\sum_i N_{i,strips hit}(\eta)}{
18  *                       \sum_i N_{i,total hits}(\eta)}
19  * @f]
20  *
21  * where @f$ N_{i,strips hit}(\eta)@f$ is the number of strips in the
22  * @f$\eta@f$ bin that had one or more hits in event @f$i@f$, and
23  * @f$N_{i,total hits}(\eta)@f$ is the total number hits in the
24  * @f$\eta@f$ bin. 
25  *
26  * These are generated from Monte-Carlo truth information. 
27  *
28  * @ingroup pwg2_forward_corr
29  * 
30  */
31 class AliFMDCorrDoubleHit : public TObject 
32 {
33 public:
34   /** 
35    * Default constructor 
36    */
37   AliFMDCorrDoubleHit();
38   /** 
39    * Copy constructor 
40    * 
41    * @param o Object to copy from 
42    */
43   AliFMDCorrDoubleHit(const AliFMDCorrDoubleHit& o);
44   /**
45    * Destructor 
46    * 
47    */
48   virtual ~AliFMDCorrDoubleHit();
49   /** 
50    * Assignment operator 
51    * 
52    * @param o Object to assign from 
53    * 
54    * @return Reference to this object 
55    */
56   AliFMDCorrDoubleHit& operator=(const AliFMDCorrDoubleHit& o);
57   /** 
58    * @{ 
59    * @name Get corrections and parameters 
60    */
61   /** 
62    * Get the double hit correction @f$ h_{r}(\eta)@f$ 
63    * 
64    * @param d Detector number 
65    * @param r Ring identifier 
66    * 
67    * @return @f$ h_{r}(\eta)@f$ 
68    */
69   TH1D* GetCorrection(UShort_t d, Char_t r) const;
70   /* @} */
71
72   /** 
73    * @{ 
74    * @name Set corrections and parameters 
75    */
76   /** 
77    * Set the double hit correction @f$ h_{r}(\eta)@f$. Note, that the
78    * object takes ownership of the passed pointer.
79    * 
80    * @param d  Detector number (1-3)
81    * @param r  Ring identifier (I or O)
82    * @param h  @f$ h_{r}(\eta)@f$ 
83    * 
84    * @return true if operation succeeded 
85    */
86   Bool_t SetCorrection(UShort_t d, Char_t r, TH1D* h);
87   /* @} */
88
89   /** 
90    * @{ 
91    * @name Auxiliary member functions 
92    */
93   /** 
94    * Declare this as a folder
95    * 
96    * @return Always true 
97    */
98   Bool_t IsFolder() const { return true; }
99   /** 
100    * Browse this object in the browser
101    * 
102    * @param b 
103    */
104   void Browse(TBrowser* b);
105   /** 
106    * Print this object 
107    * 
108    * @param option 
109    */  
110   void Print(Option_t* option="R") const; //*MENU*
111   /* @} */
112 protected:
113   /** 
114    * Get the index corresponding to the given ring 
115    * 
116    * @param d Detector
117    * @param r Ring 
118    * 
119    * @return Index (0 based) or negative in case of errors
120    */
121   Int_t GetRingIndex(UShort_t d, Char_t r) const;
122
123   TObjArray fCorrections; // Array of per-ring double hit corr. 
124   ClassDef(AliFMDCorrDoubleHit,1); // 
125 };
126 #endif
127 // Local Variables:
128 //  mode: C++
129 // End: